Mechanic · input & timing · falling-block puzzle
Lock delay
The time a falling-block piece may rest on the stack before it locks in place.
On this page
Lock delay is the time a piece can sit on the stack and still move before it locks. The games read so far have none of their own: when gravity can’t move the piece down, it locks then and there. NES Tetris1 and Dr. Mario2 work this way, so a resting piece gets one gravity interval, which shrinks as the game speeds up.
- NoneTetris (NES) (1989). A piece that can't fall locks at its next gravity step.1Dr. Mario (NES) (1990). A pill that can't fall locks at its next gravity step.2
Games
Every claim about this mechanic, by game (1)
References
- ^ ab
fallTimercounts frames, and when it reaches the level's value the piece moves down a row; if that row is blocked, the piece locks where it is, so a resting piece locks after one gravity interval.CodeCelestialAmber/TetrisNESDisasm · Birken, "Applying AI to Nintendo Tetris"How we know
1441gameModeState_updateCountersAndNonPlayerState: ⋮ 1448 inc player1_fallTimer
main.asm lines 1441–1449 at 94581c0 · upstream ↗ 1570@drop: lda #$00 1571 sta fallTimer 1572 lda tetriminoY 1573 sta originalY 1574 inc tetriminoY 1575 jsr isPositionValid 1576 beq @ret 1577 lda originalY 1578 sta tetriminoY 1579 lda #$02 1580 sta playState ⋮ 1592 lda fallTimer ⋮
main.asm lines 1570–1594 at 94581c0 · upstream ↗ This means that the lock delay—the maximum number of frames that a Tetrimino waits while supported before locking—is equal to the drop delay.
Dropping Tetriminos · archived copy ↗ Checked against the evidence by its author, an AI model, 2026-10-20.
Checked by a second AI model, 2026-10-21.
- ^ abWhen a drop is blocked, the pill moves back up and is placed in the bottle at once, so a pill resting on the stack locks at its next gravity step.CodeNostaljipi/dr-mario-disassembly
How we know
257 jsr pillMoveValidation ;Checks if move is valid, returns zero if valid 258 bne @pillHasLanded ;If can't move down anymore, the pill has landed ⋮ 263 inc currentP_fallingPillY ;Returns Y to its previous value because it couldn't be lowered ⋮ 266 jsr confirmPlacement ;"Print" (or "cement") the pill in position
prg/drmario_prg_game_logic.asm lines 257–266 at ecb9899 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
Sources
Code
- (CelestialAmber), Amber Brault and contributors. 2024. “TetrisNESDisasm: a disassembly of Tetris (NES).” Commit 94581c0. CelestialAmber/TetrisNESDisasm @ 94581c0 · licence, all uses
- Nostaljipi. 2021. “Dr. Mario (NES) Disassembly.” Commit ecb9899. Nostaljipi/dr-mario-disassembly @ ecb9899 · licence, all uses
Secondary
- Birken, Michael. 2014. “Applying Artificial Intelligence to Nintendo Tetris.” original · archived · licence, all uses