Mechanic · structure & scoring · falling-block puzzle
Garbage
Blocks a competitive falling-block game sends to the opponent's board when a player clears well.
On this page
Garbage is what a player’s clears send to the opponent in a two-player falling-block game. In Dr. Mario a pill that makes two or more matches drops that many loose halves, up to four, on the other bottle1.
- Dropped on topDr. Mario (NES) (1990). Two or more matches from one pill drop 2 to 4 loose halves on the other bottle.1
Games
| Game | Year | How | Note |
|---|---|---|---|
| Dr. Mario (NES) | 1990 | Dropped on top | two or more matches from one pill drop 2 to 4 loose halves on the other bottle |
References
- ^ abIn a two-player game, 2 or more matches from one pill send that many half-pills, at most 4, in the colors of the matches, to the other player's bottle, where they land at its top row in a frame-dependent column.CodeNostaljipi/dr-mario-disassembly
How we know
2875 lda currentP_comboCounter 2876 cmp #attackSize_min ;Threshold for an attack ⋮ 2879 adc currentP_attackSize ;Otherwise, add combo counter value to current attack size
prg/drmario_prg_game_logic.asm lines 2874–2879 at ecb9899 · upstream ↗ 1550 cmp #attackSize_max+1 ;Any combo that goes over 4 does not register any more attacks ⋮ 1554 lda startingColor ;Latest match color is used to send opponent 1555 sta currentP_attackColors,X
prg/drmario_prg_game_logic.asm lines 1550–1555 at ecb9899 · upstream ↗ 2902 lda p1_attackSize,X 2903 cmp #attackSize_min 2904 bcc @noAttack ;If attack size below minimum, no attack ⋮ 2907 lda frameCounter 2908 and #attackSize_2_pos ;Position of attack is based on frame
prg/drmario_prg_game_logic.asm lines 2902–2908 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.
- ^After a lock, NES Tetris checks four rows, from two above the piece's row down; a row with none of its 10 cells empty is complete, and every row above it moves down one row whole while the top row empties.CodeCelestialAmber/TetrisNESDisasmrevised
How we know
3195 lda tetriminoY ⋮ 3197 sbc #$02 ⋮ 3202 adc lineIndex ⋮ 3212 ldx #$0A 3213@checkIfRowComplete: ⋮ 3215 cmp #tileEmpty 3216 beq @rowNotComplete ⋮ 3218 dex ⋮ 3222 inc completedLines
main.asm lines 3195–3222 at 94581c0 · upstream ↗ 3228@movePlayfieldDownOneRow: ⋮ 3230 ldx #$0A ⋮ 3232 sta (playfieldAddr),y ⋮ 3237 bne @movePlayfieldDownOneRow 3238 lda #tileEmpty ⋮ 3240@clearRowTopRow: 3241 sta (playfieldAddr),y
main.asm lines 3228–3244 at 94581c0 · upstream ↗ 3254 inc lineIndex 3255 lda lineIndex 3256 cmp #$04
main.asm lines 3253–3256 at 94581c0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
Sources
Code
- Nostaljipi. 2021. “Dr. Mario (NES) Disassembly.” Commit ecb9899. Nostaljipi/dr-mario-disassembly @ ecb9899 · licence, all uses
- (CelestialAmber), Amber Brault and contributors. 2024. “TetrisNESDisasm: a disassembly of Tetris (NES).” Commit 94581c0. CelestialAmber/TetrisNESDisasm @ 94581c0 · licence, all uses