ASM Sonic Eraser Disassembly (In Progress)

Discussion in 'Engineering & Reverse Engineering' started by RadioTails, Mar 24, 2020.

  1. RadioTails

    RadioTails

    Member
    10
    5
    3
    So does anyone like Sonic Eraser? No? Well I have decided to put together a disassembler for it. Check out redhotsonic's review for more information on this game:


    So I wanted to get some practice at making a disassembler, and since Sonic Eraser is a simple 256Kb game, and I like puzzle games, I decided this would be a good game to make a disassembler.

    You can download V0.3 from here: http://www.mediafire.com/file/eii9bb2k2zc6qw4/Sonic_Eraser_%28Disassembler_-_V0%2C3%29.7z/file
    Note: IT IS NOT COMPLETE, so the rom can't be complied let.

    If I find anything of interest, I'll post it here. The story goes this was available on the Sega Modem in Japan in 1991. It was then made available to download from Sega's website in 2004. The rom that can be found online is based on the 2004 version, as there are a lot of unused graphics that are related to the Sega Modem.

    At loc_0000024C, it actual skips out the Modem check. If you change loc_00000006 to hex 0250, it runs the checks to see if the Modem is connected. It displays a green screen, then the message below, followed by a red screen.
    [​IMG]
    The message roughly says: No Modem has been detected. Please turn off the power.

    This game is also very strange that it transfers rom data $20000 - $2BFFF to RAM $0000 - $BFFF. So a lot cases, the game refers to offsets that are in the RAM. My guess as to why they have done this was because the Modem had a limit of 128Kb, so the other half is loaded into the RAM. On the bright side, this means RAM C000 - FFFF is used for other stuff.

    All the graphics are compressed with Nemesis, and the compression is at loc_000036A4. The font is uncompressed and uses 1bpp.

    The Sound Driver is Z80 SMPS. I have found where all the Z80 data is (along with an offset where it is located in the RAM), but I need to separate the data. There's only three FM tracks in the game, but the fact it is stored in the RAM, that's not too surprising.

    --------------------------------------------------------------------------

    Found the data for the 40 ROUND Puzzles. They are very simple to edit as the screenshot below shows:
    [​IMG]
     
    Last edited: Mar 29, 2020 at 11:47 PM
    • Like Like x 5
    • Useful Useful x 1
    • List
  2. JustMe

    JustMe

    a.k.a. DelayHacks Member
    34
    3
    8
    Planet Earth
    Sonic: Uncharted Island
    Hmm.. i will check it.
    However, unused graphics? Can you show them here? :)
     
  3. RadioTails

    RadioTails

    Member
    10
    5
    3
    I know where the unused graphics are located (around hex 6300 to 8000), and these will be included in the next update. Now whether there are palette / tile placement data remains to be seen.

    One graphic looks like it would have displayed the Sega Meganet logo. Here's a bad attempt at putting it together:

    [​IMG]

    EDIT: It's the Sega Net News logo: https://segaretro.org/Sega_Net_News
     
    Last edited: Mar 24, 2020
  4. RadioTails

    RadioTails

    Member
    10
    5
    3
    And they couldn't be bothered to rip the unused Sega logo, which actual has palette data in the rom. :V There is code that loads it into RAM:

    loc_000006E0:
    SUBQ.w #2, ($BC20)
    LEA loc_0000070C, A0 ; Sega Logo Palette
    LEA ($F864), A1 ; RAM Address to store Palette.
    ADDA.w D0, A1
    MOVE.l (A0)+, (A1)+
    MOVE.l (A0)+, (A1)+
    MOVE.l (A0)+, (A1)+
    MOVE.l (A0)+, (A1)+
    MOVE.l (A0)+, (A1)+
    MOVE.w (A0)+, (A1)+


    But yes, the unused graphics are related to the Sega Modem. Didn't occur to check the sprite resource. Someone should really make a Cutting Room Floor section.

    I've also uploaded V0.2 where I have started to put the Round Puzzle data together. Since I am now on paid vacation, I have more time to update the assembler.
     
  5. RadioTails

    RadioTails

    Member
    10
    5
    3
    The disassembler is coming along nicely, and have uploaded V0.3
    I am currently figuring out what is code and what is data in the 20000 to 2C000. As mentioned on the first page, the data is transferred into the RAM.

    All of the text has been located, with the exception of the Staff Credits that loads if you clear ROUND 40 (these appear to be sprites, but it shouldn't be hard to locate).

    I have separated all 41 of the Round Puzzles. I plan to make a editor so you can edit the bin data, so that should be fun.

    I'm trying to figure out how the mapping values for the Book and Playing field are stored. I know they get stored at RAM FFE630, and know where the book mapping values are.