Discussion in 'Engineering & Reverse Engineering' started by JoseTB, Nov 18, 2019.
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.
Support the home team - we're good at this stuff too!
Oops, added the link to the main post, thanks.
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.
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.
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!
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.
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?
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.
There is a bunch of RAM mirror abuse in some sections. Makes me wonder how they managed constants. Example:
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)
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.
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...
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?
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)
Separate names with a comma.