Repairing and jailbreaking a Super Mario World cartridge

Leave a Comment

 Repairing and Jailbreaking a
Super Mario World cartridge

 


About the Super Mario World Jailbreak

    Did you know that Super Mario World on the Super Nintendo (SNES) can be Jailbroken to load a memory hexadecimal editor and a mod loader for code hacking? SethBling on YouTube wrote a guide on how to do so. Essentially this Jailbreak works by corrupting data in a save file (save file C) within the cartridge's SRAM and tricking the game to execute custom code within SRAM. That jailbreak code contains a memory hexadecimal editor and mod loader support to write your own custom game code (as hexadecimal SNES 65C816 opcodes) on the last memory page/bank combination within the editor. All of this hacking can be done on stock SNES hardware without custom hardware.

   Once installed, the jailbreak is persistent due to being saved in SRAM. In order to load the jailbreak into memory, the player just needs to load Save File C, which will load the hexadecimal editor and mod loader for hacking.

Super Mario World Jailbreak

There are several methods to install the jailbreak:

  • Use a single SNES controller to perform complicated ACE (arbitrary code execution) hacks to input data
  • Use multiple SNES controllers (x2 SNES multi-taps and x3 SNES controllers) to perform less complicated ACE (arbitrary code execution) hacks to input data
  • Upload the exploit into SRAM (SMW cartridge-to-cartridge copy)
  • Use a SNES Game Genie to load a jailbreak bootloader, than upload the jailbreak into SRAM

   Out of these four methods, the SNES Game Genie method is the most accessible and easiest way to jailbreak the game with a fresh install. The SMW cartridge copy method will only work if you already have a jailbroken copy of the game.

   I was intrigued about the ability to jailbreak SMW for experimentation, and decided to try it out for myself!

Super Mario World Jailbreak
tutorial video (Game Genie)

SMW Jailbreak Manual

 SMW Jailbreak tutorial (Game Genie)

 

Getting the hardware

    At Pittsburgh Gaming Expo 2024, I found a cheap copy both of Super Mario World and a SNES Game Genie. Unfortunately this copy of SMW was a later SNS-MW-USA-1 revision of the game. Due to this later revision of the game containing bugfixes and minor code edits (thus shifting code addresses around), the Game Genie codes to load the bootloader do not work. (The USA-1 revision of the game goes haywire and freezes with the codes). SethBling didn't mention that the Game Genie codes only work on the original NTSC revision of the game (SNS-MW-USA no -1). This Video Game Sage thread details how to identify the different variants of the cartridge.


Original release of SMW (Good)

Revision 1 of SMW (Bad, lock notch variant)
Revision 1 of SMW (Bad, ramp variant)
 
    Due to having a wrong revision of the game, I ordered a cheap, original revision of SMW in bad condition from eBay. Yeah, the copy is quite beat up and I plan on printing out a new label.
 
Repairing the cartridge
 
    I tested the cartridge once it arrived from online on my original Super Nintendo console. The game worked properly, but it wouldn't always save and retain its data after power down. I heard some rattling from within the cartridge, and upon opening it up with gamebit drivers, I saw that the CR2032 watch battery that powers the SRAM chip fell loose from its battery terminals. I repaired the cartridge by desoldering off the old battery terminals, by hard-wiring in a SparkFun LilyPad coin cell battery holder, by installing a fresh CR2032 battery, and by applying adhesive electrical tape to hold down the battery holder.



 
Installing the Jailbreak
 
 With the cartridge repaired and the SRAM chip now consistently able to save and retain the game data with a good battery connection, I proceeded to Jailbreak the game by following SethBling's Game Genie jailbreak tutorial.
 


 
Jailbreak installed successfully!
 
   Despite the problems of hunting down the right hardware (Game Genie, original revision of SMW) and repairing the cartridge, the jailbreak install was easy and it worked successfully!



 
   Playing this jailbroken copy of Super Mario World will be a good chance to learn SNES 65C816 assembly language, to experiment, and to dip my feet into learning SNES architecture :).
 
- MrTamkis ("Eagle" 🦅)
Copyright EagleSoft Ltd. Powered by Blogger.