Background
SNESticle was the much requested, much anticipated, much rumoured, but never released follow-up to NESticle, the legendary NES emulator programmed by Sardu and released by Bloodlust Software in 1997. Sardu instead went on to create the excellent Genecyst and Callus emulators and was eventually hired by Electronic Arts.
Years later, EA released Fight Night Round 2, a boxing game that is supposedly pretty good, but what is way more interesting is that the Gamecube version of it contains an emulated version of Nintendo's Super Punch-Out!! (exclamation marks part of the title, not for effect!!).
Data mining revealed the strings "SNESticle" and "Copyright (c) 1997-2004 Icer Addis" (Addis being Sardu's real name) on the game disc. This raises a lot of questions, perhaps most importantly (and unanswerably): did he really have SNESticle ready to go back in 1997 and then chose to sit on it just to spite the people who were bugging him for it? Or is the 1997 date just a joke, to spite the very same people now? Or is the whole thing a joke? Who knows, but it's clear that there is a working SNES emulator called SNESticle locked up inside Fight Night Round 2 and something has to be done about it!
Goals
The main goal of this project is to extract the SNESticle code from Fight Night Round 2, to allow it to run on its own and to run other games than Super Punch-Out!!. Mostly this goal has been met, it is now possible to create a Gamecube ISO containing SNESticle and a selection of SNES ROMs of your choice.
Some possible stretch goals that have not yet been reached (and possibly never will be):
- Saving SRAM to a GC Memory card
Stretch goals actually reached by this project:
- A frontend for choosing between multiple SNES ROMs
- Joypad 2 support (even 3 and 4!)
Stretch goals made obsolete by the surprise release of the SNESticle source code:
- A standalone DOL file release
- A native Wii port
- A full disassembly
Non-goals
It's important to note that SNESticle extracted from Fight Night remains a Gamecube-exclusive program. This hack will not allow it to run on your PC (except through a Gamecube emulator).
While it certainly would be possible to use this as a starting point for further SNESticle development, bug-fixing, etc, I have little interest in doing so. What I find interesting about this is that we finally get to explore Sardu's SNESticle. If you just want SNES emulation on your Gamecube, you're probably better off with Snes9x.
How to run SNESticle
First, get your Fight Night Round 2 ISO ready. It must be the US version and the ISO file should have the md5 hash 1f6264dabc522271dbc5e3cd5fb6593b. Then grab the scripts over at the github repo.
The README.md file explains how to generate your very own SNESticle ISO. It will run in Dolphin, but obviously the real fun is in running it on a real console. On a Gamecube, Swiss is probably the way to go. On a Wii, The Homebrew Channel and Nintendont or a Nintendont-enabled loader will work fine.
Further reading
If you are interested in the technical details of this hack, head over to the devlog section.
Thanks
- Ernie Smith for digging up the SNESticle strings within Fight Night, and for writing the Motherboard article that sparked this whole project (and is a fantastic read in its own right).
- Jay Lanagan for inspiration and beta testing.
- Sardu and Bloodlust Software for brightening my adolescence with your amazing emulators.
If you have any questions, check the FAQ or just email me.