Sonic Learns the SpinSwim

By LittleFieryOne

Hello, welcome to my first Romhack! I hope this is enough for the contest or at least the expo, but if it isn't I understand. I have spent so much time on this there is no way I am not going to take a shot at submission. God help me for this. So it was moved to the expo. Sorry, I haven't updated it in the time since then.

Nearly two years ago now, I was thinking about how unfun a majority of underwater levels in Sonic games are. Or at least, they aren't fun to move around in. They're simply long and sluggish to get through, and often a player's reaction to falling in the water is to get out of it as soon as possible. Even a newer game like Sonic Colors has this problem. Aquarium Park was at its most fun when you were speeding through the water with the Drill wisp. And then it hit me. What if Sonic had access to that kind of movement system at will?

The result is the following system: If Sonic rolls while underwater and then jumps, he will perform the SpinSwim, allowing multi-directional movement similar to the Drill Wisp or perhaps NiGHTs. The SpinSwim will slow down and stop soon enough depending on how fast you were rolling; however, to cancel it on a whim, simply press the jump button again. It will also (at least in theory) stop if you bump into something.

This is all because I became suddenly interested in assembly code. I'd been watching the Hacking contest for years, and I became fascinated with how the Genesis and its emulation really works. I did some research, then started editing an assembly about a year ago. By now I have learned a lot about art editing, level editing, hex editing, physics, and even a little bit of sound editing.

Unfortunately, figuring all of that out took up most of my time. My original hope was to create a unique level with original sprite work, in order to show off some of the possibilities this movement system would open up for level design. But then the week of the contest arrived, and all I had time to cobbel together was a small and empty "sandbox" in Emerald Hill. I edited the level select cheat to simply be "01," so if people want to see how it feels to move around Aquatic Ruin like this, it should be less cumbersome to reach that stage.

Whether or not this is accepted into the contest, I'm happy to have done this at all. I'd like to thank the internet in general for allowing even an amateur like me to learn how to modify a Sega Genesis ROM. With some luck and determination, I hope to follow through on some of my original goals next year. Regardless, let me know just generally how this feels to play or if this movement system has any potential.


Software Used

  • Esrael Neto Assembler Editor, for messing with the assembly code.
  • Gens, specifically KMod, which was great for debugging.
  • SonEd2, for editing stage layouts and collision.
  • Easy68k, which has nothing to do with the romhack, but it helped me practice with the Genesis' assembly language and also came with the Hex editor I used pretty often.
  • HivePal, which helped with some palette editing, although in using it I broke the rom a few times.
  • SonMapEd, which helped a lot with editing the title screen.
  • The Sega Data Compressor, which helped me fix artwork when something went wrong.
  • Tile Layer Pro, which helped me while I figured out how to use SonMapEd.
  • Adobe Audition
  • This odd Base64 website which helped me convert a WAV file into hexadecimal.
  •, which let me copy paste the hexadecimal text from the Base64 website and thus let me save it as a usuable binary file for the disassembly

Educational Resources (for posterity)

  • SonicRetro/SegaRetro, which helped in too many ways to count.
  • In specific, this forum post which helped me get started.
  • The discord community.
  • MarkeyJester's 68k Tutorial
  • This Nameless Algorithm guy, who helped me learn more about the VDP.
  • The MegaDrive Development Wiki, which in hindsight didn't help me with the romhack at all, but helped me compile a very basic homebrew that taught me a lot.
  • Plutiedev, which taught me how sprites and tiles actually work.
  • Some guy named Hughes Johnson, who's tutorial helped me ease into 68k assembly code.
  • I have this article bookmarked. I don't remember if it helped me at any point. But I'm gonna link it anyway.
  • SomeCallMeJonathan, for introducing me to the hacking contest years ago.

File Type: rom/mega-drive

File Size: 2 MB

Ralakimus @ 2022-10-10 14:18:03

Just an FYI, that Sonic Retro thread you used to get started on ROM hacking is way way way out of date. The go to for level editing these days is and sprite editing can now be done on a tool called, which is far more flexible than SonMapEd.

Last modified by Ralakimus @ 2022-10-10 14:22:19

Ralakimus @ 2022-10-10 14:18:09

There's also this that allows you to right click on a file and compress/decompress it.

Last modified by Ralakimus @ 2022-10-10 14:22:48

Ralakimus @ 2022-10-10 14:19:08

Comment deleted by Ralakimus @ 2022-10-10 14:22:35

LittleFieryOne @ 2022-10-10 22:05:15

I've bookmarked all three of these links. Thanks so much :)

Ralakimus @ 2022-10-10 14:19:43

Comment deleted by Ralakimus @ 2022-10-10 14:22:26