Uploaded June 2015 | Updated September 2026, 3 weeks ago
Update! You can see the snake game being programmed in an actual Pokemon Crystal cartridge (with different ACE exploits) in this video - youtube.com/watch?v=g2mCyh7Y2xM
********************************************************************************************************************************************
Arbitrary code execution with Coin Case (explained by Sanqui, who discovered the ACE exploit): 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: 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: pastebin.com/X2hAyN9t
Box name characters to hex conversion: pastebin.com/4ZDpQXGe
Program asm code: pastebin.com/t8Qu6Pc2
Raw bytes: 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): mediafire.com/download/gf29w70lh2jpoio/Pokemon_Silver.sav
Check out this video by TheZZAZZGlitch where I took the idea from: youtube.com/watch?v=D3EvpRHL_vk (nevermind, you've 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 won't work in Pokemon Crystal, or in Pokemon Gold or Silver in any other language. As for emulators, it won't work on VBA (as it doesn't emulate Echo RAM correctly), but will work fine in BGB or TGB.
Everything else is explained in the video.
Update! You can see the snake game being programmed in an actual Pokemon Crystal cartridge (with different ACE exploits) in this video - youtube.com/watch?v=g2mCyh7Y2xM
********************************************************************************************************************************************
Arbitrary code execution with Coin Case (explained by Sanqui, who discovered the ACE exploit): 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: 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: pastebin.com/X2hAyN9t
Box name characters to hex conversion: pastebin.com/4ZDpQXGe
Program asm code: pastebin.com/t8Qu6Pc2
Raw bytes: 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): mediafire.com/download/gf29w70lh2jpoio/Pokemon_Silver.sav
Check out this video by TheZZAZZGlitch where I took the idea from: youtube.com/watch?v=D3EvpRHL_vk (nevermind, you've 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 won't work in Pokemon Crystal, or in Pokemon Gold or Silver in any other language. As for emulators, it won't work on VBA (as it doesn't emulate Echo RAM correctly), but will work fine in BGB or TGB.
Everything else is explained in the video.






![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)
