Sonic 2: Sweet Relief version 1.1

Discussion in 'Engineering & Reverse Engineering' started by Ambil, Sep 15, 2011.

  1. Ambil

    Ambil

    I want that heinous hedgehog hammered! Member
    893
    0
    0
    Spain
    It has been three years since I published my hack of Sonic 2 for the Sega Master System. I updated it with notable changes. Pretty much everything now that we can enjoy Glitch's disassembly.

    A few days ago I visited this site and I saw a very interesting topic by Ravenfreak. However I found a mistake, not in the code, but in the purpose. The life counter does store more than 9 lives; however, the highest number it shows is "9". You don't know if you have 9, 10, or 30 lives -- unless you check it in RAM of course. That's what I did and I realized that the life counter (the byte that stores the number of lives, not the sprite to show in the screen) was not BCD. So I started modifying all the calls to the life counter in the source code and then completed this work. Two-digit is available here and fully functional.

    But then I couldn't stop! I also programmed a three-digit ring counter. If you get 100 rings, you still have 100 rings. You don't die if you have 100 rings. At the end of the level, you get ring bonus for all your rings, including those over 100.

    I also successfully coded the arrow monitor that lets you start at the place you get it when you lose a life. It places the needed game data in unused bytes of the RAM. Also I fixed a problem in the 10-ring monitor. It didn't give you an extra life when you get it having 90-99 rings, now it does. And of course if you have 190-199 rings, etc.

    Summary:
    * 3-digit ring counter
    * 2-digit life counter
    * Arrow monitor
    * Small layout and sprite changes

    And all the content of the previous version: Layout changes, rings and monitors in the acts 3 of every zone.

    Known problems:
    * The final boss always gave me problems, it always made the game crash after 45 seconds of play, no matter how many changes I made. So I just deleted it.
    * I just realized that if you get a ring monitor with 91-99 rings, then you have exactly 100 rings. I must fix this in the next update.
    * Pointed out by nineko: The end-of-level bonuses screen doesn't show the hundreds digit in its ring counter. It's not a glitch, it happens because I didn't bother in making the code to display it :P However it counts all your rings, it just doesn't show the number.

    Videos:
    Underground Zone
    Sky High Zone
    Aqua Lake Zone
    Green Hills Zone

    Download from the page in the wiki

    Credits:
    Glitch, Ravenfreak, Hivebrain, SGR, MK, Rolken