On this page
  1. Related
  2. Games
  3. References
  4. Sources

A table mode gives the player a goal for a while, with its own targets. In Pokémon Pinball’s Catch ‘Em mode, Voltorb hits reveal a Pokémon on the billboard1, hits on it catch it2, and every species gets 2 minutes3.

  • TimedPokémon Pinball (1999). Catch 'Em mode: 2 minutes to reveal a Pokémon with 24 billboard tiles and hit it 4 times.1,2,3

Games

GameYearHowNote
Pokémon Pinball1999TimedCatch 'Em mode: 2 minutes to reveal a Pokémon with 24 billboard tiles and hit it 4 times
Every claim about this mechanic, by game (3)

References

  1. ^ abIn Catch 'Em mode on the Red field, each Voltorb hit flips 4 of the billboard's 24 tiles and scores 100,000, so 6 hits reveal the Pokémon from a blank board (computed). The Pokémon appears once all 24 are flipped and the ball is on the table's lower half.Codepret/pokepinballrevised
    How we know
    231HandleVoltorbCollision_CatchemMode: ; 0x20230 resolve hitting a voltorb in catch mode?
    232	ld a, [wNumberOfCatchModeTilesFlipped]
    233	cp $18
    ⋮
    251	ld a, [wNumberOfCatchModeTilesFlipped]
    252	add $4 ;then add 4 to FlippedCount, clamp to 24
    253	cp $18
    ⋮
    258	cp $18
    ⋮
    264	ld bc, OneHundredThousandPoints
    
    engine/pinball_game/catchem_mode/catchem_mode_red_field.asm lines 231–264 at 0a6f6dc · upstream ↗
    28Func_20041: ; 0x20041
    29	ld a, [wNumberOfCatchModeTilesFlipped]
    30	cp $18
    31	jr nz, .NotDone
    32	ld a, [wCurrentStage]
    33	bit 0, a
    34	jr z, .NotDone
    
    engine/pinball_game/catchem_mode/catchem_mode_red_field.asm lines 28–34 at 0a6f6dc · 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.

    In the claim ledger

  2. ^ abOnce the Pokémon appears, each registered hit scores 300,000 and steps a counter from 0 to 3, lighting part of the CATCH bar; a hit with the counter at 3 catches it, so the fourth registered hit catches. Mew counts a hit only when a separate byte of its own rolls over at 256, so it would need 1,024 hits from a zero byte (computed). When the timer runs out on Mew, the game marks Mew caught in the Pokédex anyway.Codepret/pokepinballrevised
    How we know
    97	ld a, [wBallHitWildMon]
    98	and a
    99	jp z, .BallDidntHitMon ;if no ball hit(?), jump
    ⋮
    106	ld a, [wCurrentCatchEmMon]
    107	cp MEW - 1
    108	jr nz, .notMew
    109	ld a, [wNumMewHits]
    110	inc a
    111	ld [wNumMewHits], a
    112	jr nz, .Not256MewHits
    113.notMew
    114	ld a, [wNumMonHits]
    ⋮
    
    engine/pinball_game/catchem_mode/catchem_mode_red_field.asm lines 96–148 at 0a6f6dc · upstream ↗
    99	ld a, [wBallHitWildMon]
    ⋮
    116	ld a, [wNumMonHits]
    117	cp $3
    
    engine/pinball_game/catchem_mode/catchem_mode_blue_field.asm lines 99–120 at 0a6f6dc · upstream ↗
    866Func_10611: ; 0x10611
    ⋮
    884Data_1062a:
    885	dw Data_10630
    886	dw Data_10638
    887	dw Data_10640
    
    engine/pinball_game/catchem_mode.asm lines 866–888 at 0a6f6dc · upstream ↗
    212CheckIfCatchemModeTimerExpired_RedField: ; 0x201f2
    ⋮
    221	; Automatically set Mew as caught, since you can't possibly catch it
    222	ld a, [wCurrentCatchEmMon]
    223	cp MEW - 1
    224	jr nz, .asm_2021b
    225	callba SetPokemonOwnedFlag
    226.asm_2021b
    
    engine/pinball_game/catchem_mode/catchem_mode_red_field.asm lines 212–227 at 0a6f6dc · 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.

    In the claim ledger

  3. ^ abEvery Pokémon gets the same 2 minutes to be caught: all 151 entries of CatchEmTimerData are 0 seconds and 2 minutes. Starting the mode also starts a 60-second ball saver that saves without limit, and the saver from before is restored when the mode ends.Codepret/pokepinballrevised
    How we know
    1CatchEmTimerData: ; 0x12a22
    2; Each 2-byte entry represents the total time you have to catch a Pokemon.
    3; They're all exactly 2 minutes, 0 seconds, but they can be changed to make
    4; different pokemon have different times, in order to add difficulty.
    5; First byte  = seconds value
    6; Second byte = minutes value
    7	db $00, $02  ; BULBASAUR
    ⋮
    157	db $00, $02  ; MEW
    
    data/catchem_timer_values.asm lines 1–157 at 0a6f6dc · upstream ↗
    123	ld hl, CatchEmTimerData ;contains how long each mon stays on screen, all are 2 minutes by default
    ⋮
    129	callba StartTimer
    130	callba InitBallSaverForCatchEmMode
    
    engine/pinball_game/catchem_mode.asm lines 118–131 at 0a6f6dc · upstream ↗
    1InitBallSaverForCatchEmMode: ; 0xdbd4
    ⋮
    10	ld a, $ff
    ⋮
    14	ld a, 60
    15	ld [wBallSaverTimerSeconds], a
    16	ld a, $ff
    17	ld [wNumTimesBallSavedTextWillDisplay], a
    18	ret
    ⋮
    20RestoreBallSaverAfterCatchEmMode: ; 0xdc00
    ⋮
    24	ld [wBallSaverTimerSeconds], a
    ⋮
    26	ld [wNumTimesBallSavedTextWillDisplay], a
    
    engine/pinball_game/ball_saver/ball_saver_catchem_mode.asm lines 1–32 at 0a6f6dc · 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.

    In the claim ledger

Sources

Code