[Release] Pokemon Gold, Silver, and Crystal Virtual Console Wireless Linking Patches

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by TheStoneBanana, Aug 31, 2016.

?

Would you like to see documentation on how to make patches like this in the future?

  1. Yes

    93.2%
  2. No

    0.7%
  3. *snoooooore*

    6.1%
  1. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    On February 27th, 2016, Nintendo rereleased the original Gen I Pokemon games for Gameboy onto the 3DS Virtual Console with a new twist: the ability to link with other players through wireless means. The feature had never been used before, and how it worked was mostly a mystery (besides the fact that it was activated through patches).

    No more.

    Today I present to you a port of the patch to Pokemon Gold, Silver, and Crystal. They all have full linking capabilities, including the Time Capsule feature which allows backwards compatibility with Pokemon Red, Blue, Yellow, and Green players.

    Demonstration Videos


    Warning: If you have already installed this patch and are reinstalling it for the new color correction, you gotta back up your save, or else you might lose all of your progress!

    INSTALLATION:
    1. Dump your copy of either Pokemon Red, Blue, Yellow, or Green using Braindump. Once complete, eject the SD card, and find a file with a title ID and .cxi extension on the SD card.
    2. Take this .cxi to a safe place and write down the title ID somewhere.
    3. Download CTRTool, and then place it into the folder with the .cxi file.
    4. While in the folder, hold the SHIFT key and right click. You will see an option in the menu that appears called 'Open command window here'. Click on it.
    5. Type the following:
    And then...
    1. Get yourself a ROM image of the game that you want to use the patch for, and then put it somewhere safe. (GBC Pokemon game ROMs aren't too hard to find online nowadays ;) )
    2. Download the VC Patch Pack linked above.
    3. Locate the appropriate patch for your ROM, as well as for the language of your ROM. (For example, if you're using the German version of Crystal, you'd find 'germancrystal.bin.patch'.)
    4. Extract the appropriate patch and keep it somewhere safe with the ROM.
    5. Rename the ROM to match the patch NOT INCLUDING the .patch ending.
    6. Open up the extracted RomFS of your copy of Pokemon Red/Blue/Yellow/Green.
    7. Delete all of the files in the root of the RomFS with the extension of '.patch'. (This just saves space for the long run. You can skip this step if you want to.)
    8. Place the new '.patch' file from somewhere safe into the root of the RomFS.
    9. Go into the RomFS's 'rom' folder.
    10. Delete whatever file is inside and replace it with the ROM you have from somewhere safe.
    11. If you're going to be using Pokemon Gold and Silver, listen closely. Otherwise, skip ahead to Step 15.
    12. Go back to the root of the RomFS and open up the patch file in a text editor.
    13. Go to the very last patch at the bottom of the file.
    14. Decide now whether you want to play the game in DMG (Original Gameboy) mode or GBC (Gameboy Color) mode. If you want to play DMG mode, leave the patch as is and exit. Otherwise, change the "Fixcode" to 0x80.
    15. Exit out of the RomFS entirely and move into the ExeFS.
    16. Find the 'code.bin' within the ExeFS.
    17. Using 3DSTool, decompress the code using the following command in CMD:
    1. Using a hex editor (doesn't matter which one), go to address 0x96EB7 and change the value to 0xE1. Save, and then recompress the code using this command in CMD:
    1. Your 'code.bin' has now been fixed so that colors display properly. Go ahead and delete 'decompressed_code.bin' and copy 'code.bin' to somewhere safe.
    2. Rebuild your RomFS using the RomFS Builder in Pack Hack. (you need to open up SetupUS.exe, and then HackingToolkit3DS.exe, and in HackingToolkit3DS.exe type RFSB)
    3. Export the newly built RomFS with a name of the last 8 digits of the Title ID you were supposed to write down earlier and the extension of '.romfs'.
    4. If you don't already have it, make a folder called 'hans' on the root of your SD, and then copy the build .romfs file into said folder.
    5. Take the 'code.bin' from earlier and rename it to the last 8 digits of the Title ID you were supposed to write down, along with the extension of '.code'. Copy this to the 'hans' folder on the SD card, as well.
    6. Eject your SD card, put it back into the 3DS, and load up the Homebrew Launcher.
    7. Run HANS, selecting the Pokemon game that you dumped earlier.
    8. On the HANS menu, change the 'RomFS' option to 'YES', change the 'Code' option to 'YES', and then boot into the game. (You're probably going to want to save the configuration for later)
    Phew! Congratulations! It was a lot of work, but now you're finally ready to use this newfangled patch on your game!
    Whenever you go to use a linking function within the game, the Wireless Connection menu should automatically pop up. From here, you should know what to do.

    As a small note, if all of this seems like too much work, never fear! My man @Traiver will be releasing .CIA versions of Pokemon Gold, Silver, Crystal, and Bronze onto "that ISO site" with the new patch already implemented, as well as professional banners and everything. So, if you're interested, keep your eyes peeled.

    TROUBLESHOOTING:
    Q: Why are the colors freaking out? Sometimes they're blank, and other times, they're flashy!
    A: You didn't follow the steps correctly for patching the 'code.bin'. Go back and try again.

    Q: *a general issue that's probably a bug*
    A: Report it to me either through this thread or through PM and I'll take a look.

    CREDITS:
    • @TheStoneBanana (me!) for researching and writing the new patch for Pokemon Crystal.
    • @Pandaxclone2, @darkalex004, and @Traiver for testing the original patch(es) to death.
    • @Traiver for porting my original patch to Pokemon Silver, Gold, and the Bronze ROM hack, as well as porting it to support other languages.
    RELEASES THUS FAR:
    (these are avaliable on that ISO site as well!)

    [​IMG]
     

    Attached Files:

    Last edited by TheStoneBanana, Dec 26, 2016
    cearp, zenamez, DarthDub and 73 others like this.


  2. ThisIsDaAccount

    ThisIsDaAccount GBAtemp Advanced Fan

    Member
    584
    227
    Apr 8, 2016
    United States
    It's here! Awesome! Thanks guys!

    Edit: If anyone wants to make a .cia with these patches included, you can insert them into a .cia with Asia81's PackHack (https://gbatemp.net/threads/tutorial-how-to-decrypt-extract-rebuild-a-cia.388677/) Note that this tutorial is slightly outdated. For the editing portion of the guide, simply place the patches into the decrypted file like instructed here. For reconstructing the .cia, instead of using the guide's instruction's, use the new PackHack's rebuild cia option.

    Edit2: Also, if you guys ever want to test any new patches, I'd be glad to help :)
     
    Last edited by ThisIsDaAccount, Aug 31, 2016
    GilgameshArcher likes this.
  3. Frezgle

    Frezgle Advanced Member

    Newcomer
    92
    29
    Aug 4, 2016
    United States
    Yes! YES!!
    Downloading now and gonna try it out right away; this is incredible. Thank you so much.
    EDIT: Braindump seems to be having... Issues with all three of my VC gen 1 games. They're all legit from the eshop so I dunno what's up. It gives me this error:
    An exception occured

    Processor: ARM11 (core 0)
    Exception type: data abort
    Current process: d1play
     
    Last edited by Frezgle, Aug 31, 2016
  4. ThisIsDaAccount

    ThisIsDaAccount GBAtemp Advanced Fan

    Member
    584
    227
    Apr 8, 2016
    United States
    Try creating a .cia file like I said in my post and tell us if the error persists.
     
  5. Frezgle

    Frezgle Advanced Member

    Newcomer
    92
    29
    Aug 4, 2016
    United States
    I'm gonna try that, but after updating Luma to see if that would fix the issue, as it has fixed so many others, now I get the same error when launching HB at all :/
    So I think I have unrelated issues afoot.

    EDIT:
    I patched and rebuilt a custom CIA of Gold successfully, it seems (the CIA installed and plays just fine), but the wireless features aren't enabled.
    Like... Do I need to start with an official CIA of R/B/Y?
     
    Last edited by Frezgle, Aug 31, 2016
  6. KunoichiZ

    KunoichiZ GBAtemp Guru

    Member
    7,865
    3,130
    Mar 16, 2012
    United States
    Does anyone know why I'm getting a failure during dumping while trying to dump a legit copy of Yellow? It dumps the RomFS and ExeFS then says "Failure during dumping. Output data in incomplete!" Could someone send my their copy of braindump (not the .cxi but the actual dumper itself)?

    Is the exefs.bin file supposed to be 1 KB?

    EDIT: Hang on, it decided to dump a .cxi and I'm gonna try to use that and see if it works.
     
    Last edited by KunoichiZ, Aug 31, 2016
  7. duffmmann

    duffmmann GBAtemp Psycho!

    Member
    3,643
    1,479
    Mar 11, 2009
    United States
    Can OP or someone that has successfully patched these games post them to either the ISO or Chaos site. Really all I want is Crystal English, but the others would be appreciated as well!

    Edit: just read the fine print, never mind lol.
     
    Last edited by duffmmann, Aug 31, 2016
  8. Thunder Kai

    Thunder Kai #TeamRem

    Member
    1,345
    369
    Sep 4, 2015
    United States
    With Rem
    *waits for someone to upload patched games on "dat iso/chaos site" :D
    thank you :D
     
    gnmmarechal, CatmanFan and hug0-a7x like this.
  9. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    Yes. You can only use Pokemon Red/Blue/Yellow/Green for this tutorial.
    No idea if it needs to be official though. I bought my copies legally.

    EDIT: Actually, if I'm understanding you correctly, yes. You can't use the custom Pokemon CIAs on that ISO site, because they dont use the special emulator the official version uses.
     
  10. Frezgle

    Frezgle Advanced Member

    Newcomer
    92
    29
    Aug 4, 2016
    United States
    Wellp, after "getting" a legit CIA copy of Yellow to try that instead, it failed to decrypt fully despite multiple attempts and the rom folder won't extract.
    What a time for Braindump to decide it doesn't work anymore :(

    EDIT: Actually, it does still work on my retail carts. Kinda wish I didn't decide to test that since now my 2DS is held hostage for an hour lol.
    Is there a specific version of BD that's known to be able to dump VC games? I'm just using the latest and it either gives me the error I mentioned before, or it freezes on a red screen.
     
    Last edited by Frezgle, Aug 31, 2016
  11. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    I just made sure that I'm using the latest version of BrainDump and it still dumps the Pokemon games fine.
    Is anyone else having the same issue as @Frezgle?
     
  12. Thunder Kai

    Thunder Kai #TeamRem

    Member
    1,345
    369
    Sep 4, 2015
    United States
    With Rem
    Does this work with R,B,Y,G rom hacks too?
     
  13. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    No. These are made just for Gold, Silver, Crystal, and the Bronze ROM hack (which was ported as a bonus).

    ROM hacks of Pokemon Red, Blue, Yellow, and Green could have a patch ported to them with little issue, assuming that they still use the original code for linking.
     
    Thunder Kai likes this.
  14. KunoichiZ

    KunoichiZ GBAtemp Guru

    Member
    7,865
    3,130
    Mar 16, 2012
    United States
    I keep getting the error when dumping with Braindump. I'm even using the latest version of it too. I've tried a legit copy from the eShop and a downloaded copy from freeShop but neither will successfully dump. I'll just wait for the .fia release on that iso site.
     
  15. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    It sounds like you might not have enough space on your SD card to dump, @KunoichiZ. Try freeing up some space and trying again.
     
  16. KunoichiZ

    KunoichiZ GBAtemp Guru

    Member
    7,865
    3,130
    Mar 16, 2012
    United States
    I've got 84,000 blocks on my SD card. :/ That's roughly 10 GB according to the conversion site I found.
     
    Last edited by KunoichiZ, Sep 1, 2016
  17. tommikinder

    tommikinder GBAtemp Regular

    Member
    114
    51
    Jan 3, 2014
    This is awesome! I'll be waiting for those CIAs.
    So will Gold and Silver be in black and white like Red and Blue and Crystal in colour like Yellow?
     
  18. TheStoneBanana
    OP

    TheStoneBanana GBAtemp Fan

    Member
    495
    863
    Aug 19, 2015
    United States
    Gold and Silver have the options of either being played in their original color format or in Gameboy mode. There's details in the instructions on how to pick and choose what you want.
    Crystal will always be in color, since the game itself has no DMG support.

    (Also, as explained in troubleshooting, the blanked out colors are still an issue to keep in mind, which is why Gold and Silver are set to DMG mode by default)
     
    xJoelituh likes this.
  19. xJoelituh

    xJoelituh GBAtemp Regular

    Member
    147
    95
    Mar 11, 2016
    Pandaxclone2 likes this.
  20. Traiver

    Traiver GBAtemp Maniac

    Member
    1,122
    1,182
    Aug 1, 2014
    Germany
    Pew! *Out of the bag*
    Watch out "somewhere"...


    Code:
    *Updated on 12/29/16* - Full fixed versions
    
    Unique ID      Name
    0x01916        Pokémon Bronze (English) - Color - v1.2
    
    0x01901        Pokémon Crystal (English) - v1.2
    0x01902        Pokémon Crystal (French) - v1.2
    0x01903        Pokémon Crystal (German) - v1.1
    0x01904        Pokémon Crystal (Spanish) - v1.2
    
    0x01917        Pokémon Crystal Emu Edition (English) - v1.2
    0x01920        Pokémon Crystal Kaizo Version (English) - v1.0 - *Removed*
    0x01921        Pokémon Prism v0.92 (English) - v1.1
    
    0x01906        Pokémon Gold (English) - Color - v1.3
    0x01908        Pokémon Gold (French) - Color - v1.2
    0x0190A        Pokémon Gold (German) - Color - v1.1
    0x0190C        Pokémon Gold (Spanish) - Color - v1.2
    
    0x01918        Pokémon Silver (English) - Color - v1.3
    0x01919        Pokémon Silver (French) - Color - v1.2
    0x01912        Pokémon Silver (German) - Color - v1.1
    0x01914        Pokémon Silver (Spanish) - Color - v1.2
     
    Last edited by Traiver, Dec 28, 2016