Mechanic · health & lives · platformer
Fall damage
A landing from high enough costs the character health or its life.
On this page
Fall damage charges a character for landing from a height. Prince of Persia sorts landings by speed into three bands, soft, a lost hit point, and death1, which its gravity turns into whole floors: 1 floor safe, 2 cost a hit point, 3 kill2.
- Stepped by speedPrince of Persia (1989). One floor is safe, two cost a hit point, and three kill.1,2
Games
| Game | Year | How | Note |
|---|---|---|---|
| Prince of Persia | 1989 | Stepped by speed | one floor is safe, two cost a hit point, and three kill |
Every claim about this mechanic, by game (5)
References
- ^ abA landing's cost goes by the kid's downward speed when he reaches a floor: under 22 (
OofVelocity) he lands softly; from 22 up to 33 (DeathVelocity) he loses 1 hit point and dies if it was his last; at 33 he loses 100, and dies. A guard who lands at 22 or more dies, and the shadow lands softly at any speed under 33.Codejmechner/Prince-of-Persia-Apple-IIHow we know
42DeathVelocity = 33 43OofVelocity = 22
01 POP Source/Source/CTRL.S lines 42–43 at 2524355 · upstream ↗ 184:notspikes 185 lda CharYVel 186 cmp #OofVelocity 187 bcc :softland ⋮ 189 cmp #DeathVelocity 190 bcc :medland ⋮ 192:hardland 193 lda #100 194 jsr decstr 195:hdland1 ⋮ 202:medland 203 lda CharID ⋮
01 POP Source/Source/CTRL.S lines 184–211 at 2524355 · upstream ↗ 691DECSTR 692 ldx CharID 693 bne :enemy ⋮ 695 cmp KidStrength 696 bcs killkid
01 POP Source/Source/MISC.S lines 691–696 at 2524355 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Checked by a second AI model, 2026-10-22.
- ^ abComputed from the fall sequence and gravity: a kid who steps off a ledge has fallen 30 px when the free fall starts at speed 15, and reaches the floor below at speed 21 after one floor (63 px), 30 after two, and 33 after three or more. One floor costs nothing, two cost a hit point, and three or more kill him. The count assumes
weightlessis clear and that a fall crossing to the screen below keeps its speed and its distance to the next floor, which the atlas hasn't read in the screen-change code.Codejmechner/Prince-of-Persia-Apple-IIrevisedHow we know
640stepfall ;from #8 (run-11) 641 db act,3 642 db chx,1,chy,3 ⋮ 647 db 102,chx,2,chy,6 648 db 103,chx,-1,chy,9 649 db 104,chy,12 ⋮ 652 db setfall,1,15
01 POP Source/Source/SEQTABLE.S lines 640–654 at 2524355 · upstream ↗ 661 jsr animchar ;Get next frame from sequence table ⋮ 663 jsr gravity ;Adjust Y-velocity 664 jsr addfall ;Add falling velocity
01 POP Source/Source/TOPCTRL.S lines 661–664 at 2524355 · upstream ↗ 1651ADDFALL 1652 lda CharYVel 1653 clc 1654 adc CharY 1655 sta CharY
01 POP Source/Source/SUBS.S lines 1651–1655 at 2524355 · upstream ↗ 1613TermVelocity = 33 1614AccelGravity = 3
01 POP Source/Source/SUBS.S lines 1613–1614 at 2524355 · upstream ↗ 36BlockHeight = 6301 POP Source/Source/TABLES.S line 36 at 2524355 · upstream ↗ 42DeathVelocity = 33 43OofVelocity = 22
01 POP Source/Source/CTRL.S lines 42–43 at 2524355 · upstream ↗ 76falling ⋮ 84 jmp fallon ;Hasn't reached floor yet ⋮ 95 bne hitflr ⋮ 97 inc CharBlockY ;Fall thru floor plane
01 POP Source/Source/CTRL.S lines 76–97 at 2524355 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-22.
Sources
Code
- Mechner, Jordan. 2024. “Prince of Persia Apple II source code (jmechner/Prince-of-Persia-Apple-II).” Commit 2524355. jmechner/Prince-of-Persia-Apple-II @ 2524355 · licence, all uses