data/claims/symphony-of-the-night.yamlCastlevania: Symphony of the Night (USA PlayStation), read through sotn-decomp
In Symphony of the Night a jump from the ground sets Alucard's upward speed to 4.875 px/frame, and his horizontal speed to 1.5 px/frame toward a held direction, or 0. symphony-of-the-night/jump-speed
About: Castlevania: Symphony of the Night Jump
Value
{
"up": 4.875,
"side": 1.5
}src/dra/6E42C.c#L151-L167if (CheckMoveDirection()) { … SetSpeedX(FIX(1.5)); … PLAYER.velocityX = 0; … PLAYER.velocityY = FIX(-4.875); SetPlayerStep(Player_Jump);sotn-decomp: a decompilation of Castlevania: Symphony of the Night · include/common.h#L95#define FIX(x) ((s32)((x) * 65536.0))Checked by claude, 2026-10-21 — read the decompilation at the pinned commitThe function isn't named in the decompilation (func_8010E83C); it sets the jump step, and a dive kick's bounce reuses it.
Cited by: Castlevania: Symphony of the Night, Jump
While Alucard rises faster than 1 px/frame in a jump, letting go of the jump button (Cross) sets his upward speed to 1 px/frame. symphony-of-the-night/release-cap
About: Castlevania: Symphony of the Night Variable jump height
Value: 1 px/frame
Codesotn-decomp: a decompilation of Castlevania: Symphony of the Night ·src/dra/71830.c#L575-L585void PlayerStepJump(void) { … if (PLAYER.velocityY < FIX(-1)) { … !(g_Player.padPressed & PAD_CROSS)) { PLAYER.velocityY = FIX(-1);Checked by claude, 2026-10-21 — read the decompilation at the pinned commitA flag (unk44 bit 6) skips the cut; it's set after a dive kick's bounce.
Cited by: Castlevania: Symphony of the Night, Variable jump height
Each jumping frame adds 0.171875 px/frame² to Alucard's vertical speed, a fifth of that while Cross is held near the top (between 0.125 px/frame up and 0.375 down), and caps a fall at 7 px/frame. symphony-of-the-night/gravity
About: Castlevania: Symphony of the Night Gravity
Value
{
"gravity": 0.171875,
"apex": 0.034375,
"maxFall": 7
}src/dra/71830.c#L591 — the jump step passes flags including 0x10000if (func_8010FDF8(0x11029)) {sotn-decomp: a decompilation of Castlevania: Symphony of the Night · src/dra/6FDF8.c#L17-L44if (branchFlags & 0x10000) { … g_Player.padPressed & PAD_CROSS) { YAccel = FIX(22.0 / 128 / 5); } else { YAccel = FIX(22.0 / 128); } … PLAYER.velocityY += YAccel; … if (PLAYER.velocityY > FIX(7)) { PLAYER.velocityY = FIX(7);Checked by claude, 2026-10-21 — read the decompilation at the pinned commitThe lighter apex gravity also needs a flag (unk44 bit 5) clear, which a ceiling bump sets. A global counter above 40 divides the gravity by 4; the atlas hasn't traced what it is.
Cited by: Castlevania: Symphony of the Night, Gravity
In Symphony of the Night's jump a held direction sets Alucard's horizontal speed to 1.5 px/frame that way at once, turning him if needed, and every jumping frame first slows it by 1/16 px/frame toward 0, so a released d-pad fades the speed out; Castlevania's take-off fixes Simon's direction for the whole jump. symphony-of-the-night/air-control
About: Castlevania: Symphony of the Night Air control
Value
{
"speed": 1.5,
"decay": 0.0625
}src/dra/71830.c#L579-L603DecelerateX(FIX(1.0 / 16)); … walkResult = CheckMoveDirection(); if (walkResult != 0) { … SetSpeedX(FIX(1.5));sotn-decomp: a decompilation of Castlevania: Symphony of the Night · src/decelerate.h#L3-L15void DecelerateX(s32 amount) {sotn-decomp: a decompilation of Castlevania: Symphony of the Night · src/dra/6DF70.c#L101-L115s32 CheckMoveDirection(void) { … if (g_Player.padPressed & PAD_RIGHT) { PLAYER.facingLeft = 0;Castlevania (USA) (Rev 1) · 0x19411-0x1944B — Castlevania's take-off copying the held Left and Right into Simon's direction (castlevania/jump-start)Checked by claude, 2026-10-21 — read the decompilation at the pinned commit and the Castlevania range in the ROMThe falling half of the jump (step_s 1) runs the same check and speed. Not measured.
Cited by: Air control, Castlevania: Symphony of the Night