Uploaded October 2017 | Updated September 2026, 3 weeks ago
This video introduces an arbitrary code execution method compatible with the french, german, italian, and spanish versions of Pokemon Gold and Silver. It's a more costly alternative to the Coin Case glitch, which only applies to the english versions. However, this method aims to converge to a more accessible solution that offers just as many possibilities as the Coin Case glitch.
Any relevant information not covered in the video that is found important or relevant will go here.
------------------------------
Various resources and examples for Step 8.
For step 8.1) - Use the following resources to find out the location of relevant memory addresses:
datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map
- github.com/PikalaxALT/pokegold/blob/master/wram.asm
The first one is more user-friendly but the second one (from the disassembly) has far more information. If you have trouble locating an address in one, resort to the other one.
For step 8.2) - If you want a specific Pokemon, item, or move, you will need to know its hexadecimal number. Use the information from the first, sixth, seventh, and eight columns of the table found here: glitchcity.info/biglist.htm. For example, Celebi is FB, Aeroblast is B1, and Rare Candy is 20.
For step 8.3) - Conversion tables from hexadecimal to box name codes (language-dependant):
- Italian and spanish: pastebin.com/bAra9Wy7
- German: pastebin.com/yW9MeaKe
- French: pastebin.com/8VvWLHqA
If you need further assistance with step 8 - Usage examples:
- Party count (github.com/PikalaxALT/pokegold/blob/master/wram.asm#L3638): Address DA22
- Party Pokemon #3 species (datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map#Pokemon_3_Settings): Address DA8A
- To make party Pokemon #3 shiny: Write FA to DA9F and AA to DAA0
- Item 6 quantity (datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map#Game_Settings): Address D5C3
- Money (github.com/PikalaxALT/pokegold/blob/master/wram.asm#L2919): Addresses D573 to D575 (only set D573 to 0E for near maximum money)
------------------------------
Techncal explanation -
When a Pokemon is withdrawn to the 30th slot of the party, it corrupts addresses between DF9A and DFB9. More specifically, when the Pokemon's data is being copied from SRAM to those WRAM addresses, the stack pointer is at DFB3, and the 3rd and 4th PP slots of the Pokemon are copied to DFB3 and DFB4, respectively. Returning from the memory copy routine will bring the game to whatever stack pointer was spelled out by those two PP fields.
Of course, after doing this, the stack is absolutely destroyed and there are no realistic hope of restoring it to anything playable. The suggested alternative is to edit the SRAM to give ourselves one of the TMs into the items pocket of the bag, some of which execute code from WRAM. Modifying data in SRAM this way also requires to update the checksum at AD69-AD6A by the difference.
The suggested item to obtain this way is TM17, which, when used from outside the TM/HM pocket, makes the game jump to DA47, the middle of the first party Pokemon data. By having two party Pokemon with some specific qualities, we can conveniently redirect the execution to the buffer where box names are stored.
------------------------------
Special thanks to ISSOtm for his help with the development and testing of the method, to luckytyphlosion and gifvex for help with the TM17 setups, and to the GCL Discord for help and support.
------------------------------
Please, do not ask for help with Coin Case arbitrary code execution in english Gold and Silver. I will be working on adapting the "memory editor" setup for Coin Case ACE in those version, and there should be a video about it within the next 2 or 3 weeks. Most of the complexity involved in the method of ACE shown in this video won't be a problem in the Coin Case approach for the english versions. Meanwhile, there are already many videos about Coin Case ACE (not necessarily made by me) that you can check out.
Update: Here is the Coin Case video - youtube.com/watch?v=PsIb3OZaYAs
This video introduces an arbitrary code execution method compatible with the french, german, italian, and spanish versions of Pokemon Gold and Silver. It's a more costly alternative to the Coin Case glitch, which only applies to the english versions. However, this method aims to converge to a more accessible solution that offers just as many possibilities as the Coin Case glitch.
Any relevant information not covered in the video that is found important or relevant will go here.
------------------------------
Various resources and examples for Step 8.
For step 8.1) - Use the following resources to find out the location of relevant memory addresses:
datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map
- github.com/PikalaxALT/pokegold/blob/master/wram.asm
The first one is more user-friendly but the second one (from the disassembly) has far more information. If you have trouble locating an address in one, resort to the other one.
For step 8.2) - If you want a specific Pokemon, item, or move, you will need to know its hexadecimal number. Use the information from the first, sixth, seventh, and eight columns of the table found here: glitchcity.info/biglist.htm. For example, Celebi is FB, Aeroblast is B1, and Rare Candy is 20.
For step 8.3) - Conversion tables from hexadecimal to box name codes (language-dependant):
- Italian and spanish: pastebin.com/bAra9Wy7
- German: pastebin.com/yW9MeaKe
- French: pastebin.com/8VvWLHqA
If you need further assistance with step 8 - Usage examples:
- Party count (github.com/PikalaxALT/pokegold/blob/master/wram.asm#L3638): Address DA22
- Party Pokemon #3 species (datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map#Pokemon_3_Settings): Address DA8A
- To make party Pokemon #3 shiny: Write FA to DA9F and AA to DAA0
- Item 6 quantity (datacrystal.romhacking.net/wiki/Pok%C3%A9mon_Gold_and_Silver:RAM_map#Game_Settings): Address D5C3
- Money (github.com/PikalaxALT/pokegold/blob/master/wram.asm#L2919): Addresses D573 to D575 (only set D573 to 0E for near maximum money)
------------------------------
Techncal explanation -
When a Pokemon is withdrawn to the 30th slot of the party, it corrupts addresses between DF9A and DFB9. More specifically, when the Pokemon's data is being copied from SRAM to those WRAM addresses, the stack pointer is at DFB3, and the 3rd and 4th PP slots of the Pokemon are copied to DFB3 and DFB4, respectively. Returning from the memory copy routine will bring the game to whatever stack pointer was spelled out by those two PP fields.
Of course, after doing this, the stack is absolutely destroyed and there are no realistic hope of restoring it to anything playable. The suggested alternative is to edit the SRAM to give ourselves one of the TMs into the items pocket of the bag, some of which execute code from WRAM. Modifying data in SRAM this way also requires to update the checksum at AD69-AD6A by the difference.
The suggested item to obtain this way is TM17, which, when used from outside the TM/HM pocket, makes the game jump to DA47, the middle of the first party Pokemon data. By having two party Pokemon with some specific qualities, we can conveniently redirect the execution to the buffer where box names are stored.
------------------------------
Special thanks to ISSOtm for his help with the development and testing of the method, to luckytyphlosion and gifvex for help with the TM17 setups, and to the GCL Discord for help and support.
------------------------------
Please, do not ask for help with Coin Case arbitrary code execution in english Gold and Silver. I will be working on adapting the "memory editor" setup for Coin Case ACE in those version, and there should be a video about it within the next 2 or 3 weeks. Most of the complexity involved in the method of ACE shown in this video won't be a problem in the Coin Case approach for the english versions. Meanwhile, there are already many videos about Coin Case ACE (not necessarily made by me) that you can check out.
Update: Here is the Coin Case video - youtube.com/watch?v=PsIb3OZaYAs
![The Snake game in Pokemon Silver (arbitrary code execution)
Update! You can see the snake game being programmed in an actual Pokemon Crystal cartridge (with different ACE exploits) in this video - https://www.youtube.com/watch?v=g2mCyh7Y2xM
********************************************************************************************************************************************
Arbitrary code execution with Coin Case (explained by Sanqui, who discovered the ACE exploit): http://forums.glitchcity.info/index.php?topic=6716.0
Two different coin case setups are required. The first one to write our program in multiple iterations and the second one to make the game jump to it.
Setup 1 item list / asm code: http://pastebin.com/RG5HE9Ks (there is an error in this one. It says I38 = 01, but should be I38 = Max Potion [11], although Master Ball [01] also works)
Setup 2 item list / asm code: http://pastebin.com/X2hAyN9t
Box name characters to hex conversion: http://pastebin.com/4ZDpQXGe
Program asm code: http://pastebin.com/t8Qu6Pc2
Raw bytes: http://pastebin.com/72vbixu4
Pokemon Silver save file (the program is already written and the items in the PC correspond to the second setup, so you only need to use Coin Case once): http://www.mediafire.com/download/gf29w70lh2jpoio/Pokemon_Silver.sav
Check out this video by TheZZAZZGlitch where I took the idea from: https://www.youtube.com/watch?v=D3EvpRHL_vk (nevermind, youve already seen it).
The Coin Case Glitch is a translation error that is only present in the english localizations of Pokemon Gold and Pokemon Silver. That means, it wont work in Pokemon Crystal, or in Pokemon Gold or Silver in any other language. As for emulators, it wont work on VBA (as it doesnt emulate Echo RAM correctly), but will work fine in BGB or TGB.
Everything else is explained in the video. The Snake game in Pokemon Silver (arbitrary code execution)](https://i.ytimg.com/vi/c81P5srA7vY/mqdefault.jpg)






![Pokemon Pyrite - Trainer Pokemon with EVs (sort of)
READ DESCRIPTION!
I have received comments saying that the game gets easier as it advances, that the last gyms and pokemon battles are easier that the first ones. Kinda got the same feeling myself too. Your Pokemons EVs start to make a difference, and you become able to teach better moves and all that stuff. Even if the opponents Pokemon also get better moves, good moves vs good moves favours the player over bad moves vs bad moves, for the mere reason that the player is more intelligent than the AI. So, inevitably, the game progressively becomes easier for the most part.
The solution Ive come up with is some sort of EV system that is applied to trainer Pokemon, instead of just going nuts overincreasing the levels of the opponents to keep the same level of competitivity. This EV system doesnt work exactly like EVs would so to speak, since it affects the stats directly insetad of affecting them indirectly via other variables like the EVs themselves. But regardless, these stat changes (boosts) are intended to resemble EVs. Why shouldnt the rest of the trainers be able to get bonus from EVs just like you, if they also train their Pokemon? :P
The increase in the stats depends on the level of the pokemon. The higher the level, the higher the stat boost is, obviously, since thats how EVs work. The stats affected are attack, defense, special attack, special defense and speed, and the boost is the same for the five stats.
The stat boosts applied are (for each of the following level ranges):
[1,32]: boost = 0
[33,54]: boost = level/16
[55,73]: boost = level/16 + level/16
[74,77]: boost = level/8
[78,99]: boost = level/8 + level/32
[100,100]: boost = level/4
Notice how it never comes close to the maximum possible boost provided by EVs, which is nearly level*64/100. Another thing to keep in mind is that, even when the players Pokemon reach level 100, they still dont have had their EVs maximized, and the most recently caught Pokemon would have low EVs at the beggining. So I had to make sure that the boosts arent too high. In the end, they still leave the opponents Pokemon a bit weaker than the players on average; after all, the players good training should be rewarded!
The video shows the comparison between a battle against an EVd Pokemon (right), and against the same pokemon before the boosts had been implemented (left). Obviously, its still subject to RNG, but I think the differences can be seen clearly enough.
This feature will be included in the next release of Pokemon Pyrite and is subject to minor adjustements.
For those interested, the asm implementation can be seen here: http://pastebin.com/F3B9tnCC
I do believe and hope its bug-free. Its free for anyone to use it on his/her hack if desired, but if so, crediting is always welcome :) Pokemon Pyrite - Trainer Pokemon with EVs (sort of)](https://i.ytimg.com/vi/eF_lfPgoQdY/mqdefault.jpg)


![Pokemon G/S/C - Unused Status Prevention Item Effects
In Pokemon Gold, Silver and Crystal there are a total of six unused item effects that grant the holder immunity to one status:
Effect 0x14: Prevents holder from being poisoned
Effect 0x15: Prevents holder from being burned
Effect 0x16: Prevents holder from being frozen
Effect 0x17: Prevents holder from being put to sleep
Effect 0x18: Prevents holder from being paralyzed
Effect 0x19: Prevents holder from being confused
The routine that takes care of applying these effects is the battle command that handles the respective status. For example, the battle command that handles the effect of sleep moves, first checks the targets item and prevents sleep if said items effect is 0x17. In addition, a text box is displayed saying [PkmnName]s protected by [ItemName]. However, this text box is not displayed if the status would be inflicted as a consequence of a secondary effect of a damaging move (this, for example, excludes Poison Stingss poison or Thunders paralysis as well as every possible case of burn or freeze).
Since there are no items that use these effects, I modified the effect byte of Ultra Ball and Super Ball in the item attribute table to make this video possible. Pokemon G/S/C - Unused Status Prevention Item Effects](https://i.ytimg.com/vi/ekr9ZqyZZ5M/mqdefault.jpg)