Under the Surface of Classic Sonic

@classicsoniccode.bsky.social

All about programming, unused content, and more in the Classic Sonic games!

A few ways to play and see it: 1. Modify the disc image to set the byte at 0x2A75353 from 1 to 0 (712 prototype only) 2. Modify RAM in an emulator to set address 0xFF1581 to 0 (works in final) 3. Use PAR code FF1581:00 or Game Genie code AAL9-8AEB in an emulator (works in final)

Under the Surface of Classic Sonic@classicsoniccode.bsky.social · 7mo ago

Thanks to c4/seafour4 on the Hidden Palace Discord server, a new prototype signpost sprite was discovered in the Palmtree Panic act 1 demo (DEMO11A.MMD) in the 712 prototype of Sonic CD, which was previously only seen in a magazine.

Sprite order is what determines who's in front of what, regardless of priority. All one needs to do is ensure the high priority sprite is bellow the low priority sprite while in front of a high priority tile layer. Footage from "I made you a Salad" (SHC 2019)

Under the Surface of Classic Sonic@classicsoniccode.bsky.social · last yr.

Ever seen this weird sprite quirk with the lava and platform in Marble Zone in Sonic 1? Here's why that happens.

scrh_flag and scrv_flag do function in the Sonic 1 prototype, and may be related to a potential scrapped auto-scroll function. Each are individually set if the stage boundaries for their respective axis are the same, and change how the camera moves. [1/2]

Bild
Under the Surface of Classic Sonic@classicsoniccode.bsky.social · 2y ago

There's some unused variables related to camera scrolling in Sonic 1 and Sonic CD. Here are their official names, taken from Sonic Gems Collection.

Sega did have their own formats. The 2 most well known ones are "Nemesis" and "Enigma". "Nemesis" was used for tile graphics and "Enigma" was used for tilemaps. Symbol data revealed "Nemesis" to potentially be called "bitdevr", and "Enigma" to actually be called "mapdevr".

Under the Surface of Classic Sonic@classicsoniccode.bsky.social · 2y ago

There is a compression format used in various Sega Genesis games known as "Kosinski". It is an LZSS based format used for various kinds of data in games. Recently, it was found out that "Kosinski" was LZEXE this entire time. 🧵 bellard.org/lzexe.html