v0.1 ⌊ALPHA⌉
Cite as
sonicretro/s1disasm
Original
https://github.com/sonicretro/s1disasm
Pinned
sonicretro/s1disasm @ 15dfa3a6ee4c53aeb482233e493755c84b4f3479
Accessed
2026-10-20
Licence
none stated; the README disclaimer says the content is "for informational and educational purposes only" and "Commercial usage is expressly prohibited"
Credit
Sonic Retro community disassembly project; see the repository's contributor graph (the pinned commit is by Selbi182).
Notes
Builds REV01 by default (sonic.asm: Revision = 1, FixBugs = 0). The jump code cited here has no revision conditionals; claims describe the FixBugs = 0 (original) paths.

Cited on

Claims (12)

Sonic's jump speed, son_jumpspeed, is $680 subpixels per frame (6.5 px/frame) out of water._incObj/01 Sonic.asm L8_incObj/01 Sonic.asm L1218T3
Sonic_Jump adds the jump speed along the ground normal (CalcSine of angle − $40); on flat ground that is exactly -$680 to Y speed, nothing to X._incObj/01 Sonic.asm L1224–1233_incObj/sub CalcSine.asm L53T3
ObjectFall's gravity equate adds $38 subpixels/frame to an airborne object's downward speed each frame, Sonic's included._incObj/sub ObjectFall & SpeedToPos.asm L5_incObj/01 Sonic.asm L363T3
During a jump, with no jump button held, Sonic_JumpHeight clamps any rise faster than 4 px/frame to exactly -$400._incObj/01 Sonic.asm L1273–1288T3
Gravity slows Sonic's 6.5 px/frame take-off below the 4 px/frame release cap within 12 airborne updates._incObj/01 Sonic.asm L8_incObj/sub ObjectFall & SpeedToPos.asm L5_incObj/01 Sonic.asm L1276–1284T4
In the airborne-rolling mode (Sonic_MdJump2), the release check runs before ObjectFall moves Sonic and adds gravity._incObj/01 Sonic.asm L359–363T3
Sonic doesn't move on the press frame; Sonic_Jump drops its return address, skipping the rest of the grounded routine, SpeedToPos included._incObj/01 Sonic.asm L1236_incObj/01 Sonic.asm L317–323T3
A standing jump curls Sonic up, shrinking his height radius from 19 to 14 and adding 5 to Y, so his feet stay put._incObj/01 Sonic.asm L1250–1254_Constants.asm L312–314T3
ObjectFall adds the pre-gravity speed, shifted left 8 bits, to the 32-bit position, so positions are 16.16 and speeds 8.8 fixed point._incObj/sub ObjectFall & SpeedToPos.asm L16–20T3
Sonic 1 never caps falling speed in the air; with FixBugs = 0, Sonic_JumpHeight's only cap is upward (-$FC0) and skipped after jumps._incObj/01 Sonic.asm L1291–1302T3
Sonic gets no grace window after leaving a ledge: only the grounded modes, Sonic_MdNormal and Sonic_MdRoll, call Sonic_Jump._incObj/01 Sonic.asm L113–116_incObj/01 Sonic.asm L318_incObj/01 Sonic.asm L348T3
Simulating the jump code (flat ground, out of water) gives apexes of 39 px tapped and 100 px held, airtimes 39 and 62 frames._incObj/01 Sonic.asm L1273–1288_incObj/sub ObjectFall & SpeedToPos.asm L16–20T4