HOW TO: Dump and Preserve VC GBA roms

Discussion in 'Wii U - Tutorials' started by Hking0036, Oct 3, 2016.

Oct 3, 2016
  1. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    Hey there. Recently, my interest was piqued by the tagging of some gba roms as (Virtual Console). Some of these changes are known such as Super Mario Advance 4/Super Mario Bros. 3, and some even have patches to the original roms to update them. However, it seems that a lot of them have been undocumented, or worse, some aren't even noticed at all. Some of the changes are trivial, such as many of the Battle Network changes that reduce flashing on some occasions (admittedly less trivial if you have epilepsy), others fairly significant, such as the Super Mario Advance 4's inclusion of all the e-reader levels previously unavailable. My goal is to figure out, preserve and keep track of all of the changes, be they small or large, to the best of my ability. Therefore, without further ado:
    NOTE: NONE of these will permanently modify your Wii U.
    Option A: Dump and optionally upload title keys, then dump .gba from files (Recommended)
    This is the easiest method and will let you get the files without having to mess with DDD.
    Option A
    Option B: Dump and make a .gba from files
    This is the next easiest, allowing you to dump the files you need from the game that is installed on your wii u over the network with DDD.
    Option B

    Option C: Dumping from RAM with tcpGecko
    This process is a little more complex, but also verifies that if a game is modified in memory that you get the correct version. I always do the above steps first, and then verify with one of these. So far, I've yet to see a GBA game that receives modification in memory, but other stuff like SNES definitely does so it's generally a good idea just to check.
    Option C
    If you made it this far, congrats. You've successfully dumped a rom, made a patch to make it publicly accessible, and preserved it's information.

    (Optional) Submit for preservation
    Lastly, we're going to contribute them to the No-Intro database for preservation.
    Preserving
    Here's a straight down album of the pictures in order.
     
    Last edited by Hking0036, Dec 12, 2016


  2. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    I'm going to document which have been dumped and their hash in CRC after patching. Patches are attached where applicable. Remember the best way to verify is redumping, so if you want that's not a bad idea.

    Spreadsheet with info on roms, links to patches and manual scans where available: here
    You can submit games with a form: here if you don't want to post in the thread
    Patches: here or attached
    To apply patches, use FLIPS. I use BPS to save space and to keep people from applying patches to the wrong roms, and FLIPS is equally as user friendly as Lunar IPS.
     

    Attached Files:

    Last edited by Hking0036, Dec 1, 2016
  3. Mikemk

    Member Mikemk GBAtemp Maniac

    Joined:
    Mar 26, 2015
    Messages:
    1,421
    Country:
    United States
    Distributing the patches would not be allowed here as they would still contain pirated content even though they're a patch.
     
  4. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
  5. Mikemk

    Member Mikemk GBAtemp Maniac

    Joined:
    Mar 26, 2015
    Messages:
    1,421
    Country:
    United States
  6. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    considering it's been on there since January I'd say if they haven't done anything they aren't going to, because generally speaking they're on top of things, and it's a 19 page long thread.
     
    Last edited by Hking0036, Oct 4, 2016
  7. cearp

    Member cearp the ticket master

    Joined:
    May 26, 2008
    Messages:
    7,257
    Country:
    Tuvalu
    i wonder if golden sun was changed at all for wiiu.
    it would be interesting (and expensive) to check every game there. but apart from a few exceptions like sma4 it will just be epilepsy fixes i guess.
    nope, the mod i spoke to today said it was ok. sorry bud.
     
    Hking0036 likes this.
  8. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    Yeah, but I figure cost dispersed among a lot of people means that it might be easier to fill in the gaps. I'm probably going to buy Kuru Kuru Kururin or Mystery Dungeon Red when I get the chance.
     
    cearp likes this.
  9. Mikemk

    Member Mikemk GBAtemp Maniac

    Joined:
    Mar 26, 2015
    Messages:
    1,421
    Country:
    United States
    What about the 3DS Ambassador games? Any changes there?
     
  10. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    As far as I know, the ambassador VC were made before the Wii U launched. That said, there could be something to that. Only issue there is, I don't know how to get the .gba out of the cias. I guess Deep Decrypt and then unpack.
     
  11. VinsCool

    Member VinsCool Figuring How Dreams and Reality Overlap

    Joined:
    Jan 7, 2014
    Messages:
    10,947
    Location:
    Opassa Beach, Home World
    Country:
    Canada
    Another method that I used (because python refused to cooperate and make inject_gba to work) was TCGP Gecko and RAM dumps. Retrieving the rom was done by the following:

    - Dump the RAM from the 10 offset (I havent really looked at where it actually stores the ROM, so anyone is free to correct me)
    - Get the same game ROM clean and unmodified
    - Select the header from a HEX editor and search it in the ram dump
    - Once a match is found, select the next 100 MB of it, and save it as a new file (better have a bigger file in this case, to avoid data cut)
    - Byteswap the whole data chunk saved with any script doing byteswap (I personally used a python script made by Daxtsu)
    - Open the byteswaped data chunk in the HEX editor again and search for the header once more. If everything was done correctly, the whole rom wil be there.
    - Select the ROM data starting from the first header byte until the maximum filesize the base ROM was (SMA4 was expanded for the additional levels in this case. So make sure to verify the rom ends with 00 or FF before!)
    - Copy the selected HEX data to a new file and save a a .gba file
    - If everything went correctly, the ROM shoud run in an emulator right away (Exceptions for Megaman Battle Network 5 games: those require a minor edit to boot, most likely due to some custom nintendo emulator opcode)

    So yeah I had to share it, because that was how I did my Megaman dumps haha :P
     
    Hking0036 likes this.
  12. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    Thanks! With my experience over the past few days with that the rom tends to land in the 30000000-47000000 region (at the very tail end of even that, I think starting at 40000000 isn't entirely unreasonable), at 10 offset it dumps to 50000000 which makes it crash.

    That said, I'm glad I found out about this script because it's way more precise. Zero 3 gets expanded from 8 to 16MB, I wouldn't be able to tell looking at the ram dump in hex like that :ha: (plus I was too dumb to notice byteswapping)
     
    Last edited by Hking0036, Oct 5, 2016
    VinsCool likes this.
  13. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    Added "high quality" pictures to the guide.

    Also @Mikemk I downloaded all the jp, eu, and Na ambassador cias and decrypted them. So far I've only extracted one .gba, fire emblem sacred stones USA but it matches the US, Australia rom so I'm not holding my breath. I'll finish the others tomorrow but today has been a lot of dumping and scanning already :rofl2:

    For anyone interested, the process I worked out for the ambassador roms is this: deep decrypt > unpack with tools > find header in exefs.bin > select first byte (from my experience over the past day, all headers start with a byte 2E and you should see a string 6 lines or so down with the games internal title) and select block the size of the original rom, copy and paste into a new file and test.
     
    Last edited by Hking0036, Oct 5, 2016
    cearp likes this.
  14. bootmonster

    Member bootmonster GBAtemp Regular

    Joined:
    Oct 26, 2002
    Messages:
    196
    Country:
    United Kingdom
    Correct me if I'm wrong, but I'm sure I read somewhere that the rom stored within the VC games isn't necessarily the game that you end up playing once loaded on the Wii u. Some games do on the fly patching which means you would have to use the memory dump method to extract the game as opposed to extracting the game from the VC dump.
    IIRC it was one of the earthbound games that had this but I can't be sure.
     
    Hking0036 and cearp like this.
  15. cearp

    Member cearp the ticket master

    Joined:
    May 26, 2008
    Messages:
    7,257
    Country:
    Tuvalu
    very true... a few games do this.
    maybe not all, but i thought pokemon vc did it...? phantasy star i think i saw...?
     
    Hking0036 likes this.
  16. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    I'm sure you're right in some cases, I don't know which games would do this though (obviously, considering I'm not working at Nintendo). In any case, I can redump mine through TCPGecko and check it against my dumps so far. This makes me particularly suspicious of Super Mario Advance 2. At some point I can work up some instructions for that but I have a lot to do today so I might not be able to (that said I'm also keen on slacking so it may get done).

    If I were to take a guess I think that on-the-fly patching may be where the VC-Specific emulator-breaking stuff comes in, but then again I'm pretty unqualified to say so.
     
    Last edited by Hking0036, Oct 5, 2016
  17. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    I just redumped all of them with TCPGecko and none have any changes from the new dumps already made. I'll keep a heads up for the future though. More on the way right now.

    Edit: Added golden sun, minish cap (eur), mario kart (eur), golden sun - the lost ages, polarium advance. Polarium Advance is a US dump, the rest are eur. Both golden sun's roms are of the USA region.

    Added a section for dumping with TCPGecko, albeit a little sparser than the normal one.
     
    Last edited by Hking0036, Oct 5, 2016
    VinsCool, bootmonster and cearp like this.
  18. VinsCool

    Member VinsCool Figuring How Dreams and Reality Overlap

    Joined:
    Jan 7, 2014
    Messages:
    10,947
    Location:
    Opassa Beach, Home World
    Country:
    Canada
    I have a question. Is the fixvc.exe the program that byteswaps the file to give a proper GBA ROM? Sorry for the stupid question XD I just wanted to be sure I read it correctly.
     
  19. Hking0036
    OP

    Member Hking0036 GBAtemp Fan

    Joined:
    Sep 15, 2015
    Messages:
    388
    Country:
    United States
    yeah, it's just a little bit of C compiled with GCC, input name output name.new.gba fixed.
     
    VinsCool likes this.
  20. VinsCool

    Member VinsCool Figuring How Dreams and Reality Overlap

    Joined:
    Jan 7, 2014
    Messages:
    10,947
    Location:
    Opassa Beach, Home World
    Country:
    Canada
    Alrighty! That's what I needed to know :)
     
    Hking0036 likes this.

Share This Page