Fish Tales

Partial

Williams1992WPCwilliams.fish-tales.1992

1 unresolved conflict

  • Legacy sources disagree on label: 'ROM Started' versus 'Flasher - Instant Multiball'. binding:pinmame.output.solenoid/19/None

Wire it up

what an authoring tool needs first
Bind this ROM
ft_l5

9 ROM sets resolve to this machine. Clones share the definition unless a hardware difference is listed.

Controller platform
pinmame.wpc

PinMAME already reports logical active state. Do not invert again in the table — normally-closed is a physical fact recorded per switch, not a runtime transform.

Displays

No display inventory recorded yet.

Address space
Switches
1–118 (58)
Solenoids
1–48 (32)
Lamps
11–88 (63)
GI
0–4 (4)
Cabinet & flipper inputs
112flipper.lower.right114flipper.lower.left116flipper.upper.right118flipper.upper.left1cabinet.coin.12cabinet.coin.23cabinet.coin.34cabinet.coin.413cabinet.start

Portable roles — the consuming engine maps them to its own input actions.

Coverage

Partial

Real evidence exists, but authoring requirements are still missing or in conflict. Verify before shipping a table.

Catalog Identity
observed
Address Enumeration
candidate
Semantic Naming
candidate
Physical Wiring
candidate
Mechanisms
unknown
Variant Coverage
candidate
Recreation Knowledge
candidate
Still missing · 13
IdentityController PlatformInput EnumerationInput SemanticsOutput EnumerationOutput SemanticsDisplay InventoryMechanism InventoryMechanism BehaviorPolarityVariant DifferencesRecreation NotesProvenance

Switches

The addresses PinMAME reports as closed. Numbers are the public API values, not matrix hardware pins.

58 addresses

Switch map

Column × row matrix — the address is column·row.

used unused
 
1
2
3
4
5
6
7
8
1
2
3
4
5
6
11
Hover or tap an address to identify it.

Outside the matrix1, 2, 3, 4, 5, 6, 7, 8 — dedicated, diagnostic or flipper-column addresses. See the table below.

58 shown
# Name Device ID Role Evidence
1
Coin Button 1
switch.coin-1
cabinet.coin.1
candidate
2
Coin Button 2
switch.coin-2
cabinet.coin.2
candidate
3
Coin Button 3
switch.coin-3
cabinet.coin.3
candidate
4
Coin Button 4
switch.coin-4
cabinet.coin.4
candidate
5
Cancel
switch.cancel
service.cancel
candidate
6
Down
switch.down
service.down
candidate
7
Up
switch.up
service.up
candidate
8
Enter
switch.enter
service.enter
candidate
11
Not Used
switch.not-used
candidate
12
Not Used
switch.not-used.12
candidate
13
Start Button
switch.start-button
cabinet.start
candidate
14
Plumb Bob Tilt
switch.plumb-bob-tilt
candidate
15
Outhole
switch.outhole
candidate
16
Trough 1 (Right/Release End)
switch.trough-1-right-release-end
candidate
17
Trough 2 (Center)
switch.trough-2-center
candidate
18
Trough 3 (Left)
switch.trough-3-left
candidate
21
Slam Tilt
switch.slam-tilt
candidate
22
Coin Door Closed
switch.coin-door-closed
candidate
23
Ticket Opto
switch.ticket-opto
candidate
24
Always Closed
switch.always-closed
candidate
25
Left Outlane
switch.left-outlane
candidate
26
Left Return Lane
switch.left-return-lane
candidate
27
Left Standup Target 1 (Bottom)
switch.left-standup-target-1-bottom
candidate
28
Left Standup Target 2 (Top)
switch.left-standup-target-2-top
candidate
31
Cast (Plunger Lane)
switch.cast-plunger-lane
candidate
32
Left Boat Exit
switch.left-boat-exit
candidate
33
Right Boat Exit
switch.right-boat-exit
candidate
34
Spinner
switch.spinner
candidate
35
Reel Entry
switch.reel-entry
candidate
36
Catapult
switch.catapult
candidate
37
Reel Opto 1
switch.reel-opto-1
candidate
38
Reel Opto 2
switch.reel-opto-2
candidate
41
Captive Ball Target
switch.captive-ball-target
candidate
42
Right Boat Entry
switch.right-boat-entry
candidate
43
Left Boat Entry
switch.left-boat-entry
candidate
44
LIE - E Trigger
switch.lie-e-trigger
candidate
45
LIE - I Trigger
switch.lie-i-trigger
candidate
46
LIE - L Trigger
switch.lie-l-trigger
candidate
47
Ball Popper (Caster Club VUK)
switch.ball-popper-caster-club-vuk
candidate
48
Drop Target
switch.drop-target
candidate
51
Left Jet Bumper
switch.left-jet-bumper
candidate
52
Center Jet Bumper
switch.center-jet-bumper
candidate
53
Right Jet Bumper
switch.right-jet-bumper
candidate
54
Right Standup Target 1 (Top)
switch.right-standup-target-1-top
candidate
55
Right Standup Target 2 (Bottom)
switch.right-standup-target-2-bottom
candidate
56
Ball Shooter Lane
switch.ball-shooter-lane
candidate
57
Left Slingshot
switch.left-slingshot
candidate
58
Right Slingshot
switch.right-slingshot
candidate
61
Extra Ball / Caster Club Target
switch.extra-ball-caster-club-target
candidate
62
Top Right Loop
switch.top-right-loop
candidate
63
Fish Finder (Top Eject Hole)
switch.fish-finder-top-eject-hole
candidate
64
Top Left Loop
switch.top-left-loop
candidate
65
Right Return Lane
switch.right-return-lane
candidate
66
Right Outlane
switch.right-outlane
candidate
112
Lower Right Flipper
switch.flipper-lower-right
flipper.lower.right
candidate
114
Lower Left Flipper
switch.flipper-lower-left
flipper.lower.left
candidate
116
Upper Right Flipper
switch.flipper-upper-right
flipper.upper.right
candidate
118
Upper Left Flipper
switch.flipper-upper-left
flipper.upper.left
candidate

Controlled devices

Everything the ROM can energise, grouped the way a table author builds it.

Coils, magnets & motors

32
32 shown
# Name Device ID Kind Evidence
1
Auto Plunger
device.auto-plunger Coil candidate
2
Catapult
device.catapult Coil candidate
3
VUK (Caster Club Ball Popper)
device.vuk-caster-club-ball-popper Coil candidate
4
Not Used
device.not-used Coil candidate
5
Not Used
device.not-used.5 Coil candidate
6
Gate
device.gate Coil candidate
7
Knocker
device.knocker Coil candidate
8
Topper Fish
device.topper-fish Coil candidate
9
Trough / Drain Kicker
device.trough-drain-kicker Coil candidate
10
Ball Release
device.ball-release Coil candidate
11
Fish Finder Eject
device.fish-finder-eject Coil candidate
12
Drop Target Up (Reset)
device.drop-target-up-reset Coil candidate
13
Drop Target Down
device.drop-target-down Coil candidate
14
Not Used
device.not-used.14 Coil candidate
15
Not Used
device.not-used.15 Coil candidate
16
Not Used
device.not-used.16 Coil candidate
17
Flasher - Jackpot
device.flasher-jackpot Coil candidate
18
Flasher - Super Jackpot
device.flasher-super-jackpot Coil candidate
19
ROM Started
device.game-on Coil candidate
20
Flasher - Light Extra Ball
device.flasher-light-extra-ball Coil candidate
21
Flasher - Rock the Boat
device.flasher-rock-the-boat Coil candidate
22
Flasher - Video Mode
device.flasher-video-mode Coil candidate
23
Flasher - Hold Bonus
device.flasher-hold-bonus Coil candidate
24
Not Used
device.not-used.24 Coil candidate
25
Flasher - Reel
device.flasher-reel Coil candidate
26
Flasher - Top Left
device.flasher-top-left Coil candidate
27
Flasher - Caster Club
device.flasher-caster-club Coil candidate
28
Reel Motor
device.reel-motor Motor candidate
29
Not Used
device.not-used.29 Coil candidate
30
Not Used
device.not-used.30 Coil candidate
46
Lower Right Flipper
device.lower-right-flipper Coil candidate
48
Lower Left Flipper
device.lower-left-flipper Coil candidate

Lamps

63

Lamp map

Column × row matrix — the address is column·row.

used unused
 
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
Hover or tap an address to identify it.
63 shown
# Name Device ID Evidence
11
Boat - Rock the Boat
lamp.boat-rock-the-boat candidate
12
Boat - Light Extra Ball
lamp.boat-light-extra-ball candidate
13
Boat - Instant Multiball
lamp.boat-instant-multiball candidate
14
Boat - Video Mode
lamp.boat-video-mode candidate
15
Boat - Hold Bonus
lamp.boat-hold-bonus candidate
16
LIE - L
lamp.lie-l candidate
17
LIE - I
lamp.lie-i candidate
18
LIE - E
lamp.lie-e candidate
21
Left Slingshot
lamp.left-slingshot candidate
22
Left Standup Arrow 1
lamp.left-standup-arrow-1 candidate
23
Left Standup Arrow 2
lamp.left-standup-arrow-2 candidate
24
Right Slingshot
lamp.right-slingshot candidate
25
Right Standup Arrow
lamp.right-standup-arrow candidate
26
Fishing Rod - Fish 1 (Bottom)
lamp.fishing-rod-fish-1-bottom candidate
27
Fishing Rod - Fish 2
lamp.fishing-rod-fish-2 candidate
28
Fishing Rod - Fish 3 (Top)
lamp.fishing-rod-fish-3-top candidate
31
Rewind Arrow
lamp.rewind-arrow candidate
32
Right Ramp Arrow 1
lamp.right-ramp-arrow-1 candidate
33
Right Ramp Arrow 2
lamp.right-ramp-arrow-2 candidate
34
Spinner Arrow
lamp.spinner-arrow candidate
35
Boat Ramp Left Arrow 1
lamp.boat-ramp-left-arrow-1 candidate
36
Boat Ramp Left Arrow 2
lamp.boat-ramp-left-arrow-2 candidate
37
Boat Ramp Right Arrow 1
lamp.boat-ramp-right-arrow-1 candidate
38
Boat Ramp Right Arrow 2
lamp.boat-ramp-right-arrow-2 candidate
41
Tale 1
lamp.tale-1 candidate
42
Tale 2
lamp.tale-2 candidate
43
Tale 3
lamp.tale-3 candidate
44
Tale 4
lamp.tale-4 candidate
45
Left Standup 2X
lamp.left-standup-2x candidate
46
Left Standup 3X
lamp.left-standup-3x candidate
47
Left Standup 4X
lamp.left-standup-4x candidate
48
Left Return Special
lamp.left-return-special candidate
51
Left Outlane Special
lamp.left-outlane-special candidate
52
Shoot Again (Extra Ball)
lamp.shoot-again-extra-ball candidate
53
Fish Finder Arrow
lamp.fish-finder-arrow candidate
54
Caster Club Arrow
lamp.caster-club-arrow candidate
55
Right Standup 2X
lamp.right-standup-2x candidate
56
Right Standup 3X
lamp.right-standup-3x candidate
57
Right Standup 4X
lamp.right-standup-4x candidate
58
Left Return Lane
lamp.left-return-lane candidate
61
Catch - C
lamp.catch-c candidate
62
Catch - A
lamp.catch-a candidate
63
Catch - T
lamp.catch-t candidate
64
Catch - C (2nd)
lamp.catch-c-2nd candidate
65
Catch - H
lamp.catch-h candidate
66
Caster Club 2X
lamp.caster-club-2x candidate
67
Caster Club 3X
lamp.caster-club-3x candidate
68
Right Return Lane / Right Return Special
lamp.right-return-lane-right-return-special candidate
71
Stretch the Truth - S
lamp.stretch-the-truth-s candidate
72
Stretch the Truth - T
lamp.stretch-the-truth-t candidate
73
Stretch the Truth - R
lamp.stretch-the-truth-r candidate
74
Stretch the Truth - E
lamp.stretch-the-truth-e candidate
75
Stretch the Truth - T (2nd)
lamp.stretch-the-truth-t-2nd candidate
76
Stretch the Truth - C
lamp.stretch-the-truth-c candidate
77
Stretch the Truth - H
lamp.stretch-the-truth-h candidate
78
Extra Ball
lamp.extra-ball candidate
81
Reel 1 (Caster's Club)
lamp.reel-1-caster-s-club candidate
82
Reel 2 (Rock the Boat)
lamp.reel-2-rock-the-boat candidate
83
Reel 3 (Monster Fish)
lamp.reel-3-monster-fish candidate
84
Reel 4 (Feeding Frenzy)
lamp.reel-4-feeding-frenzy candidate
85
Reel 5 (Lock)
lamp.reel-5-lock candidate
86
Ball Lock Indicator
lamp.ball-lock-indicator candidate
88
Start Button
lamp.start-button candidate

General illumination

4
4 shown
# Name Device ID Evidence
0
Backglass GI
gi.backglass-gi candidate
1
Topper GI
gi.topper-gi candidate
2
Top GI (Playfield Upper)
gi.top-gi-playfield-upper candidate
4
Bottom GI (Playfield Lower)
gi.bottom-gi-playfield-lower candidate

Recreation notes

Working knowledge that has no schema field yet — edition differences, tuning values, pitfalls.

Coverage
partial - source-derived recreation knowledge requiring validation

Overview

Legacy evidence identifies this candidate as Williams (1992). The information below is preserved for recreation work but is not automatically treated as validated physical-machine fact.

Playfield devices

Switch, lamp/GI, and controlled-device candidates are in the adjacent machine definition. Source-specific implementation notes are retained below.

Custom mechanisms

No custom mechanism conclusion has been validated. Manuals, schematics, PinMAME source, and gameplay evidence still need to be checked.

Ball-state transitions

Ball paths, trough ordering, locks, kickouts, and causal transitions have not yet been normalized. Relevant source notes follow under Evidence notes.

Controller interactions

Controller callbacks and bindings are candidate evidence only until reconciled against PinMAME and physical documentation.

Service and setup information

Unknown; locate operator/service documentation.

Timing and tuning observations

Source timing values may describe a particular VPX implementation rather than physical hardware and require review.

Recreation guidance

Do not treat this partial definition as a complete authoring specification. Resolve every coverage requirement and conflict before promotion.

Evidence notes

  • platforms/wpc.json#/coils/1: Unbound legacy outputs record c_flipper_lower_right was retained as a migration note only.
  • platforms/wpc.json#/coils/2: Unbound legacy outputs record c_flipper_lower_left was retained as a migration note only.
  • platforms/wpc.json#/coils/3: Unbound legacy outputs record c_flipper_upper_right was retained as a migration note only.
  • platforms/wpc.json#/coils/4: Unbound legacy outputs record c_flipper_upper_left was retained as a migration note only.
  • games/ft.json#/switches/3._note: vpmNudge.TiltSwitch = 14
  • games/ft.json#/switches/5._note: Ball release end; SolRelease kicks from sw16
  • games/ft.json#/switches/9._note: Controller.Switch(22) = 1 on init
  • games/ft.json#/switches/11._note: Controller.Switch(24) = 1 on init
  • games/ft.json#/switches/12._inferred_type: rollover
  • games/ft.json#/switches/13._inferred_type: rollover
  • games/ft.json#/switches/14._inferred_type: standup_target
  • games/ft.json#/switches/15._inferred_type: standup_target
  • games/ft.json#/switches/16._note: Mapped to PlungerKey; Controller.Switch(31) toggled on KeyDown/KeyUp
  • games/ft.json#/switches/17._inferred_type: rollover
  • games/ft.json#/switches/18._inferred_type: rollover
  • games/ft.json#/switches/19._inferred_type: spinner
  • games/ft.json#/switches/20._inferred_type: rollover
  • games/ft.json#/switches/20._note: Trigger at reel entry; PulseSw 35
  • games/ft.json#/switches/21._inferred_type: saucer
  • games/ft.json#/switches/21._note: Set on Catapult_hit, cleared by SolCatapult or timer
  • games/ft.json#/switches/22._note: Driven by VBS ReelPosTable; not a physical switch in VPX
  • games/ft.json#/switches/23._note: Driven by VBS ReelPosTable; not a physical switch in VPX
  • games/ft.json#/switches/24._inferred_type: standup_target
  • games/ft.json#/switches/25._inferred_type: rollover
  • games/ft.json#/switches/25._note: VPX object sw42a maps to PulseSw 42
  • games/ft.json#/switches/26._inferred_type: rollover
  • games/ft.json#/switches/26._note: VPX object sw43a maps to PulseSw 43
  • games/ft.json#/switches/27._inferred_type: rollover
  • games/ft.json#/switches/28._inferred_type: rollover
  • games/ft.json#/switches/29._inferred_type: rollover
  • games/ft.json#/switches/30._inferred_type: saucer
  • games/ft.json#/switches/30._note: VUK (Vertical Up Kicker) for Caster Club
  • games/ft.json#/switches/31._inferred_type: drop_target
  • games/ft.json#/switches/32._inferred_type: bumper
  • games/ft.json#/switches/33._inferred_type: bumper
  • games/ft.json#/switches/34._inferred_type: bumper
  • games/ft.json#/switches/35._inferred_type: standup_target
  • games/ft.json#/switches/36._inferred_type: standup_target
  • games/ft.json#/switches/37._inferred_type: rollover
  • games/ft.json#/switches/37._note: Held switch (Controller.Switch set/cleared on Hit/UnHit)
  • games/ft.json#/switches/38._inferred_type: slingshot
  • games/ft.json#/switches/39._inferred_type: slingshot
  • games/ft.json#/switches/40._inferred_type: standup_target
  • games/ft.json#/switches/41._inferred_type: rollover
  • games/ft.json#/switches/42._inferred_type: saucer
  • games/ft.json#/switches/42._note: Fish Finder saucer; SolFF controls eject
  • games/ft.json#/switches/43._inferred_type: rollover
  • games/ft.json#/switches/44._inferred_type: rollover
  • games/ft.json#/switches/45._inferred_type: rollover
  • games/ft.json#/coils/0._vbscript_callback: AutoPlunger
  • games/ft.json#/coils/0._inferred_type: kicker
  • games/ft.json#/coils/1._vbscript_callback: SolCatapult
  • games/ft.json#/coils/1._inferred_type: kicker
  • games/ft.json#/coils/2._vbscript_callback: SolVUK
  • games/ft.json#/coils/2._inferred_type: kicker
  • games/ft.json#/coils/5._vbscript_callback: SolGate
  • games/ft.json#/coils/5._inferred_type: diverter
  • games/ft.json#/coils/6._vbscript_callback: SolKnocker
  • games/ft.json#/coils/6._inferred_type: knocker
  • games/ft.json#/coils/7._vbscript_callback: TopperFish
  • games/ft.json#/coils/7._inferred_type: toy
  • games/ft.json#/coils/7._note: VR Topper fish animation; not a physical solenoid on playfield
  • games/ft.json#/coils/8._vbscript_callback: SolDrain
  • games/ft.json#/coils/8._inferred_type: kicker
  • games/ft.json#/coils/9._vbscript_callback: SolRelease
  • games/ft.json#/coils/9._inferred_type: kicker
  • games/ft.json#/coils/10._vbscript_callback: SolFF
  • games/ft.json#/coils/10._inferred_type: kicker
  • games/ft.json#/coils/11._vbscript_callback: SolDTUp
  • games/ft.json#/coils/11._inferred_type: drop_target_reset
  • games/ft.json#/coils/12._vbscript_callback: SolDTDown
  • games/ft.json#/coils/12._inferred_type: drop_target_trip
  • games/ft.json#/coils/16._vbscript_callback: Flash17
  • games/ft.json#/coils/16._inferred_type: flasher
  • games/ft.json#/coils/16._note: PWM via SolModCallBack; also f17b
  • games/ft.json#/coils/17._vbscript_callback: Flash18
  • games/ft.json#/coils/17._inferred_type: flasher
  • games/ft.json#/coils/17._note: PWM via SolModCallBack; also f18b
  • games/ft.json#/coils/18._vbscript_callback: Flash19
  • games/ft.json#/coils/18._inferred_type: flasher
  • games/ft.json#/coils/18._note: PWM via SolModCallBack
  • games/ft.json#/coils/19._vbscript_callback: Flash20
  • games/ft.json#/coils/19._inferred_type: flasher
  • games/ft.json#/coils/19._note: PWM via SolModCallBack
  • games/ft.json#/coils/20._vbscript_callback: Flash21
  • games/ft.json#/coils/20._inferred_type: flasher
  • games/ft.json#/coils/20._note: PWM via SolModCallBack
  • games/ft.json#/coils/21._vbscript_callback: Flash22
  • games/ft.json#/coils/21._inferred_type: flasher
  • games/ft.json#/coils/21._note: PWM via SolModCallBack
  • games/ft.json#/coils/22._vbscript_callback: Flash23
  • games/ft.json#/coils/22._inferred_type: flasher
  • games/ft.json#/coils/22._note: PWM via SolModCallBack
  • games/ft.json#/coils/23._note: No SolCallback(24) assigned
  • games/ft.json#/coils/24._vbscript_callback: Flash25
  • games/ft.json#/coils/24._inferred_type: flasher
  • games/ft.json#/coils/24._note: PWM via SolModCallBack
  • games/ft.json#/coils/25._vbscript_callback: Flash26
  • games/ft.json#/coils/25._inferred_type: flasher
  • games/ft.json#/coils/25._note: PWM via SolModCallBack
  • games/ft.json#/coils/26._vbscript_callback: Flash27
  • games/ft.json#/coils/26._inferred_type: flasher
  • games/ft.json#/coils/26._note: PWM via SolModCallBack
  • games/ft.json#/coils/27._vbscript_callback: ReelMotor
  • games/ft.json#/coils/27._inferred_type: motor
  • games/ft.json#/coils/27._note: Drives fishing reel mechanism; controls reel rotation and ball lock/release positions via ReelPosTable
  • games/ft.json#/coils/30._vbscript_callback: SolRFlipper
  • games/ft.json#/coils/30._inferred_type: flipper
  • games/ft.json#/coils/30._note: Framework constant sLRFlipper=46 from core.vbs
  • games/ft.json#/coils/31._vbscript_callback: SolLFlipper
  • games/ft.json#/coils/31._inferred_type: flipper
  • games/ft.json#/coils/31._note: Framework constant sLLFlipper=48 from core.vbs; NoUpperLeftFlipper and NoUpperRightFlipper called
  • games/ft.json#/lamps/0._vlm_array: BL_Inserts_l11
  • games/ft.json#/lamps/1._vlm_array: BL_Inserts_l12
  • games/ft.json#/lamps/2._vlm_array: BL_Inserts_l13
  • games/ft.json#/lamps/3._vlm_array: BL_Inserts_l14
  • games/ft.json#/lamps/4._vlm_array: BL_Inserts_l15
  • games/ft.json#/lamps/5._vlm_array: BL_Inserts_l16
  • games/ft.json#/lamps/6._vlm_array: BL_Inserts_l17
  • games/ft.json#/lamps/7._vlm_array: BL_Inserts_l18
  • games/ft.json#/lamps/8._vlm_array: BL_Inserts_l21
  • games/ft.json#/lamps/9._vlm_array: BL_Inserts_l22
  • games/ft.json#/lamps/10._vlm_array: BL_Inserts_l23
  • games/ft.json#/lamps/11._vlm_array: BL_Inserts_l24
  • games/ft.json#/lamps/12._vlm_array: BL_Inserts_l25
  • games/ft.json#/lamps/13._vlm_array: BL_Inserts_l26
  • games/ft.json#/lamps/14._vlm_array: BL_Inserts_l27
  • games/ft.json#/lamps/15._vlm_array: BL_Inserts_l28
  • games/ft.json#/lamps/16._vlm_array: BL_Inserts_l31
  • games/ft.json#/lamps/17._vlm_array: BL_Inserts_l32
  • games/ft.json#/lamps/18._vlm_array: BL_Inserts_l33
  • games/ft.json#/lamps/19._vlm_array: BL_Inserts_l34
  • games/ft.json#/lamps/20._vlm_array: BL_Inserts_l35
  • games/ft.json#/lamps/21._vlm_array: BL_Inserts_l36
  • games/ft.json#/lamps/22._vlm_array: BL_Inserts_l37
  • games/ft.json#/lamps/23._vlm_array: BL_Inserts_l38
  • games/ft.json#/lamps/24._vlm_array: BL_Inserts_l41
  • games/ft.json#/lamps/25._vlm_array: BL_Inserts_l42
  • games/ft.json#/lamps/26._vlm_array: BL_Inserts_l43
  • games/ft.json#/lamps/27._vlm_array: BL_Inserts_l44
  • games/ft.json#/lamps/28._vlm_array: BL_Inserts_l45
  • games/ft.json#/lamps/29._vlm_array: BL_Inserts_l46
  • games/ft.json#/lamps/30._vlm_array: BL_Inserts_l47
  • games/ft.json#/lamps/31._vlm_array: BL_Inserts_l48
  • games/ft.json#/lamps/32._vlm_array: BL_Inserts_l51
  • games/ft.json#/lamps/33._vlm_array: BL_Inserts_l52
  • games/ft.json#/lamps/34._vlm_array: BL_Inserts_l53
  • games/ft.json#/lamps/35._vlm_array: BL_Inserts_l54
  • games/ft.json#/lamps/36._vlm_array: BL_Inserts_l55
  • games/ft.json#/lamps/37._vlm_array: BL_Inserts_l56
  • games/ft.json#/lamps/38._vlm_array: BL_Inserts_l57
  • games/ft.json#/lamps/39._vlm_array: BL_Inserts_l58
  • games/ft.json#/lamps/40._vlm_array: BL_Inserts_l61
  • games/ft.json#/lamps/41._vlm_array: BL_Inserts_l62
  • games/ft.json#/lamps/42._vlm_array: BL_Inserts_l63
  • games/ft.json#/lamps/43._vlm_array: BL_Inserts_l64
  • games/ft.json#/lamps/44._vlm_array: BL_Inserts_l65
  • games/ft.json#/lamps/45._vlm_array: BL_Inserts_l66
  • games/ft.json#/lamps/46._vlm_array: BL_Inserts_l67
  • games/ft.json#/lamps/47._vlm_array: BL_Inserts_l68
  • games/ft.json#/lamps/48._vlm_array: BL_Inserts_l71
  • games/ft.json#/lamps/49._vlm_array: BL_Inserts_l72
  • games/ft.json#/lamps/50._vlm_array: BL_Inserts_l73
  • games/ft.json#/lamps/51._vlm_array: BL_Inserts_l74
  • games/ft.json#/lamps/52._vlm_array: BL_Inserts_l75
  • games/ft.json#/lamps/53._vlm_array: BL_Inserts_l76
  • games/ft.json#/lamps/54._vlm_array: BL_Inserts_l77
  • games/ft.json#/lamps/55._vlm_array: BL_Inserts_l78
  • games/ft.json#/lamps/56._vlm_array: BL_Inserts_l81
  • games/ft.json#/lamps/57._vlm_array: BL_Inserts_l82
  • games/ft.json#/lamps/58._vlm_array: BL_Inserts_l83
  • games/ft.json#/lamps/59._vlm_array: BL_Inserts_l84
  • games/ft.json#/lamps/60._vlm_array: BL_Inserts_l85
  • games/ft.json#/lamps/61._vlm_array: BL_Inserts_l86
  • games/ft.json#/lamps/62: Unbound legacy outputs record 48a was retained as a migration note only.
  • games/ft.json#/lamps/62._vlm_array: BL_Inserts_l48a
  • games/ft.json#/lamps/62._note: VPX-only lamp; split from L48 for better lighting geometry. Not in original WPC lamp matrix.
  • games/ft.json#/lamps/63._note: Under apron; added to AllLamps collection. Drives Primary_StartButton and StartButton2 lighting in VR
  • games/ft.json#/gi_strings/2._note: Also controls VLM arrays: BL_GITop, BL_GISplit_gi002, BL_GISplit_gi006, BL_GISplit_gi009, BL_GISplit_gi011, BL_GISplit_gitop020
  • games/ft.json#/gi_strings/3._note: Also controls VLM array BL_GIBottom; affects ball color based on room brightness
  • games/ft.json#/_source/confidence_notes: High confidence on coils/SolCallbacks, switches, and lamp matrix. No Const sw* definitions in table script - uses raw switch numbers (Controller.Switch(N), VPMTimer.PulseSw N) and raw SolCallback(N) indices. Trough is custom-implemented (not bsTrough): sw16/sw17/sw18 are trough kicker switches, sw15 (Drain_Hit) is outhole. Reel mechanism uses switches 37/38 driven by position table in VBS (not physical optos). sLLFlipper/sLRFlipper are framework constants from WPC.VBS (typically 46/34 for WPC). Flashers 17-23,25-27 use SolModCallBack for PWM dimming. Lamp numbers derived from VLM BL_Inserts_l## arrays and cross-referenced with Fish Tales manual lamp matrix. L48a is a VPX-only extra lamp (split from L48 for better lighting). L88 is Start Button lamp (added to AllLamps collection). IPDB ID: 861.

Unresolved questions

  • Is the I/O enumeration complete for every supported physical/controller variant?
  • Which inferred VPX behaviors reflect real hardware, and which are table-script conveniences?
  • Are all mechanism home states, sensors, motion constraints, and ball interactions documented?

Sources

  • legacy.game.ft: games/ft.json at the pinned migration revision.

ROM sets

Every driver that resolves to this physical machine.

ROM set Description Year Parent Hardware
ft_d6Fish Tales (D-6 Text size patch LED Ghost Fix) 2015ft_l5
ft_p5Fish Tales (P-5 LED Ghost Fix) 1992ft_l5
ft_p4Fish Tales (P-4 Prototype) 1992ft_l5
ft_p2Fish Tales (P-2 Prototype) 1992ft_l5
ft_l5pFish Tales (L-5 Text size patch) 1992ft_l5
ft_l5Fish Tales (L-5) 1992
ft_l4Fish Tales (L-4) 1992ft_l5
ft_l3Fish Tales (L-3) 1992ft_l5

Parent set: ft_l5 — clones share this definition unless a hardware difference is noted.

Evidence

Every claim above traces to one of these. When they disagree: a known-working VPX script wins on controller addresses and causality, the manual wins on wiring and construction, pinned PinMAME wins on emulator routing and display layout.

  • Legacy definition

    legacy.game.ft

    games/ft.json; origin=vbscript-parser

    by
    pinmame-game-defs contributors
    rev
    4ea106d08072
  • Legacy definition

    legacy.platform.wpc

    platforms/wpc.json

    by
    pinmame-game-defs contributors
    rev
    4ea106d08072
  • PinMAME catalog

    BSD-3-Clause

    pinmame.catalog.4ec52ff0ac13

    PinmameGetGames

    by
    PinMAME contributors
    rev
    4ec52ff0ac13

Something wrong or missing?

This definition still has 13 unmet requirements, listed under Coverage above. Fixes belong in the definition itself — editing on GitHub forks it for you and opens the pull request.

Cite a source for anything you change — a manual page, a line in a working VPX script, PinMAME source, or a reading from the machine's own service menu. Claims without provenance cannot be validated.

Same platform