Posted 03 March 2012 - 04:16 PM
I've been doing research around, and I've noticed that every level in Sonic CD is it's own file, needing it's own set of sprites for the same thing, etc. I'm wondering if this forces one to set en entire new set of rules for sonic's movement and control setup, and if this could be exploited to allow for level-specific moves (I.e. removing super peel-out in only PPBF, or allowing homing attack only in CCGF, etc)? I tried searching, but have found nothing related to this, so I thought the next logical move was to try asking. Correct me if I'm wrong, but don't be a douche about it, please.
Posted 03 March 2012 - 04:36 PM
With the way Sonic CD is set up you would be correct in assuming that you could have level-specific moves, as the object code for Sonic (and all other level objects) are in the individual level files themselves.
However, editing each individual file is a task in and of itself, as there is no specific disassembly for Sonic CD in the first place.
Posted 03 March 2012 - 04:38 PM
Each file is literally like a completely separate game, so yes, you can enforce completely different rules on each level if you want (or even each timezone of each level). Good luck maintaining all that though.
I guess that in the original development they took the same piece of code and then used include directives or some tool to generate the level files.
Posted 03 March 2012 - 05:53 PM
This would be a cool thing to implement though, if figured out and planned well. Having the original SCD Spin Dash in the beginning, and then getting the S2 one halfway though the game (as if Sonic is "getting better at it") could be interesting. Good Luck with your project! I'm looking forward to seeing your results.
Posted 03 March 2012 - 10:09 PM
Just the potential for that makes me love Sonic CD more than I already did. That's conceptually intriguing and I'd love to see where you're going with the idea =)
Posted 04 March 2012 - 12:05 AM
Ah, the perks of hacking a sloppily coded Sega CD game.
Posted 04 March 2012 - 04:56 AM
Funny, rather than having it transition from one type of spin dash to the next, the thought that came to mind was having specific levels for Sonic, importing and having specific levels for Tails and Knuckles, and removing the time travel gimmick to end up with three/four times the levels rather than three/four versions of each level. Somebody needs to work on importing new characters into Sonic CD rather than having so many "Character-in-Sonic 1" hacks.
Now I'm kind of curious if the boss battles were coded similarly to Sonic 1/2/3+K, and if porting bosses is the same or similar to how people have ported Sonic 1 bosses into Sonic 2. It seems like there's so much potential going on that's being wasted for the most part.
Posted 05 March 2012 - 11:29 AM
In all the future stages you can be modern Sonic. Sonic 06 Sonic in the Bad Future, Generations Modern Sonic in the good future.
Posted 09 March 2012 - 09:19 PM
thank you, this is quite helpful. see, the idea I have is to have movesets change between levels and timezones based on "environmental factors", example being that in PPBF, the "pollutants in the air" would cause sonic to sneeze rather than peel-out (yes, I am planning on using lost sprites) furthermore, would it be possible to put the 3D ramp/loop/whatever in other time zones of the same level? I really liked those, it just doesn't make sense to me why they'd only put them in one time zone of one zone of one level. I'm probably going to need quite a bit of help with this, but I don't think it's not going to be too big of a deal.
Posted 13 April 2012 - 08:30 AM
Hey I got an idea if you still don't know what your going to do with this: How bout Classic Sonic in the Past, Modern Sonic in Present, and maybe a "Future Sonic" with a new game play style, or you could use Silver.
Posted 17 May 2012 - 07:42 PM
To chime in on the original question: What could be done is when/if I finish my 510 disassembly, I'll have placed all common code in one file, and used include directives and stuff to build each level mmd. A simple way to slip moves into sonic's engine would be to set up a header or whatever you call it with assembly that would hold all the ram/rom/etc addresses and values so you can simply write code for any given move that adheres to the standards of the Sonic Object and then slip it right in that section of code (or any really if you link it around correctly) and bam, you have a custom move inserted into an MMD. If you wanted to make it a global change, also simple, add it to the engine itself.