Sign in

Under the Surface of Classic Sonic

@classicsoniccode.bsky.social
369 followers 0 following 147 posts

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

PostsRepliesMedia
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20h
Seems like the devs did intend for HCZ to use the gradual H-BLANK function, as the color order table does get set. However, when I enabled it, it seemed fine for a bit, but then the game completely froze. I'll definitely be investigating more.
170
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20h
Carnival Night Act 2 and Launch Base Act 2 make pretty prominent use of water, so I doubt that's the case. Hydrocity does have that 3D-like effect for the water surface, but so does Launch Base.
130
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 21h
Yes it does.
000
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 22h
A technical dive (😉) into Sonic 3's water palette swapping!
9909301
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 22/08/2026
It doesn't apply to the USA version due to the demos being rerecorded, and thus the demo programs were built off of a newer version without the prototype logic.
060
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 22/08/2026
Due to the demo programs in the Japanese and PAL versions (not USA) of Sonic CD being built off of a prototype, they retain the logic for enabling debug mode by pressing start on player 2's controller. You can do this so that you don't need to enter the code in the sound test.
1257
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 17/04/2026
In this case, implementing the depth check for when Sonic is moving horizontally, while fixing the issue I highlighted, would make this clip even easier. The proper fix for this would be to also check if the surface Sonic is colliding with is merely top solid, and only perform the check if it is.
020
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 17/04/2026
However, in Lava Reef Zone, there's a set of fully solid stairs that Sonic can clip into in the same fashion, but because he'll get stopped by the next step, he'll start moving down, causing the depth check to take effect, allowing him to fall right through. (GIF courtesy of Flamewing)
1111
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 17/04/2026
If you mean like this, then, no. The clip is possible, because floor collision is ignored when he's moving upwards, and the wall sensor is too high up in this instance to trigger a wall collision. He also isn't deep enough into the platform for the depth check to cause floor collision to be ignored.
150
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
...and Sonic 3 & Knuckles.
1112
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
...and Sonic CD...
1102
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
This bug also exists in Sonic 2...
182
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
This is what the missing check does, which is present when mostly falling downwards and less horizontally.
150
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
There are 4 collision modes while airborne, 1 for each cardinal direction. When he hits the rock, his Y speed is cancelled out while still moving right. Since he's technically colliding with the floor and the check isn't done, he clips on top of the surface, right into the rock.
160
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/04/2026
There exists a collision bug where the check used to prevent Sonic from clipping on top of a surface he's too far below from isn't done if he's moving horizontally in the air. This can easily be seen if you put a solid object on a top solid surface and hit it from the bottom.
2185
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 02/03/2026
12800 = 50 * 0x100
010
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 02/03/2026
Here's a silly difference between the 510 and 0.28A (512) prototypes of Sonic CD. Special stage rings always appear in 510, but never in 0.28A. 0.28A added a ring count check, but only checked the top byte. As a result, they can only appear if the player has at least 12800 rings.
150
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 27/02/2026
(You can find the hack here: sonicresearch.org/community/in...)
sonicresearch.org
010
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 27/02/2026
There's a ROM hack of Chaotix called Knuckles' Clackers by GenesisDoes that reimplements loops, and even uses the masking sprite... but it still illustrates the problematic nature of loops with the tethering mechanic.
1316
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 27/02/2026
Small fun fact, there's an unused sprite in the final build that would have acted as a sprite mask by drawing on top of the character sprites, but set to use a low priority color so that it would appear behind the loop, which is drawn by the Genesis.
190
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 27/02/2026
Loops were planned on being implemented in Chaotix, even being present in prototypes... yeah, I can see why they were removed (footage provided by @mdtravis.bsky.social)
1398
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 24/02/2026
Seems like you can mess around with the peelout to get the collision to register, though.
040
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 24/02/2026
I do know you can glitch the physics in the 3D loop to get you to into that area... maybe it's just a failsafe in case that section goes wrong? Can't say for sure, though.
020
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 24/02/2026
No, you can't time travel in this area. In the present, the camera will refuse to go back once you've gone past it, and if you are in the past or future, time travel gets disabled.
130
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 24/02/2026
Curiously, there's a couple of hidden springs around here as well, but they cannot be touched, because they are completely obscured by the ramp.
160
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 24/02/2026
There's a hidden tunnel that can be found right towards the end of the 3D loop section at the beginning of Palmtree Panic act 1 that I'm not sure is even accessible via normal means. Anyone have any ideas?
2143
Reposted by Under the Surface of Classic Sonic
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
The Metallic Madness act 2 demo was, indeed, rerecorded as well. The USA demo struggles while the Japanese demo gets quite a bit further ahead. Left: Japan/Europe, Right: USA
082
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
The Metallic Madness act 2 demo was, indeed, rerecorded as well. The USA demo struggles while the Japanese demo gets quite a bit further ahead. Left: Japan/Europe, Right: USA
082
Reposted by Under the Surface of Classic Sonic
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
The Tidal Tempest act 3 demo was also rerecorded. What I find peculiar is how whoever recorded the USA demo slowly walked to the boss while the Japanese demo caught up. Were they trying to eyeball the Japanese demo? I dunno... Left: Japan/Europe, Right: USA
182
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
The Tidal Tempest act 3 demo was also rerecorded. What I find peculiar is how whoever recorded the USA demo slowly walked to the boss while the Japanese demo caught up. Were they trying to eyeball the Japanese demo? I dunno... Left: Japan/Europe, Right: USA
182
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
Note the different timings. With the special stages, the demo ends when the controller data reaches an entry with the start button pressed. The normal stage demos are fixed at 2048 frames.
020
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
Special Stage 6 Left: NTSC, Right: PAL
140
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
In the PAL version of Sonic CD, the physics of Sonic were modified to more closely resemble the NTSC physics while at a lower frame rate. As such, separate demo controller data had to be recorded for the special stage demos. Special Stage 1 Left: NTSC, Right: PAL
150
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 20/02/2026
For some reason, the demo for Palmtree Panic act 1 was rerecorded for the USA release of Sonic CD. Here's a comparison showing the differences. Left: Japan/Europe, Right: USA
1100
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
Thanks for the 200 followers :) Sorry that I've not been posting as much here. I admittedly don't really use Bluesky and I keep forgetting about this account. I should find the time to bring this account up to date.
040
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
This also doesn't apply to the special stages, but the special stages don't use separate files for the demos like the regular levels do, so there's not really anything to look into for that.
020
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
Note that you may find some parts of the level corrupted. This is because part of the level data is overwritten with the demo controller data, with the demo avoiding showing those corrupted parts.
120
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
bsky.app/profile/clas...
010
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
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)
1197
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
Note this as well bsky.app/profile/clas...
030
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
Additional fun fact: the sprite here was repurposed for the Backup RAM manager.
0105
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
This is because the demo files that get run during the title screen were built at an earlier time than the normal stage files found on the disc. This pattern of the demos being from earlier builds is also found in the final game.
030
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 18/02/2026
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.
33117
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/10/2025
I think what's interesting about the "Player shock jump up" line is the fact they deliberately used the unsigned byte representation of -2 (0xFE) when setting Mario's Y speed...
000
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/10/2025
Additionally, you can see the removed lines of code in the official All Stars source code!
100
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 16/10/2025
From @nfroggy99 on Twitter/X: "When you look at the All-Stars source code, the equivalent subroutine to BrickShatter (BBKINT) says "Player shock jump up", so you're right that this behavior was intended. I'm glad that they accidentally screwed it up because the All-Stars behavior feels worse."
110
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 15/10/2025
It should be noted that the temporary invisible solid block is what keeps the gap solid while the block bouncing animation plays, and is also what actually kills the enemies when you hit a block from under them.
120
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 15/10/2025
More Mario content? Oh no! Anyways... so, you know how in Mario 1 on the NES, you bounce downwards when you destroy a brick, but hover upwards in the SNES version? Turns out the SNES behavior was possibly the intended behavior? Here's how it works.
13412
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 13/10/2025
It's also possible that they simply just forgot.
010
Under the Surface of Classic Sonic @classicsoniccode.bsky.social · 12/10/2025
This was fixed in Sonic 3 by also applying the modified ground speed cap logic to the air physics.
060