Sonic 3 (Nov 3, 1993 prototype) - Technical Analysis & Research thread

Discussion in 'Engineering & Reverse Engineering' started by JoseTB, Nov 18, 2019.

  1. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  2. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  3. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  4. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  5. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  6. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
     
  7. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
    Ok, all caught up! Let's just continue the conversation here.

    Really sorry, didn't mean to undermine other people's posts, it's just that the conversation was getting buried on the other thread and I thought I'd be a good idea to preserve it.
     
  8. Black Squirrel

    Black Squirrel

    Sometimes the real thing™ Wiki Sysop
    5,164
    58
    28
    Northumberland, England
    wiki wiki wiki
    • Like Like x 1
    • Agree Agree x 1
    • List
  9. JoseTB

    JoseTB

    Tech Member
    685
    20
    18
    Oops, added the link to the main post, thanks.
     
  10. Fred

    Fred

    Formerly known as 'Neo' Oldbie
    1,483
    42
    28
    Portugal
    Sonic 3 Unlocked



    Cutscene Knuckles subtypes exist for AIZ1 and CNZ2, but they don't do much yet. Surfboard intro Knuckles is a completely different object and is loaded by the AIZ1 resize routine regardless of circumstance.

    Working on a disassembly over here but it's probably gonna be a while until it's done.
     
    • Informative Informative x 7
    • Like Like x 4
    • Useful Useful x 1
    • List
  11. Dark Sonic

    Dark Sonic

    I'll find the old avatar eventually Member
    12,248
    37
    28
    Working on my art!
    So I have a general questions. If this is built off Sonic 2, why are so many things broken? Like if you play as Tails he uses Sonic's HUD even though he had his own in Sonic 2, Sonic has no underwater palettes even though that was a feature in 1 and 2. I know the sound driver was being rewritten so that explains some of the sound fuck ups. But you'd figure some stuff should work from the get go.

    I'm not exactly familiar with game development but it's always interesting to see stuff that you think would still work become broken at some point only to have to be repaired again.
     
  12. Maybe they used the engine but gutted anything that was definetly not getting used (level data, music, etc). Why redo a menu when there's a perfectly good one sitting there. Plus they have sonic and tails sprites that can be reused. Considering the timeframe they were working with it wouldn't make sense to start from scratch.

    Would be nice to find more remnants of s2 though!

    Ps. Hello everyone!
     
  13. Black Squirrel

    Black Squirrel

    Sometimes the real thing™ Wiki Sysop
    5,164
    58
    28
    Northumberland, England
    wiki wiki wiki
    If you're gutting out huge sections of code and assets (or I suppose, making space for new content), you're bound to get unexpected regressions, especially when you're working in a tight space where every byte matters. They broke things.

    It's like removing a load-bearing wall from a building and the roof collapsing. You weren't removing the roof, but it relied on that wall.
     
  14. Is it possible to hack in, say, the s3&k mushroom hill graphics, data, collision and everything else that's needed for the level in order to get it running in the proto? Will the proto read and understand it, even if you had to remove other stuff to fit it in?
     
  15. Chainspike

    Chainspike

    Stealing rings since 1994 Member
    I have a few guesses for these issues:

    1. The tails object was updated quite a bit between Sonic 2 and 3, so this seems to be combination of old Sonic 2 code and the new Sonic 3 stuff conflicting. For example, some RAM addresses were moved around, and a more versatile character system was added with plans to add Knuckles as a playable character. Tails as a playable character was also hidden at this point, so it didn't matter as much.

    2. Sonic does have some underwater palettes (AIZ1). Sonic just doesn't have a palette for all of them yet.

    3. Remember Knuckles Chaotix 1207? The sound driver here does work pretty well in comparison to that. We can tell from the un-optimized music, and music changes that they were still working on the sound driver in this build, which explains the issues.
     
  16. kazblox

    kazblox

    Member
    163
    13
    18
    Diassemblies and decompilations.
    There is a bunch of RAM mirror abuse in some sections. Makes me wonder how they managed constants. Example:
    Code (Text):
    1.                lea     ($FEA000).l,a6
    2.                tst.b   (byte_FFF742).w
    3.                beq.s   loc_1AB60
    4.                lea     ($FEA000).l,a6
     
  17. Chainspike

    Chainspike

    Stealing rings since 1994 Member
    S3&K data wouldn't be as practical as data from Sonic 3C 0408. But of course, simply taking all the data from the 0408 prototype would leave us with S3C 0408 Mushroom Hill with Mushroom Valley's object layout. The best way to restore it would be by using all the data that can taken from the leftover data. From my understanding this includes:
    • Compressed tiles (cutoff, probably not salvageable)
    • 128x128 chunks
    • Early palette
    • Possible level layout
    Assuming everything here is indeed salvageable, a hacked together MHZ 0408 + S3 MVZ may be possible to put together, but considering drx has already attempted this, don't expect much. Lava Reef Act 2 suffers from a similar situation, but there may be more luck there.
     
  18. SyntaxTsu

    SyntaxTsu

    Member
    55
    12
    8
    When it comes to Lava Reef 2, I'm wondering how the level layout left over in the prototype would match up with the chunks from 3C 408, so we could get a solid idea as to how it would have looked and played. We've already used 3C 408's data to restore the collision in LRZ1, afterall...
     
  19. Black Squirrel

    Black Squirrel

    Sometimes the real thing™ Wiki Sysop
    5,164
    58
    28
    Northumberland, England
    wiki wiki wiki
    Knuckles can perform the drop dash in 2-player. It's always been a bit of a curiosity that Knuckles plays exactly the same as Sonic in that mode - I presume there's no hidden code in there?
     
    • Agree Agree x 1
    • Informative Informative x 1
    • List
  20. Travelsonic

    Travelsonic

    Member
    771
    7
    18
    I know I posted this on the other thread, but it is worth just making sure it doesn't get lostin this thread that is actually trying to act as a repository for tech info

    Unsurprisingly, the double-death drowning bug (and arithmetic underflow bug) from Sonic 1 and 2 is in this prototype of Sonic 3, which I demonstrate in this sloppily-thrown-together video I made.



    (Had to use debug to get to a platform where Sonic could actually fall off and die - seems when I tried this anywhere else, Sonic would rebound off the spikes, drown, then hit solid tiles, and stop, hindering whether or not I could test if this double-death was doable at this point in the game's development)