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

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


  • Total voters
    479

TheStoneBanana

Well-Known Member
OP
Member
Joined
Aug 19, 2015
Messages
496
Trophies
0
Age
20
XP
1,020
Country
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.

Please note that these videos were recorded during testing and may not be entirely accurate to the final product.


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:
ctrtool --exefs=exefs.bin --romfs=romfs.bin PUTTITLEIDHERE.cxi
ctrtool --romfsdir=romfs romfs.bin

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:
3dstool -uf code.bin --compress-type blz --compress-out decompressed_code.bin
  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:
3dstool -zf decompressed_code.bin --compress-type blz --compress-out code.bin
  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!)

n5kudm3h.jpg
 

Attachments

  • VC Wireless Link Patch Documentation.txt
    8.2 KB · Views: 3,292
Last edited by TheStoneBanana,

ThisIsDaAccount

Well-Known Member
Member
Joined
Apr 8, 2016
Messages
1,159
Trophies
0
XP
930
Country
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,
  • Like
Reactions: GilgameshArcher

Frezgle

Well-Known Member
Member
Joined
Aug 4, 2016
Messages
168
Trophies
0
Age
29
XP
264
Country
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,

ThisIsDaAccount

Well-Known Member
Member
Joined
Apr 8, 2016
Messages
1,159
Trophies
0
XP
930
Country
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

Try creating a .cia file like I said in my post and tell us if the error persists.
 

Frezgle

Well-Known Member
Member
Joined
Aug 4, 2016
Messages
168
Trophies
0
Age
29
XP
264
Country
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:
Try creating a .cia file like I said in my post and tell us if the error persists.
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,

KunoichiZ

Well-Known Member
Member
Joined
Mar 16, 2012
Messages
8,830
Trophies
0
Age
26
XP
4,576
Country
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,

duffmmann

Well-Known Member
Member
Joined
Mar 11, 2009
Messages
3,967
Trophies
0
XP
2,282
Country
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,

TheStoneBanana

Well-Known Member
OP
Member
Joined
Aug 19, 2015
Messages
496
Trophies
0
Age
20
XP
1,020
Country
United States
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?
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.
 

Frezgle

Well-Known Member
Member
Joined
Aug 4, 2016
Messages
168
Trophies
0
Age
29
XP
264
Country
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,

TheStoneBanana

Well-Known Member
OP
Member
Joined
Aug 19, 2015
Messages
496
Trophies
0
Age
20
XP
1,020
Country
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.
 
  • Like
Reactions: Thunder Kai

KunoichiZ

Well-Known Member
Member
Joined
Mar 16, 2012
Messages
8,830
Trophies
0
Age
26
XP
4,576
Country
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.
 

tommikinder

Well-Known Member
Member
Joined
Jan 3, 2014
Messages
138
Trophies
0
XP
685
Country
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?
 

TheStoneBanana

Well-Known Member
OP
Member
Joined
Aug 19, 2015
Messages
496
Trophies
0
Age
20
XP
1,020
Country
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)
 
  • Like
Reactions: xJoelituh

Traiver

Developer
Developer
Joined
Aug 1, 2014
Messages
1,325
Trophies
1
Location
???
XP
2,827
Country
United States
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,
General chit-chat
Help Users
    KenniesNewName @ KenniesNewName: O'Food Chung Jung One Fish Sausage Snack 75g (15g x 5) (Crab) https://a.co/d/9BX9YqM lol crab bong