Research I programmed Snake into Pokemon Silver using only glitches

EDIT: Skip to my last post to see this done in real hardware and for a detailed explanation of how it was done! - http://www.smogon.com/forums/thread...ver-using-only-glitches.3540050/#post-7159217

Sort of, it was done in an emulator. You'll see in the video anyway. The MissingNo article I posted in Orange Islands last month received far more positive feedback than I would've expected, and I thought this turned out cool enough to share it here as well!


And the video description:

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
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

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.
 
Last edited:

CTNC

Doesn't know how to attack
o_0 Did you do this without TAS (Tool Asisted Speedrun) Tools? If so, this is probably more impressive than the TAS guy have done to Mario!
 
No TASing involved. Anyway depends on what you consider actually doing it. I set up all the code that allows to write a program but I didn't follow all the steps that would be required to actually write the program at all (what I say in the text shown at ~2:20). Just did one coin case iteration that wrote 4 bytes to show that the glitch works, and then hacked the rest of the bytes with the debugger. If you were to do this on a gameboy for real, it'd take 3 hours easily assuming you don't make mistakes.
 

DHR-107

Robot from the Future
is a Member of Senior Staffis a Community Contributoris a Smogon Discord Contributoris a Pokemon Researcheris a Smogon Media Contributor
Orange Islands
You know Crystal_ you never cease to amaze with what you can do with the older gen games.

This is utterly brilliant. I made a snake game in my first year of uni, as a first project is was pretty daunting. Seeing it done like this though is just so impressive. Massive kudos man, I always end up reading your threads/watching your videos with great interest.
 

DragonWhale

It's not a misplay, it's RNG manipulation
is a Top Social Media Contributor Alumnusis a Community Leader Alumnusis a Community Contributor Alumnusis a Dedicated Tournament Host Alumnusis a Battle Simulator Moderator Alumnus
Nice! I've only seen gen 2 ACE before on werster's Crystal any% speedrun, where it was only used to modify the warp coordinate of a staircase to Red. I never knew you can do all this with ACE.
 
Yeah, ACE means you can do anything that the GameBoy's processors can handle, why just use it to play the end credits?
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top