Accessing Oracle of Ages/Seasons Gameboy Advance Shop on VC?

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by CrazyBlergh, Sep 23, 2016.

  1. CrazyBlergh
    OP

    CrazyBlergh GBAtemp Regular

    Member
    130
    12
    Sep 11, 2016
    Gambia, The
    Is there a known way to actually access the advance shop that only appears if you play the games on a GBA? I'm not asking about messing with the transfer codes, I want to actually get inside the shop on 3DS's Virtual Console.*

    *If that's not possible, can I at least run the games well on mGBA or another GBA emulator and then import the save back into thr VC?
     
    Last edited by CrazyBlergh, Sep 23, 2016


  2. BtEtta

    BtEtta GBAtemp Regular

    Member
    126
    111
    Apr 9, 2016
    It is possible with a patched ROM image, there was a thread somewhere on romhacking.net that covered both patching the game (also Shantae) to always enter GBA mode. The same thread also covered patches to make the game still load the GBC colour palette in that state rather than using the washed out GBA one.

    It may even be possible to use Nintendo's own VC patch format with HANS so you don't even need to inject a patched ROM.

    But if you're asking has someone made a solution that's available right now with a minimum of effort? Not that I know of.
     
  3. TheStoneBanana

    TheStoneBanana GBAtemp Fan

    Member
    495
    866
    Aug 19, 2015
    United States
    Try this...
    It's a patch in the official 3DS VC format, but I haven't tested it.

    Code:
    [GBA_Patch1]
    Mode = 1
    Address = 0x30
    Fixcode = a5: 06 01 C3 50 01
    
    [GBA_Patch2]
    Mode = 1
    Address = 0x102
    Fixcode = a2: 30 00
    
     
    Last edited by TheStoneBanana, Sep 24, 2016
    cearp, Tomato Hentai and CeeDee like this.
  4. MarcusCarter

    MarcusCarter Goodra the Great

    Member
    452
    108
    Jan 7, 2012
    United States
    Indianapolis, IN
    If you have a Gateway, just use these links:

    http://www.fort42.com/gateshark/game1827/1713/
    http://www.fort42.com/gateshark/game1828/9200/

    If you don't have a Gateway, you'll need to Inject a GBA-enabled ROM (this requires CFW). The GBA patch for the games is mentioned (by me) here. You'll need a copy of the ROMs you want (search for "play console classics on your computer" without quotes for my favorite ROM site), along with LunarIPS. For injecting, you'll need a .cia of the games you're wanting to inject (you can dump your copy with Decrypt9WIP, assuming you already have the game(s); just dump titleIDs 0004000000058C00 (for Seasons) and 0004000000058F00 (for Ages) with Decrypt9WIP), and @Asia81 's PackHack (the link can be found here). Then just setup the PackHack according to this guide, but instead of doing what is done in the 'Extracting' section, open HackingToolkit3DS.exe and type CE, and type the name of the .cia file WITHOUT the .cia extension. Take your ROM, and rename it "vc_rom.bin" (without quotes). Go to /ExtractedRomFS/rom/ and replace the 'vc_rom.bin' in the folder. Then just reopen HackingToolkit3DS.exe, type CR and press Enter, type Ages (for Oracle of Ages) or Seasons (for Oracle of Seasons), then copy the resulting .cia file to your 3DS SD card and install with a .cia manager/installer like FBI, DevMenu, or BigBlueMenu.
     
  5. Mikemk

    Mikemk GBAtemp Advanced Maniac

    Member
    1,557
    555
    Mar 26, 2015
    United States
    Or you can use the ultimate gbc rom injector, a lot easier.
    How exactly would you activate it?
     
  6. Clydefrosch

    Clydefrosch GBAtemp Psycho!

    Member
    4,126
    1,181
    Jan 2, 2009
    Gambia, The
    believe me, the advance shop really isn't worth the trouble.
     
  7. MarcusCarter

    MarcusCarter Goodra the Great

    Member
    452
    108
    Jan 7, 2012
    United States
    Indianapolis, IN
    It actually isn't easier PC-side, because the user has to supply their own icons, the original .cia file, and the GBC ROM PC-side. In my example, you only need the latter 2 PC-side (although you do need more applications 3DS-side - a .cia installer is the only requirement the 2 methods have in common). Basically, it depends on what the user's needs are, and I believe in this case, in order to noob-proof the process as much as possible, that my suggestion is the best one for the OP in this situation. PC-side, it's basically 'put cia in PackHack folder, run HackingToolkit3DS.exe with CE, replace file, run app again with CR, copy to SD, done'.
     
  8. TheStoneBanana

    TheStoneBanana GBAtemp Fan

    Member
    495
    866
    Aug 19, 2015
    United States
    Dump the RomFS of the game, unpack it, save my patch as a .patch file, name it the same thing as the actual VC ROM itself, put it into the root of the RomFS, repack, and then use in HANS.
    That or use it in a CIA.
     
  9. cearp

    cearp the ticket master

    Member
    7,510
    4,744
    May 26, 2008
    Tuvalu
    or use a gw/ntr cheat :)
     
  10. Asia81

    Asia81 In my Ecchi World <3

    Member
    5,039
    2,479
    Nov 15, 2014
    France
    Albi
    Does gameshark codes are the same format as gateshark?
    Or can they be converted?
     
  11. MarcusCarter

    MarcusCarter Goodra the Great

    Member
    452
    108
    Jan 7, 2012
    United States
    Indianapolis, IN
    cearp likes this.
  12. cearp

    cearp the ticket master

    Member
    7,510
    4,744
    May 26, 2008
    Tuvalu
    converted easily enough yes :)
    for ALTTP, i ported some codes.
    you just need to find difference in the save offset, then you can adjust the codes.

    — Posts automatically merged - Please don't double post! —

    cool :) already posted ha
     
  13. MarcusCarter

    MarcusCarter Goodra the Great

    Member
    452
    108
    Jan 7, 2012
    United States
    Indianapolis, IN
    Also, @CrazyBlergh , you could try using this link to find the prepatched .cia files. Tested and working. ;)

    Edit: Never mind. They installed, but the .patch file edits suggested by @TheStoneBanana don't work. :( I'll need to use a directly patched ROM instead. Hang on.

    Edit 2: I'm dumb. I reset the emulator, and now the door is open. In other words, it works!
     
    Last edited by MarcusCarter, Sep 24, 2016
  14. BtEtta

    BtEtta GBAtemp Regular

    Member
    126
    111
    Apr 9, 2016
    Different approach to the one I saw but should work.

    Try the following patch to use the GBC colour palettes while in GBA mode:
    Code:
    [GBA_Patch3]
    Mode = 1
    Address = 0xFC03B
    Fixcode = a2: 3E 01
    Please confirm that changes the palette back but still retains access to the advance shop?
     
  15. CrazyBlergh
    OP

    CrazyBlergh GBAtemp Regular

    Member
    130
    12
    Sep 11, 2016
    Gambia, The
    Oh wow, So many replies. I've been a bit busy, otherwise I would've responded earlier.
    .cia's aren't an option for me right now. I don't use a CFW(nor do I have access to that).

    @TheStoneBanana /@BtEtta: Your approach seems to be the best for me right now. Thanks to all the other helpful posters either way though! Maybe 11.0 will get a kernel exploit and I'll be able to make use of @MarcusCarter 's suggestion.
    I gotta admit, I never used Hans for romhacking before so I'm not sure how I should go about applying those patches.
    How did you find/come up with those patches? How do they work?

    @cearp /@Asia81: Gameshark codes would be another easy solution. Not quite as elegant as I wouldn't be playing on VC and would have to fiddle with moving gamesaves. Are there any 'spoof GBA' codes for the Oracle games?

    @Clydefrosch: It's more a matter of principle to me. Plus it's kinda fun to figure these things put and correct Nintendo's shortcomings. Not sure if this has many applications besides Oracle games and Shantae but I doubt I'm the only one who'd be happy if this works.

    EDIT: Regarding the palette change in GBA mode: Are paler colors the only difference? No enhancements? Is this the same for every GBC game played on a GBA?
     
    Last edited by CrazyBlergh, Sep 24, 2016
  16. cearp

    cearp the ticket master

    Member
    7,510
    4,744
    May 26, 2008
    Tuvalu
    you would be playing on the unaltered, official vc lol :)

    you wouldn't need to install a hacked rom because... you are hacking the game in real time with the cheat.
     
  17. Mikemk

    Mikemk GBAtemp Advanced Maniac

    Member
    1,557
    555
    Mar 26, 2015
    United States
    Shantae and the zelda games have an in-game item exclusive to GBA users. People say both in-game items are useless, and are only good for 100% completionists.
    Shantae, zelda, and another game all have modified color palletes to make the GBA and GBC look identical when playing. (apparently, the GBA has a darker screen, so they made the colors brighter.
     
  18. BtEtta

    BtEtta GBAtemp Regular

    Member
    126
    111
    Apr 9, 2016
    A GBA running a GBC game presents no extra hardware, no more memory, no difference at all, with (only?) one exception. The CPU register 'b' holds a value of 0 when a GBC is first turned on and a value of 1 on a GBA. The games in question check the register very early in the games' execution and store that value somewhere. $FF96 in the case of the Oracles games.

    The first set of patches overwrites an unused area of with code that sets b to 1. Then changes the first jump instruction to go to this new code before returning to where that jump instruction would have originally gone.

    I did not 'find' the other patch. I merely found other people's work on romhacking.net but the principle is that once you know where the game stores the result of this initial check (e.g.$FF96) you can set a debugger on a PC emulator to watch for whenever this location is accessed. One of those times will be when a new palette is loaded.

    In the case of Oracles the original code loads $FF96 into register a before doing a comparison. The replacement code loads the value that would have been there if the GBA check had failed instead so the comparison always results in the GBC palettes loading. All other checks for GBA mode proceed as normal.
     
  19. WiiUBricker

    WiiUBricker Insert Custom Title

    Member
    6,962
    3,984
    Sep 19, 2009
    Argentina
    Espresso
    In short, GBA palettes look better than GBC palettes, right?
     
  20. Mikemk

    Mikemk GBAtemp Advanced Maniac

    Member
    1,557
    555
    Mar 26, 2015
    United States
    Personally preference.
    The GBC palette is how it's intended to look, whereas the GBA palette is for adjusting the color to look correct on a GBA screen (which we're not using).

    Essentially the save as the dark filter on the GBA virtual console that some people remove.