SegaSonic the Hedgehog
From Sonic Retro
Revision as of 16:35, 18 February 2020 by CenTdemeern1 (talk | contribs) (→I, CenTdemeern1 (aka Timo Herngreen), analyzed the physics of the game. Here is a discussion in which I explained how they work.)
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.
CenTdemeern1:
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)
Crystal:
what’s the result
CenTdemeern1:
You want the math?
Crystal:
yes
Cybbr | Spooky Ghost:
quick maths
CenTdemeern1:
Alright
So
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
and
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:
sodaisgood3yt:
why just why
Crystal:
because I said so
sodaisgood3yt:
no
CenTdemeern1:
every frame, it adds the value of the speed variable to the corresponding position variable.
I'm done explaining everything I think
sodaisgood3yt:
the faster the frame rate the faster the game
CenTdemeern1:
Yes.
Duh
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?
sodaisgood3:
nope
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.