don't click here

Sonic 2 LD obituary

Discussion in 'Engineering & Reverse Engineering' started by doc eggfan, May 10, 2024.

  1. doc eggfan

    doc eggfan

    Are you pondering what I'm pondering? Wiki Sysop
    GreatMegaLD, GreatSC3k, Great SG1k
    Don't get too excited, this is an obituary rather than a return. :(

    I'm unlikely to return to updating this project. It's been almost 14 years (14 years!?!) since I last looked at it, and I've forgotten much more than I remember. My life has been consumed by my real life job and I just don't have time to devote to this anymore. When I do manage to find some free time, I'd rather spend it playing games rather than making them.

    I've also forgotten too much to start poking around at it again. Back when I started, it was in a time before assembly and dissassembly was a thing (or at least it was only just starting to become a thing). I did all my work directly in hexadecimal in a hex editor, without really understanding it much at all. I understood addresses and pointers (quickly learning about the difference between "little endian" and "big endian" when switching from mega drive to master system), I understood how to redirect an address to a new location (usually at the end of the rom, ruining the checksum, but early emulators didn't care). I figured out how to decompress art, because one of the platform sprites in the game did not compress at all and I could use that as an example of how to store uncompressed art as "compressed" art. I figured out how to read parts of the emulator save state and then use that as a way to find data in the rom. But I wouldn't have got very far at all without the hacking guides that were available, I was a complete noob without them.

    Sonic 2 LD was supposed to be a project that would be "easy" to continue. The ROM that made up the first release of Episode 1 was supposed to be a template for all the episodes to follow, with all of the hard work done. All of the elements of the game - the art assets, the level layouts, the item/badnik locations, etc, were all decompressed and laid out in the rom to make it all easy for me to edit for the next episode. All of this decompression meant that many parts of the original game had been overwritten and destroyed, but the ROM only needed to support 6 levels per episode - the 3 normal acts, 2 "limbo" zones to top and tail the main game, and 1 bonus easter egg level.

    These limbo zones were going to be used to connect the episodes together. When you get to the end of Act 3, you'd enter the Act 4 limbo zone. In this zone, you'd create a savestate, which would record your progress, such as score, lives counter and whether you found the chaos emerald or not. The save state also records what level you're up to, but the idea was to patch over this and reset the level counter to 1, so that when you fired up episode 2, you could start from the beginning of the game with your progress from the previous episode intact. This would prove a little more complicated than originally anticipated, as the examples that were sent to "[email protected]" revealed that different emulators would create save states in slightly different formats, but it would just mean that bespoke instructions would be required to patch them, depending what emulator you were using.

    I did make a start on Episode 02 - Chemical Plant Zone, and that is the purpose of this thread, to release this very very early and very very incomplete version of the game.

    Sonic 2 LD Episode 02 - CPZ (Alpha).sms

    I didn't get very far at all, but I did have a plan on how to adapt the zone to the 8-bit style. I had used a few of the tube level layout pieces (from scrambled egg zone) for the quarter circle ramps and the loops, and I believe I had enough tube pieces left over to still do the actual tubes in CPZ. You can see my experiments with the ramps and loops in this release, but I didn't get up to a part with the CPZ tubes. The beginning part of the level where the pipes twist around each other doesn't translate well into the 8-bit engine. I tried a few experiments and this is where I ended up. In the end, I think I would have decided to just have one solid pipe snaking up and down, and have the second pipe basically just as decoration in the background. Credit for most of the level art belongs to the infamous Polygon Jim (I think, if I am remembering correctly, it might have been someone else). UPDATE: It was MoDule who did the art (my bad).

    In the limbo zone "Act 0" I would have removed the signpost for the final release, and then patched it back in with the episode 1 save state. This would mean you'd only be able to play episode 2 if you had a patched save state from episode 1, which is why the text says "NO WAY" and has a dotted outline for the signpost.

    For the bonus easter egg level, I was thinking of a replica of the Pacman maze :)

    That's about it for now and probably forever. I might one day in the future pick this up again, but I wouldn't count on it.

    Thanks to everyone who supported me while this was active, and thanks to all the people out there who played it and enjoyed it, even though it never got any further than episode 1.
    Last edited: May 10, 2024
    • Like Like x 14
    • Informative Informative x 2
    • List
  2. Overlord


    Now playable in Smash Bros Ultimate Moderator
    Long-term happiness
    Thanks for putting out what you did on zone 2- I played S2LD back in the day and loved the Limbo Zone idea. I'll have to have a play of this.
  3. Harmony Friends

    Harmony Friends

    it's the whole gang Oldbie
    Wow, that Limbo Zone idea is a fascinating concept… never heard about it in detail before. Anyway, I always loved the first episode; thanks for releasing this!
  4. NoNameAtAll


    MY HAT'S ON FIRE. HALP! Moderator
    I remember playing Episode 1 myself. Good times. Thanks for putting this out there and good luck with whatever you do in the future. Hopefully, time will allow you to return one day. But if not? You left an incredible mark, in my opinion.
  5. Flygon


    God damn, I keep feeling like the project is this fresh new thing. It's hard to believe it's been so long. I'm glad we at least get to see the rest of what was done, this was always an insanely cool project.
  6. Lilly


    United States
    Shang Mu Architect
    It's surreal to realize it really has been that long since the first release. Long before I even had an account here, I was lurking as a guest and played Sonic 2 LD when it was a fresh new thing. (Emulating it via Apprentice MinusDS.) At the time, I was really excited to seeing this project be finished; my respect for you now is the same as it was back then, doc eggfan. :)

    I'm sorry to hear this is how the project more-or-less ended, but I also appreciate this update being posted. Like everyone else, I want to thank you for letting us play with this build; this is quite a blast from the past. It reminds me of how it was such a good time to follow the Sonic hacking scene, all those years ago.

    (Hacks like this and many others are becoming retro themselves now, aren't they?)
  7. Ravenfreak


    2 Edgy 4 U Tech Member
    O'Fallon Mo
    Sonic 1 Game Gear Disassembly
    I remember when Sonic 2 LD was first released, I was brand new to Sonic Retro. Thank you for sharing this final build with us and working on such an awesome hack! Especially back before the Sonic 2 SMS disassembly was available.
  8. BlackHole


    You're going to need MORE than help. Member
    I remember doing some graphical stuff for this. Ended up getting me accepted into the forums. Good times, so long ago...
    • Informative Informative x 1
    • List
  9. ArmonteSalvato


    I saw a gameplay video upload of your hack and immediately tried it on my everdrive x7. It boots just fine and I've had no crashes, so it matches the tube and pipe behaviours outlined below the download link.

    It's an ambitious project and usually the outcome is similar to what you described at the top of your post. Unfortunately, I've had to cancel a project that was very dear to me over 10 years ago, although it used an earlyish split disassembly rather than direct hexadecimal editing. I was 1/5th of the way through college - and with work, I never went back to it and can't get back in the 'vibe' as it were, to invest in it.

    There is however, one positive thing that I've noticed; observing the skills I use daily at my job (and the industry I'm in, in general), it seems many if not most of them were developed during my ROM hacking days. Thinking outside the box like this gives me incredible leverage, and I'm glad I went through this process. Nothing is ever truly 'cancelled'.

    Thank you for sharing this build!
  10. doc eggfan

    doc eggfan

    Are you pondering what I'm pondering? Wiki Sysop
    GreatMegaLD, GreatSC3k, Great SG1k
    Thanks for everyone's kind words.

    One extra little treat is hidden away in this Episode 2 release. I've noticed that the version of Episode 1 that has been widely circulated doesn't have the SMB Overworld theme for the World 1-1 bonus level. I could have sworn there was a version released where we added that in - I didn't do the music, someone else provided it, I forget who. I'll need to go digging through my archives and see if I can find the original episode 1 release, but if you load a savestate from episode 1 from the "Act 5" credits screen and load it in Episode 2, you can enter the bonus level and hear the new music, although you can't play the level because something has gone all janky. Here is the savestate I created using Kega Fusion

    Sonic 2 LD Episode 02 - CPZ (Alpha).ss0

    UPDATE: We also added the 16-bit boss theme to episode 1 as well. You can hear it in Episode 2 using this save state, but the graphics are all messed up. I really should try and dig up the proper version of Episode 1

    Sonic 2 LD Episode 02 - CPZ (Alpha).ss1
    Last edited: May 12, 2024
  11. aria


    day dawns Member
    I played Sonic 2 LD as a lurker back in the day, and just wanted to say thank you for all of the work, and for the extremely detailed obituary. Thank you for also providing the Episode 2 ROM.
  12. ashthedragon


    Sonic Paradise Researcher
    Sonic Paradise & Sonic Ages
    Sonic 2 LD was one of my favourites hack back in the time, along with The hybridization project, and even if it is cancelled (something that has not taken me in surprise, it has been too much time with no updates) this is a beautiful swan song. I have to thank you, Dr.Eggfan, for bringing love for the 8 bits games (specially sonic 2, my favourite) when nobody did. Not much people work on SMS projects nowadays, but I'm sure there will be absolutely zero if your projects weren't there in the first place.
    So thank you!