Sonic CD with Faster Time Warps (Palmtree Panic Act 1 Demo)

By Ralakimus

I optimized the time warping in Sonic CD, making it closer to Ohshima's original vision.

So, some technical info with this one. In the original, when you time travelled, it cut to a cutscene with a green background of Sonic flying upwards. Some people believe that this is a loading screen, but the truth is that nothing is being loaded in the background as that plays. The next time zone loads after the cutscene fades to white, hence why there's still a bit of time inbetween when the cutscene ends and when it fades from white after. On top of this, most of the graphics are compressed in Nemesis, which is rather slow to decompress. However, considering this, that load time actually isn't all that bad. In fact, the read speed of the CD drive actually isn't all that bad at all; there's a number of other reasons why load times can tend to be slow (for instance, when the game boots up, it has to load 5 different files: the main program loop file, backup RAM initialization (which is 2 files, 1 for the Genesis side, the other for the CD side), Genesis side initialization, and then the title screen. That's quite a heavy load).

Now, let's talk about the changes I made to make the time warps faster.

First thing I did was split the level files into 3 distinct segments. The first segment contains all the commonly used code and data between every level. The second segment contains all the common stuff shared between every act and time zone within a zone. The final segment contains act and time zone specific data. I made it so that when you time travel, it only has to swap out the last segment, which decreases CD load times.

The next thing I did was convert all the compressed assets into a faster algorithm (Kosinski Moduled). This also had a noticeable effect in the load time, as the algorithm is considerably faster to decompress than Nemesis.

The final thing I did was mess with the timing of when things loaded. I ended up decreasing the time it takes to activate a time warp just a tad to make room for a gradual fade to white. As soon as the fade to white begins, I load the next time zone data in the background. After it fades to white all the way, and ensures that the data is loaded, it is then copied over to Word RAM and the level is restarted with the new data. The cutscene is totally removed from the equation. From there it decompresses the assets and the player is placed in and made playable. I also gave the time warp effect a couple new sound effects for when you start to warp and when you are transported to the next time zone.

These changes made the overall load time about a second or 2 total, and with how I timed when it starts loading and the small changes I made to the warp effect, it's pretty seamless, I'd say. There's still a tad bit of delay, but I don't think that can really be helped.

Also, I smoothened out the special stages ;)

As it stands, this is merely just a Palmtree Panic Act 1 demo

The reason for this is that in order for it to work for the other levels, I'd have to apply my changes to those levels as well, and as of 2022, I only have Palmtree Panic Act 1 as a whole reverse engineered and modifiable. Maybe in the future, when more reverse engineer work is done, I'll make another release.

  • Ralakimus - All the code changes made
  • tristanseifert - Hardware testing

File Type: rom/zip

File Size: 87.3 MB

Ralakimus @ 2022-10-10 07:01:38




Last modified by Ralakimus @ 2022-10-10 07:04:42