Three-ball trough and outhole
mechanism.three-ball-trough
Retained VPW initialization is bsTrough.InitSw 18,17,16,15 with Balls=3; BallRelease kicks at 90 degrees and strength 8. The script does not prove a four-ball trough.
20 ROM sets resolve to this machine. Clones share the definition unless a hardware difference is listed.
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.
Portable roles — the consuming engine maps them to its own input actions.
Where each address physically sits. The switch and lamp maps below show the electrical layout — this shows the same devices as the player sees them.
168 placements · 21 stacked · normalised player view · outline is nominal
Hover a marker to identify it, or click to keep it selected. Numbered markers are several devices in one spot — clicking lists them.
Not on the playfield20 unused, 19 cabinet or service, 18 virtual, 8 dip switch, 2 internal nonvisual, 1 constant — declared rather than missing.
Real evidence exists, but authoring requirements are still missing or in conflict. Verify before shipping a table.
The addresses PinMAME reports as closed. Numbers are the public API values, not matrix hardware pins.
Column × row matrix — the address is column·row.
Outside the matrix1, 2, 3, 4, 5, 6, 7, 8 — dedicated, diagnostic or flipper-column addresses. See the table below.
| # | Name | Device ID | Role | Evidence |
|---|---|---|---|---|
| 1 | Coin Chute 1 | switch.cabinet-1 | cabinet.coin.1 | validated |
| 2 | Coin Chute 2 | switch.cabinet-2 | cabinet.coin.2 | validated |
| 3 | Coin Chute 3 | switch.cabinet-3 | cabinet.coin.3 | validated |
| 4 | Coin Chute 4opt | switch.cabinet-4 | cabinet.coin.4 | validated |
| 5 | Coin-Door Cancel | switch.cabinet-5 | service.cancel | validated |
| 6 | Coin-Door Down | switch.cabinet-6 | service.down | validated |
| 7 | Coin-Door Up | switch.cabinet-7 | service.up | validated |
| 8 | Coin-Door Enter | switch.cabinet-8 | service.enter | validated |
| 11 | Right Flipper Microswitch | switch.matrix-11 | flipper.lower.right.switch | validated |
| 12 | Left Flipper Microswitch | switch.matrix-12 | flipper.lower.left.switch | validated |
| 13 | Start Button Microswitch | switch.matrix-13 | cabinet.start | validated |
| 14 | Plumb Bob Tilt Microswitch | switch.matrix-14 | cabinet.tilt | validated |
| 15 | Trough Left Microswitch | switch.matrix-15 | internal.trough | validated |
| 16 | Trough Center Microswitch | switch.matrix-16 | internal.trough | validated |
| 17 | Trough Right Microswitch | switch.matrix-17 | internal.trough | validated |
| 18 | Outhole Microswitch | switch.matrix-18 | validated | |
| 21 | Slam TiltNC Microswitch | switch.matrix-21 | validated | |
| 22 | Coin Door ClosedNC Microswitch | switch.matrix-22 | cabinet.coin-door | validated |
| 23 | Ticket Dispenser Microswitch | switch.matrix-23 | service.ticket | validated |
| 25 | Left Outlane Microswitch | switch.matrix-25 | validated | |
| 26 | Left Return Lane Microswitch | switch.matrix-26 | validated | |
| 27 | Right Return Lane Microswitch | switch.matrix-27 | validated | |
| 28 | Right Outlane Microswitch | switch.matrix-28 | validated | |
| 31 | Gun Loaded Microswitch | switch.matrix-31 | validated | |
| 32 | Gun Mark Microswitch | switch.matrix-32 | validated | |
| 33 | Gun Home Microswitch | switch.matrix-33 | validated | |
| 34 | Grip Trigger Microswitch | switch.matrix-34 | cabinet.grip-trigger | validated |
| 35 | Unused matrix position 35 | switch.matrix-35 | validated | |
| 36 | Mid Left Standup Target Microswitch | switch.matrix-36 | validated | |
| 37 | Mid Center Standup Target Microswitch | switch.matrix-37 | validated | |
| 38 | Mid Right Standup Target Microswitch | switch.matrix-38 | validated | |
| 41 | Left Jet Microswitch | switch.matrix-41 | validated | |
| 42 | Right Jet Microswitch | switch.matrix-42 | validated | |
| 43 | Bottom Jet Microswitch | switch.matrix-43 | validated | |
| 44 | Left Sling Microswitch | switch.matrix-44 | validated | |
| 45 | Right Sling Microswitch | switch.matrix-45 | validated | |
| 46 | Top Right Standup Target Microswitch | switch.matrix-46 | validated | |
| 47 | Mid Right Standup Target Microswitch | switch.matrix-47 | validated | |
| 48 | Bottom Right Standup Target Microswitch | switch.matrix-48 | validated | |
| 51 | Left Lock Microswitch | switch.matrix-51 | validated | |
| 52 | Unused matrix position 52 | switch.matrix-52 | validated | |
| 53 | Low Escape Route Microswitch | switch.matrix-53 | validated | |
| 54 | High Escape Route Microswitch | switch.matrix-54 | validated | |
| 55 | Top Lock Microswitch | switch.matrix-55 | validated | |
| 56 | Top Lane Left Microswitch | switch.matrix-56 | validated | |
| 57 | Top Lane Center Microswitch | switch.matrix-57 | validated | |
| 58 | Top Lane Right Microswitch | switch.matrix-58 | validated | |
| 61 | Left Ramp Entry Microswitch | switch.matrix-61 | validated | |
| 62 | Left Ramp Made Microswitch | switch.matrix-62 | validated | |
| 63 | Right Ramp Entry Microswitch | switch.matrix-63 | validated | |
| 64 | Right Ramp Made Microswitch | switch.matrix-64 | validated | |
| 65 | Low Chase Loop Microswitch | switch.matrix-65 | validated | |
| 66 | High Chase Loop Microswitch | switch.matrix-66 | validated | |
| 67 | Unused matrix position 67 | switch.matrix-67 | validated | |
| 68 | Unused matrix position 68 | switch.matrix-68 | validated | |
| 71 | Target 1 High Microswitch | switch.matrix-71 | validated | |
| 72 | Target 2 Microswitch | switch.matrix-72 | validated | |
| 73 | Target 3 Microswitch | switch.matrix-73 | validated | |
| 74 | Target 4 Microswitch | switch.matrix-74 | validated | |
| 75 | Target 5 Low Microswitch | switch.matrix-75 | validated | |
| 76 | Ball Popper Microswitch | switch.matrix-76 | validated | |
| 77 | Drop Target Microswitch | switch.matrix-77 | validated | |
| 78 | Shooter Microswitch | switch.matrix-78 | validated | |
| 81 | Unused matrix position 81 | switch.matrix-81 | validated | |
| 82 | Unused matrix position 82 | switch.matrix-82 | validated | |
| 83 | Unused matrix position 83 | switch.matrix-83 | validated | |
| 84 | Unused matrix position 84 | switch.matrix-84 | validated | |
| 85 | Unused matrix position 85 | switch.matrix-85 | validated | |
| 86 | Unused matrix position 86 | switch.matrix-86 | validated | |
| 87 | Unused matrix position 87 | switch.matrix-87 | validated | |
| 88 | Unused matrix position 88 | switch.matrix-88 | validated | |
| 111 | Lower Right Flipper Buttonopt Leaf | switch.generic-111 | flipper.lower.right.button | validated |
| 112 | Lower Right Flipper EOSNCopt Leaf | switch.generic-112 | internal.flipper.lower.right.eos | validated |
| 113 | Lower Left Flipper Buttonopt Leaf | switch.generic-113 | flipper.lower.left.button | validated |
| 114 | Lower Left Flipper EOSNCopt Leaf | switch.generic-114 | internal.flipper.lower.left.eos | validated |
| 115 | Unused Generic Flipper Input 115 | switch.generic-115 | internal.unused.flipper | validated |
| 116 | Unused Generic Flipper Input 116 | switch.generic-116 | internal.unused.flipper | validated |
| 117 | Unused Generic Flipper Input 117 | switch.generic-117 | internal.unused.flipper | validated |
| 118 | Unused Generic Flipper Input 118 | switch.generic-118 | internal.unused.flipper | validated |
Everything the ROM can energise, grouped the way a table author builds it.
| # | Name | Device ID | Role | Wiring | Evidence |
|---|---|---|---|---|---|
| 1 | Ball Popper | device.ball-popper | Q82Vio-Brn WPC driver board | validated | |
| 2 | Gun Kicker | device.gun-kicker | Q80Vio-Red WPC driver board | validated | |
| 3 | Outhole | device.outhole | Q78Vio-Orn WPC driver board | validated | |
| 4 | Trough | device.trough | Q76Vio-Yel WPC driver board | validated | |
| 5 | Right Sling | device.right-sling | Q64Vio-Grn WPC driver board | validated | |
| 6 | Left Sling | device.left-sling | Q66Vio-Blu WPC driver board | validated | |
| 7 | Knocker | device.knocker | cabinet.knocker | Q68Vio-Blk WPC driver board | validated |
| 8 | Kickback | device.kickback | Q70Vio-Gry WPC driver board | validated | |
| 9 | Plunger | device.plunger | Q58Brn-Blk WPC driver board | validated | |
| 10 | Top Lock | device.top-lock | Q56Brn-Red WPC driver board | validated | |
| 11 | Gun Motor | device.gun-motor | Q54Brn-Orn WPC driver board | validated | |
| 12 | Knock Downopt | device.knock-down | Q52Brn-Yel WPC driver board | validated | |
| 13 | Left Jet | device.left-jet | Q50Brn-Grn WPC driver board | validated | |
| 14 | Right Jet | device.right-jet | Q48Brn-Blu WPC driver board | validated | |
| 15 | Bottom Jet | device.bottom-jet | Q46Brn-Vio WPC driver board | validated | |
| 16 | Left Lock | device.left-lock | Q44Brn-Gry WPC driver board | validated | |
| 28 | Drop Target | device.drop-target | Q20Blu-Yel WPC driver board | validated | |
| 34 | Unused Generic Flipper Output 34 | device.unused-generic-flipper-output-34 | internal.unused.generic-flipper | validated | |
| 36 | Unused Generic Flipper Output 36 | device.unused-generic-flipper-output-36 | internal.unused.generic-flipper | validated | |
| 46 | Lower Right Flipper | device.lower-right-flipper | flipper.lower.right | Blu-Yel WPC driver board | validated |
| 48 | Lower Left Flipper | device.lower-left-flipper | flipper.lower.left | Gry-Yel WPC driver board | validated |
| # | Name | Device ID | Role | Wiring | Evidence |
|---|---|---|---|---|---|
| 17 | Hot Dog Flashlamps | device.hot-dog-flashlamps | Q42Blk-Brn WPC driver board | validated | |
| 18 | Right Sling Flashlamps | device.right-sling-flashlamps | Q40Blk-Red WPC driver board | validated | |
| 19 | Left Sling Flashlamps | device.left-sling-flashlamps | Q38Blk-Orn WPC driver board | validated | |
| 20 | Left Lock Flashlamps | device.left-lock-flashlamps | Q36Blk-Yel WPC driver board | validated | |
| 21 | Gun Flashlamps | device.gun-flashlamps | Q28Blu-Grn WPC driver board | validated | |
| 22 | Right Ramp Flashlamps | device.right-ramp-flashlamps | Q30Blu-Blk WPC driver board | validated | |
| 23 | Left Ramp Flashlamps | device.left-ramp-flashlamps | Q34Blu-Vio WPC driver board | validated | |
| 24 | Backglass Flashlampopt | device.backglass-flashlamp | backbox.flasher | Q32Blu-Gry WPC driver board | validated |
| 25 | Targets Flashlamps | device.targets-flashlamps | Q26Blu-Brn WPC driver board | validated | |
| 26 | Left Popper Flashlamps | device.left-popper-flashlamps | Q24Blu-Red WPC driver board | validated | |
| 27 | Right Popper Flashlamps | device.right-popper-flashlamps | Q22Blu-Orn WPC driver board | validated |
Column × row matrix — the address is column·row.
| # | Name | Device ID | Role | Evidence |
|---|---|---|---|---|
| 11 | Multiplier 2x | lamp.matrix-11 | validated | |
| 12 | Multiplier 4x | lamp.matrix-12 | validated | |
| 13 | Hold Bonus | lamp.matrix-13 | validated | |
| 14 | Multiplier 6x | lamp.matrix-14 | validated | |
| 15 | Multiplier 8x | lamp.matrix-15 | validated | |
| 16 | Shoot Again | lamp.matrix-16 | validated | |
| 17 | Mouth | lamp.matrix-17 | validated | |
| 18 | Not Used | lamp.matrix-18 | validated | |
| 21 | Kickback | lamp.matrix-21 | validated | |
| 22 | Special | lamp.matrix-22 | validated | |
| 23 | Left Return Lane | lamp.matrix-23 | validated | |
| 24 | Right Return Lane | lamp.matrix-24 | validated | |
| 25 | Data Base 3 | lamp.matrix-25 | validated | |
| 26 | Load Gun | lamp.matrix-26 | validated | |
| 27 | Extra Ball | lamp.matrix-27 | validated | |
| 28 | Load for Jackpot | lamp.matrix-28 | validated | |
| 31 | Target 1 High | lamp.matrix-31 | validated | |
| 32 | Target 2 | lamp.matrix-32 | validated | |
| 33 | Target 3 | lamp.matrix-33 | validated | |
| 34 | Target 4 | lamp.matrix-34 | validated | |
| 35 | Target 5 Low | lamp.matrix-35 | validated | |
| 36 | Middle Target Bank Left | lamp.matrix-36 | validated | |
| 37 | Middle Target Bank Center | lamp.matrix-37 | validated | |
| 38 | Middle Target Bank Right | lamp.matrix-38 | validated | |
| 41 | Lock Two | lamp.matrix-41 | validated | |
| 42 | Data Base 2 | lamp.matrix-42 | validated | |
| 43 | 10 Million | lamp.matrix-43 | validated | |
| 44 | Extra Ball | lamp.matrix-44 | validated | |
| 45 | Multi-ball | lamp.matrix-45 | validated | |
| 46 | Light Hurry Up | lamp.matrix-46 | validated | |
| 47 | Hold Bonus | lamp.matrix-47 | validated | |
| 48 | Security Pass | lamp.matrix-48 | validated | |
| 51 | Eyes Lower | lamp.matrix-51 | validated | |
| 52 | Eyes Upper | lamp.matrix-52 | validated | |
| 53 | 5 Million | lamp.matrix-53 | validated | |
| 54 | 3 Million | lamp.matrix-54 | validated | |
| 55 | 1 Million | lamp.matrix-55 | validated | |
| 56 | 750 Thousand | lamp.matrix-56 | validated | |
| 57 | 500 Thousand | lamp.matrix-57 | validated | |
| 58 | 250 Thousand | lamp.matrix-58 | validated | |
| 61 | Left CPU Lit | lamp.matrix-61 | validated | |
| 62 | Left Vault Key | lamp.matrix-62 | validated | |
| 63 | Left Silent Alarm | lamp.matrix-63 | validated | |
| 64 | Left Passcode | lamp.matrix-64 | validated | |
| 65 | Left Checkpoint | lamp.matrix-65 | validated | |
| 66 | Lock 1 | lamp.matrix-66 | validated | |
| 67 | Data Base 1 | lamp.matrix-67 | validated | |
| 68 | Left Ramp | lamp.matrix-68 | validated | |
| 71 | Right CPU Lit | lamp.matrix-71 | validated | |
| 72 | Right Vault Key | lamp.matrix-72 | validated | |
| 73 | Right Silent Alarm | lamp.matrix-73 | validated | |
| 74 | Right Passcode | lamp.matrix-74 | validated | |
| 75 | Right Checkpoint | lamp.matrix-75 | validated | |
| 76 | Right Bank Top | lamp.matrix-76 | validated | |
| 77 | Right Bank Middle | lamp.matrix-77 | validated | |
| 78 | Right Bank Bottom | lamp.matrix-78 | validated | |
| 81 | Chase Values | lamp.matrix-81 | validated | |
| 82 | Right Ramp | lamp.matrix-82 | validated | |
| 83 | Hurry Up | lamp.matrix-83 | validated | |
| 84 | Start Buttonopt | lamp.matrix-84 | cabinet.start | validated |
| 85 | Drop Target | lamp.matrix-85 | validated | |
| 86 | Top Lane Left | lamp.matrix-86 | validated | |
| 87 | Top Lane Center | lamp.matrix-87 | validated | |
| 88 | Top Lane Right | lamp.matrix-88 | validated |
| # | Name | Device ID | Wiring | Evidence |
|---|---|---|---|---|
| 0 | GI 1: Top Insert | gi.string-1 | Q18Wht-Brn WPC driver board | validated |
| 1 | GI 2: Left Playfield | gi.string-2 | Q10Wht-Vio WPC driver board | validated |
| 2 | GI 3: Right Playfield | gi.string-3 | Q14Wht-Yel WPC driver board | validated |
| 3 | GI 4: Not Used | gi.string-4 | Q16Wht-Orn WPC driver board | validated |
| 4 | GI 5: Bottom Insert | gi.string-5 | Q12Wht-Grn WPC driver board | validated |
| # | Name | Device ID | Role | Evidence |
|---|---|---|---|---|
| 29 | Unused WPC State/Generic Output 29 | device.unused-wpc-state-generic-output-29 | internal.unused.wpc-output | validated |
| 30 | Unused WPC State/Generic Output 30 | device.unused-wpc-state-generic-output-30 | internal.unused.wpc-output | validated |
| 31 | Unused WPC State/Generic Output 31 | device.unused-wpc-state-generic-output-31 | internal.unused.wpc-output | validated |
| 32 | Unused WPC State/Generic Output 32 | device.unused-wpc-state-generic-output-32 | internal.unused.wpc-output | validated |
| 33 | Unused WPC State/Generic Output 33 | device.unused-wpc-state-generic-output-33 | internal.unused.wpc-output | validated |
| 35 | Unused WPC State/Generic Output 35 | device.unused-wpc-state-generic-output-35 | internal.unused.wpc-output | validated |
| 37 | Unused WPC State/Generic Output 37 | device.unused-wpc-state-generic-output-37 | internal.unused.wpc-output | validated |
| 38 | Unused WPC State/Generic Output 38 | device.unused-wpc-state-generic-output-38 | internal.unused.wpc-output | validated |
| 39 | Unused WPC State/Generic Output 39 | device.unused-wpc-state-generic-output-39 | internal.unused.wpc-output | validated |
| 40 | Unused WPC State/Generic Output 40 | device.unused-wpc-state-generic-output-40 | internal.unused.wpc-output | validated |
| 41 | Unused WPC State/Generic Output 41 | device.unused-wpc-state-generic-output-41 | internal.unused.wpc-output | validated |
| 42 | Unused WPC State/Generic Output 42 | device.unused-wpc-state-generic-output-42 | internal.unused.wpc-output | validated |
| 43 | Unused WPC State/Generic Output 43 | device.unused-wpc-state-generic-output-43 | internal.unused.wpc-output | validated |
| 44 | Unused WPC State/Generic Output 44 | device.unused-wpc-state-generic-output-44 | internal.unused.wpc-output | validated |
| 45 | Unused WPC State/Generic Output 45 | device.unused-wpc-state-generic-output-45 | internal.unused.wpc-output | validated |
| 47 | Unused WPC State/Generic Output 47 | device.unused-wpc-state-generic-output-47 | internal.unused.wpc-output | validated |
| 49 | Unused WPC State/Generic Output 49 | device.unused-wpc-state-generic-output-49 | internal.unused.wpc-output | validated |
| 50 | Unused WPC State/Generic Output 50 | device.unused-wpc-state-generic-output-50 | internal.unused.wpc-output | validated |
| # | Name | Device ID | Kind | Evidence |
|---|---|---|---|---|
| 1 | CPU/Sound Board DIP 1 | switch.dip-1 | DIP switch | validated |
| 2 | CPU/Sound Board DIP 2 | switch.dip-2 | DIP switch | validated |
| 3 | CPU/Sound Board DIP 3 | switch.dip-3 | DIP switch | validated |
| 4 | CPU/Sound Board DIP 4 | switch.dip-4 | DIP switch | validated |
| 5 | CPU/Sound Board DIP 5 | switch.dip-5 | DIP switch | validated |
| 6 | CPU/Sound Board DIP 6 | switch.dip-6 | DIP switch | validated |
| 7 | CPU/Sound Board DIP 7 | switch.dip-7 | DIP switch | validated |
| 8 | CPU/Sound Board DIP 8 | switch.dip-8 | DIP switch | validated |
| 24 | Test Position Always Closed Microswitch | switch.matrix-24 | Constant | validated |
Logical assemblies with their actuators, sensors and observed behaviour. Click a chip to jump to the address it refers to.
mechanism.three-ball-trough
Retained VPW initialization is bsTrough.InitSw 18,17,16,15 with Balls=3; BallRelease kicks at 90 degrees and strength 8. The script does not prove a four-ball trough.
mechanism.shooter-lane
The retained saucer stack uses switch 78, a 0-degree/50-strength kick, and kick-force variance 3.
mechanism.left-lock
The retained left lock stack uses switch 51 and kicks at 160 degrees with strength 13.
mechanism.top-lock
The retained top lock stack uses switch 55, kicks at 270 degrees with strength 5, and has kick-force variance 6.
mechanism.gun-traverse
cvpmMech one-solenoid/reverse/non-linear; solenoid 11, length 240, steps 240; home switch 33 window 0-5, mark switch 32 window 98-105; visual callback uses CurrentPos=aNewPos/3. The retained script moves T2_Gun and its held ball, not a keyframed or magnet cannon.
mechanism.gun-fire
Solenoid 2 fires the loaded ball from switch 31 by -CurrentPos at strength 45, clears the loaded ball, and is commanded by the grip trigger switch 34.
mechanism.skull-ball-popper
SolSkull is the retained callback: manual solenoid 1 Ball Popper opens the skull/ball path from switch 76. The callback name is retained and is not turned into a virtual skull device.
mechanism.drop-target
A single switch 77 target is reset by dtDrop1.SolDropUp on solenoid 28.
mechanism.kickback
SolAPlunger is the left outer-lane kicker saver; it is distinct from the auto-plunger output 9.
Connections that exist in copper, not in the ROM. These fire whether or not a game is running.
Working knowledge that has no schema field yet — edition differences, tuning values, pitfalls.
Coverage: partial — complete semantic inventory and reviewed normalized coordinates are retained, but author-ready status is blocked by explicit spatial and source conflicts. This is the physical Williams machine only. FreeWPC custom-ROM drivers and virtual/community rethemes are not claimed by the canonical definition.
The retained known-working VPW 0022 embedded script is the semantic controller authority. The Williams operations manual is the physical wiring, switch/coil/lamp, GI, and assembly authority. Pinned PinMAME revision 4ec52ff0ac13 controls public address routing, the WPC-DMD hardware generation (0x4), and the driver family. The retained table SHA-256 is 3727bf57102fceb13b9f8e6370bd7bc4fbd2571d95affb7bff34eb7c5f2e9f8c; its embedded script SHA-256 is b5153ac46f6d4b58afb676c1f7bfdff17c6ffb953941daed8dd841c679f4e831. The manual SHA-256 is 8540d654b39c58ad3b19ece0f42eb1dfdb8460d249e9480f8906385c8ecdb16b; the authorized external t2_l8.zip evidence SHA-256 is 4cdd95d435334c3bd6fe19556b410b558e67266b30e7fb767f52f4d14ed525b1.
The canonical driver set is t2_d2, t2_d3, t2_d4, t2_d6, t2_d8, t2_l2, t2_l2sp1, t2_l3, t2_l4, t2_l6, t2_l8, t2_l81, t2_l82, t2_l83, t2_l84, t2_p2f, t2_p2g, t2_f19, t2_f20, and t2_f32. D-series ghost fixes, sound/attract/profanity revisions, and the L83/L84 physical-compatible MODs retain the same physical I/O. The FreeWPC records are alternative firmware for the stock physical T2 hardware; they remain controller variants of this machine and do not create a separate physical machine or community retheme entry.
All 64 printed switch-matrix positions 11 through 88 are present, including printed Not Used positions. Cabinet/service inputs 1-8, optional generic flipper inputs 111-118, and DIP inputs 1-8 are explicit. All printed lamp addresses 11-88 are present, including lamp 18 Not Used and the optional cabinet start-button lamp 84. Solenoids 1-28, the two lower-flipper aliases 46/48, five GI address slots 0-4, and the 128x32 DMD are explicit. Public lamp addresses remain WPC matrix addresses; do not replace them with sequential 1-64 values.
The retained script callbacks are: 1 SolSkull (physical Ball Popper, opening the skull path from switch 76), 2 gun fire/kicker, 3 outhole, 4 trough ball release, 7 knocker, 8 left outer-lane kickback saver, 9 auto plunger, 10 top lock, 11 gun motor, 16 left lock, and 28 drop-target reset. Flashers 17-27 use the script's SetLamp 117 through SetLamp 127 mappings except 24, which has no retained callback. The manual's physical output names remain authoritative even when the script callback name is thematic.
The manual solenoid table's exact wire/connector/transistor/part-number data is retained on every physical solenoid output. High-power outputs 1-8 use J130, low-power outputs 9-16 use J127, flashers use the J126/J125/J122 branches shown on manual page 48, and drop-target reset 28 is J122-4/Q20/AE-26-1200. The two lower flippers are output 46 Blu-Yel/J109-7/FL-11630 and output 48 Gry-Yel/J109-5/FL-11630. GI strings retain the printed rows: GI1 Wht-Brn/J120-7/Q18/#555, GI2 Wht-Vio/J119-1/Q10/#555, GI3 Wht-Yel/J121-9/Q14/#555, GI4 Wht-Orn/J120-8/Q16 with no printed lamp part, and GI5 Wht-Grn/J120-10/Q12/#555. Lamp-matrix connector labels are not copied into output wiring because the later schematic disagrees with the matrix table.
The three-ball trough initializes bsTrough.InitSw 18,17,16,15, with switch 18 as the outhole/exit and switches 17, 16, and 15 as the three stack seats, and sets Balls=3; BallRelease kicks at 90 degrees with strength 8. The shooter lane is switch 78 with a 0-degree/50-strength kick and variance 3. The left lock is switch 51 at 160/13; the top lock is switch 55 at 270/5 with variance 6. The single drop target is switch 77 reset by solenoid 28.
The cannon is a cvpmMech one-solenoid, reverse, non-linear mechanism driven by solenoid 11, length 240, steps 240. Home switch 33 is the 0-5 window and mark switch 32 is the 98-105 window. The retained firing callback kicks switch 31 by -CurrentPos with strength 45 and clears the loaded ball; the visual callback uses CurrentPos=aNewPos/3. Recreating the cannon requires a motorized traverse and loaded-ball/fire state, not the modern comparison script's keyframed or magnet device. The VPW table's T2_Gun primitive is a shared assembly anchor for the internal mark/home contacts, not a substitute for the manual's A-14507/A-14504/A-13892-2 physical assemblies. Switch 34 is the trigger on the cabinet gun grip; the working script maps PlungerKey directly to that controller switch, so it intentionally has no playfield coordinate.
The manual mechanism map and assembly pages identify the A-8039-3 outhole/trough, C-9638 shooter, A-14525 right kickback, B-11873 left kickback, C-13174-L/R lower flipper assemblies, B-12665 kicker arms with B-13935 coils, A-14507 gun-kicker assembly, A-14504 cannon platform, A-13892-2 motor regulator, ball eject assemblies, A-14501 ball popper, A-14615 single-bank drop target, and lamp boards A-K. These relationships are retained as physical authoring knowledge; ambiguous manual assembly naming is not silently relabeled.
Solenoid 12 is deliberately optional/conflicted: the early solenoid/location list says Knock Down / SM1-26-600, while the later electrical table says Not Used; the retained script has no SolCallback(12). The later lamp schematic connector labels differ from the lamp matrix table; matrix address/name identity is retained without invented connector wiring. The manual names five GI strings as GI 1 Top Insert, GI 2 Left Playfield, GI 3 Right Playfield, GI 4 Not Used, and GI 5 Bottom Insert. The retained script instead toggles GI2 (B1-B6 plus named GI objects 1-20/001/002) and GI3 (named GI objects 21-35) for Case 2, has a separate Case 3 Light2-Light5 branch, no Case 1 behavior, and exits on Case 4. Decorative Light2-Light5 and laser overlays are not promoted as physical GI or cannon emitters. The spatial audit retains the exact Case 2 object centers as conflicted evidence and leaves the other string routing unresolved.
The modern comparison script is not semantic authority. Its four-position trough, pulsed 62/64, virtual devices, and keyframed/magnet cannon are excluded. The g5k script is corroborating only where it agrees with the retained VPW behavior.
The exact coordinate convention is x=raw_x/964, y=raw_y/2162, with x=0 left and x=1 right, y=0 rear/backglass and y=1 apron/player. Placements name their exact retained VPX object and use the vpx-table.t2-vpw-0022 source. The extraction contains 548 retained files totaling 132,477,924 bytes. Its retained extracted-vpxtool.manifest.json lists every sorted relative POSIX path with byte size and SHA-256; canonical JSON bytes hash to f56ab9a0b6287c71b984c42d97c88cbf98345a0614a8a920e93374e06ba2fab9. The curator recomputes and verifies the complete manifest before regeneration and whenever the evidence root is configured during --check.
Lamp, switch, flasher, cannon, trough, lock, shooter, popper, bumper, slingshot, ramp-entry, and lower-flipper positions with exact named table objects or disclosed assembly projections are retained in the definition. Switches 41-43 and outputs 13-15 share the exact three bumper centers. Switches 44/45 and outputs 6/5 use the extractor's exact left/right slingshot-wall drag-point centroids. Gates sw61 and sw63 locate the two ramp-entry switches. The left-outlane switch 25 anchors kickback output 8. Cabinet grip switch 34, knocker output 7, backglass flasher 24, start-button lamp 84, and the DMD are controlled non-playfield records rather than fake playfield points. Lamp 52 drives the exact object-space Primitive.L52 skull-eye mesh; because that primitive reports (0,0), its coordinate is an observed projection to the adjacent exact skull drop-target center and says so explicitly.
The three physical trough contacts are retained as an ordered 40/60/80-percent projection between the exact drain and ball-release anchors, consistent with the manual left/center/right map and carrying about plus or minus 0.03 normalized practical uncertainty. Their behavior and address order are complete, but the working table exposes only the cvpmBallStack rather than exact hidden contact seats. The remaining spatial blockers are optional/conflicted solenoid 12 and the unresolved GI 1/2/5 physical-string routing. The separate solenoid 12, GI-routing, and lamp-connector evidence conflicts also remain author-critical. The definition must remain partial until those exact facts are resolved by retained evidence.
Every driver that resolves to this physical machine.
| ROM set | Description | Year | Parent | Hardware |
|---|---|---|---|---|
| t2_l84 | Terminator 2: Judgment Day (L-84 Profanity, bugfix/MOD, LED Ghost Fix) Community profanity/bugfix/MOD ROM; retained as a physical-compatible ROM variant with the same Williams WPC-DMD I/O and playfield. | 2023 | t2_l8 | compatible |
| t2_l83 | Terminator 2: Judgment Day (L-83 Profanity, bugfix/MOD, LED Ghost Fix) Community profanity/bugfix/MOD ROM; retained as a physical-compatible ROM variant with the same Williams WPC-DMD I/O and playfield. | 2022 | t2_l8 | compatible |
| t2_p2g | Terminator 2: Judgment Day (P-2G Profanity, LED Ghost Fix) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | t2_l8 | identical |
| t2_p2f | Terminator 2: Judgment Day (P-2F Profanity) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | t2_l8 | identical |
| t2_l82 | Terminator 2: Judgment Day (L-82 Attract Score patch) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | t2_l8 | identical |
| t2_l81 | Terminator 2: Judgment Day (L-81 Attract Sound patch) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | t2_l8 | identical |
| t2_l8 | Terminator 2: Judgment Day (L-8) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | — | identical |
| t2_l6 | Terminator 2: Judgment Day (L-6) Firmware, sound, attract-score, profanity, or LED ghost-fix revision; physical playfield, controller generation, and I/O are unchanged. | 1991 | t2_l8 | identical |
Parent set: t2_l8 — clones share this definition unless a hardware difference is noted.
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.
pinmame.catalog.4ec52ff0ac13
Pinned catalog driver records for the t2_* family
pinmame.core.4ec52ff0ac13
src/libpinmame/libpinmame.h PINMAME_HARDWARE_GEN_WPCDMD=0x4; src/wpc/sims/wpc/full/t2.c GEN_WPCDMD, wpc_dispDMD, t2 driver family
controller-profile.pinmame-wpc-alpha
WPC public switch, lamp, solenoid, and five-GI address rules; emulator lamp remapping
manual.williams.terminator-2-judgment-day.1991
Manifest ID other.arcarc.williams.terminator-2-judgment-day.1991.8540d654b39c; 118-page image-only Williams operations manual: switch tables pp.45-46,102-103,117; coil tables pp.2,47-50,104-105,112,114; lamp tables pp.51-53,79,100-101,117; mechanism map p.70; assemblies pp.68-96; cannon pp.10,24,54,70,86,90-92,110-114; rules pp.6-20
manual-support.williams.terminator-2-judgment-day.1991
Retained page index, mechanism notes, rendered pages, contact sheets, and reference PNGs used for visual verification
vpx-table.t2-vpw-0022
Retained known-working VPW 0022 physical table; geometry source only for named VPX objects and embedded-script container
vpx-script.t2-vpw-0022
Retained embedded VPW script; evidence authority is semantic_controller and mechanism_causality: cGameName=t2_l8, callbacks, switch semantics, ball stacks, gun mechanism, drop target, flashers, and GI callback behavior
vpx-extraction.t2-vpw-0022
Canonical manifest covers every sorted relative POSIX path, byte size, and SHA-256 under extracted-vpxtool; manifest SHA-256 f56ab9a0b6287c71b984c42d97c88cbf98345a0614a8a920e93374e06ba2fab9; 548 files, 132477924 bytes, bounds left=0 top=0 right=964 bottom=2162; normalized coordinates are x/964 and y/2162
vpx-script.t2-g5k-v1-1a
Corroborating g5k script inventory; consulted where it agrees with the retained VPW script, never promoted over it
vpx-script.t2-modern-comparison
Comparison-only modern script; its four-position trough, pulsed 62/64, virtual devices, and keyframed/magnet cannon are excluded from this physical VPW definition
rom.t2-l8-authorized-corpus
Pre-existing authorized local ROM evidence; bytes are not copied into this repository
This definition still has 2 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.