SegaSonic the Hedgehog

From Sonic Retro

Three revisions *and* a prototype?

I was under the impression that Rev. A *was* the known prototype version. The page here says there's A, B, and C, plus a prototype. MAME lists two versions: sonicp ("Prototype", probably the same as Rev. A) and sonic (Rev. C).

Can someone help to clarify this? ---GerbilSoft (talk) 15:48, 1 November 2019 (EDT)

I've never seen a "revision B", although maybe the boards give more clues.
Revision A is the prototype version. I'm not sure why it's called that, although MAME did support the prototype many years before the final, which makes me guess that they thought the prototype was the final. At least at the beginning.
I'm only aware of two dumps either way -Black Squirrel (talk) 16:09, 1 November 2019 (EDT)

I, CenTdemeern1 (aka Timo Herngreen), analyzed the physics of the game. Here is a discussion in which I explained how they work.


Anyone remember SegaSonic?

I analyzed and figured out it's physics

Because apparently no one had done it before.

(SegaSonic as in SegaSonic The Hedgehog, the arcade game)


what’s the result


You want the math?



Cybbr | Spooky Ghost:

quick maths




X and Z speed

Are the analog input of the trackball divided by 7.5

Y speed (jumping)

when you jump, your y speed is set to 8.37

(all these values are in pixels)

every frame, your y speed is decreased by 0.56

next up:

displaying Y and Z is done as such:

Screen Y = Sonic Y + Sonic Z / 2

Braking and the turn-around:

for example, when you X is positive and you're holding left, you'll do a turn-around

in that state, your x speed is decreased by 0.62857 every frame

until your speed is equal to or less than zero, when you snap back to the speed you're moving the trackball at

when not moving the trackball, the natural friction you experience is 0.06094.

your speed is decreased by this every frame.

oh, I forgot

when in a turn around state, if you are not moving the trackball (aka you're not holding) down or up in the left example, your z speed is set to zero.

note that you can turn around in any direction, and it works the same for all of them, i just gave one example so i could explain it more quickly.

how you land is simple.

the game at all times knows your distance to the floor.

when applying y speed to your y coordinate:

it actually takes the smallest number of:

your y speed


the height of the floor - your y position (aka the distance to the floor)

and subtracts that from your y position

and lastly (i think):

applying speed:


why just why


because I said so




every frame, it adds the value of the speed variable to the corresponding position variable.

I'm done explaining everything I think


the faster the frame rate the faster the game




If you want to work with other framerates than 60 fps, just do the physics every 1/60 seconds, and render more or less than once.

Any questions?



EDIT: When doing a turn-around, your speed that's not the one turning around is set to zero when not rotating the trackball in / pressing its direction.