Overview
Legacy evidence identifies this candidate as Williams (1990). 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
games/diner.json#/switches/0._vbscript_name: swOutholegames/diner.json#/switches/1._vbscript_name: swUpDownRampgames/diner.json#/switches/1._note: Also used as bsTrough.EntrySw (trough entry switch)games/diner.json#/switches/2._vbscript_name: swTrough1games/diner.json#/switches/3._vbscript_name: swTrough2games/diner.json#/switches/4._vbscript_name: swTrough3games/diner.json#/switches/5._vbscript_name: swShooterLanegames/diner.json#/switches/6._vbscript_name: swSubPlfdShooter1games/diner.json#/switches/7._vbscript_name: swSubPlfdShooter2games/diner.json#/switches/8._vbscript_name: swCupgames/diner.json#/switches/9._vbscript_name: swGrillBonusgames/diner.json#/switches/10._vbscript_name: swEgames/diner.json#/switches/11._vbscript_name: swAgames/diner.json#/switches/12._vbscript_name: swTgames/diner.json#/switches/13._vbscript_name: swHotdoggames/diner.json#/switches/14._vbscript_name: swBurgergames/diner.json#/switches/15._vbscript_name: swChiligames/diner.json#/switches/16._vbscript_name: swRightRampEntrygames/diner.json#/switches/17._vbscript_name: swRightRampExitgames/diner.json#/switches/18._vbscript_name: swCupEntrygames/diner.json#/switches/19._vbscript_name: swRootBeergames/diner.json#/switches/20._vbscript_name: swFriesgames/diner.json#/switches/21._vbscript_name: swIcedTeagames/diner.json#/switches/22._vbscript_name: swLeftRampExitgames/diner.json#/switches/23._vbscript_name: swLeftOutlanegames/diner.json#/switches/24._vbscript_name: swLeftReturnLanegames/diner.json#/switches/25._vbscript_name: swRightReturnLanegames/diner.json#/switches/26._vbscript_name: swRightOutlanegames/diner.json#/switches/27._vbscript_name: swUpperLeftEjectgames/diner.json#/switches/28._vbscript_name: swLowerLeftEjectgames/diner.json#/switches/29._vbscript_name: swLeftJetBumpergames/diner.json#/switches/30._vbscript_name: swRightJetBumpergames/diner.json#/switches/31._vbscript_name: swLowerJetBumpergames/diner.json#/switches/32._vbscript_name: swBRKickergames/diner.json#/switches/32._vbscript_alias: swRSlinggames/diner.json#/switches/33._vbscript_name: swBLKickergames/diner.json#/switches/33._vbscript_alias: swLSlinggames/diner.json#/switches/34._vbscript_name: swSpinnergames/diner.json#/switches/35._vbscript_name: swFlipRgames/diner.json#/switches/36._vbscript_name: swFlipLgames/diner.json#/switches/37._vbscript_name: swClockWheelgames/diner.json#/coils/0._vbscript_name: sOutholegames/diner.json#/coils/0._vbscript_callback: bsTrough.SolIngames/diner.json#/coils/0._inferred_type: ball_managementgames/diner.json#/coils/1._vbscript_name: sRampDowngames/diner.json#/coils/1._vbscript_callback: SolRampDowngames/diner.json#/coils/1._inferred_type: mechanismgames/diner.json#/coils/2._vbscript_name: sC3BDTResetgames/diner.json#/coils/2._vbscript_callback: SolDTBankMiddlegames/diner.json#/coils/2._inferred_type: drop_target_resetgames/diner.json#/coils/3._vbscript_name: sRampUpgames/diner.json#/coils/3._vbscript_callback: SolRampUpgames/diner.json#/coils/3._inferred_type: mechanismgames/diner.json#/coils/4._vbscript_name: sUpperLeftEjectgames/diner.json#/coils/4._vbscript_callback: SolUpperEjectgames/diner.json#/coils/4._inferred_type: kickergames/diner.json#/coils/5._vbscript_name: sSubPlfdShootergames/diner.json#/coils/5._vbscript_callback: SolSubPlfdShootergames/diner.json#/coils/5._inferred_type: kickergames/diner.json#/coils/6._vbscript_name: sKnockergames/diner.json#/coils/6._vbscript_callback: SolKnockergames/diner.json#/coils/6._inferred_type: knockergames/diner.json#/coils/7._vbscript_name: sLowerLeftEjectgames/diner.json#/coils/7._vbscript_callback: SolLowKickergames/diner.json#/coils/7._inferred_type: kickergames/diner.json#/coils/8._vbscript_name: sRightRampFlashergames/diner.json#/coils/8._vbscript_callback: SolFlash9games/diner.json#/coils/8._inferred_type: flashergames/diner.json#/coils/8._note: BG Moongames/diner.json#/coils/9._vbscript_name: sBackBoxRelaygames/diner.json#/coils/9._vbscript_callback: SolGIRelaygames/diner.json#/coils/9._inferred_type: gi_relaygames/diner.json#/coils/10._vbscript_name: sLeftRampFlashergames/diner.json#/coils/10._vbscript_callback: SolFlash11games/diner.json#/coils/10._inferred_type: flashergames/diner.json#/coils/10._note: BG Dinergames/diner.json#/coils/11._vbscript_name: sACselectrelaygames/diner.json#/coils/11._vbscript_callback: SolACSelectgames/diner.json#/coils/11._inferred_type: relaygames/diner.json#/coils/12._vbscript_name: sL3BDTResetgames/diner.json#/coils/12._vbscript_callback: SolDTBankLeftgames/diner.json#/coils/12._inferred_type: drop_target_resetgames/diner.json#/coils/13._vbscript_callback: Sol14Divertergames/diner.json#/coils/13._inferred_type: divertergames/diner.json#/coils/13._note: No named constant — referenced by number in SolCallbackgames/diner.json#/coils/14._vbscript_name: sClockWheelgames/diner.json#/coils/14._inferred_type: mechanismgames/diner.json#/coils/15._vbscript_name: sLeftJetBumpergames/diner.json#/coils/15._inferred_type: bumpergames/diner.json#/coils/15._note: SolCallback commented out in scriptgames/diner.json#/coils/16._vbscript_name: sLSlinggames/diner.json#/coils/16._inferred_type: slingshotgames/diner.json#/coils/17._vbscript_name: sRightJetBumpergames/diner.json#/coils/17._inferred_type: bumpergames/diner.json#/coils/17._note: SolCallback commented out in scriptgames/diner.json#/coils/18._vbscript_name: sRSlinggames/diner.json#/coils/18._inferred_type: slingshotgames/diner.json#/coils/19._vbscript_name: sLowerJetBumpergames/diner.json#/coils/19._inferred_type: bumpergames/diner.json#/coils/19._note: SolCallback commented out in scriptgames/diner.json#/coils/20._vbscript_name: sShooterLaneFeedergames/diner.json#/coils/20._vbscript_callback: bsTrough.SolOutgames/diner.json#/coils/20._inferred_type: ball_managementgames/diner.json#/coils/21._vbscript_callback: TiltSolgames/diner.json#/coils/21._inferred_type: tiltgames/diner.json#/coils/21._note: No named constant — referenced by number in SolCallbackgames/diner.json#/coils/22._vbscript_callback: SolHajiFgames/diner.json#/coils/22._inferred_type: flashergames/diner.json#/coils/22._note: BG Haji character flasher. No named constant.games/diner.json#/coils/23._vbscript_callback: SolBabsFgames/diner.json#/coils/23._inferred_type: flashergames/diner.json#/coils/23._note: BG Babs character flasher. No named constant.games/diner.json#/coils/24._vbscript_callback: SolBorisFgames/diner.json#/coils/24._inferred_type: flashergames/diner.json#/coils/24._note: BG Boris character flasher. No named constant.games/diner.json#/coils/25._vbscript_callback: SolPepeFgames/diner.json#/coils/25._inferred_type: flashergames/diner.json#/coils/25._note: BG Pepe character flasher. No named constant.games/diner.json#/coils/26._vbscript_callback: SolBuckFgames/diner.json#/coils/26._inferred_type: flashergames/diner.json#/coils/26._note: BG Buck character flasher. No named constant.games/diner.json#/coils/27._vbscript_callback: SolCupFgames/diner.json#/coils/27._inferred_type: flashergames/diner.json#/coils/27._note: No named constant.games/diner.json#/coils/28._vbscript_callback: Sol31games/diner.json#/coils/28._inferred_type: flashergames/diner.json#/coils/28._note: BG clock (2). No named constant.games/diner.json#/coils/29._vbscript_name: sDineTFgames/diner.json#/coils/29._vbscript_callback: Sol32games/diner.json#/coils/29._inferred_type: flashergames/diner.json#/coils/29._note: BG Dine Time (2)games/diner.json#/coils/30._vbscript_name: sLRFlippergames/diner.json#/coils/30._vbscript_callback: SolRFlippergames/diner.json#/coils/30._inferred_type: flippergames/diner.json#/coils/30._note: Framework-defined constant (core.vbs: sLRFlipper=46)games/diner.json#/coils/31._vbscript_name: sLLFlippergames/diner.json#/coils/31._vbscript_callback: SolLFlippergames/diner.json#/coils/31._inferred_type: flippergames/diner.json#/coils/31._note: Framework-defined constant (core.vbs: sLLFlipper=48)games/diner.json#/lamps/0._light_type: 1games/diner.json#/lamps/1._light_type: 1games/diner.json#/lamps/2._light_type: 1games/diner.json#/lamps/3._light_type: 1games/diner.json#/lamps/4._light_type: 1games/diner.json#/lamps/5._light_type: 0games/diner.json#/lamps/6._light_type: 0games/diner.json#/lamps/7._light_type: 0games/diner.json#/lamps/8._light_type: 0games/diner.json#/lamps/9._light_type: 0games/diner.json#/lamps/10._light_type: 0games/diner.json#/lamps/11._light_type: 0games/diner.json#/lamps/12._light_type: 0games/diner.json#/lamps/13._light_type: 0games/diner.json#/lamps/14._light_type: 0games/diner.json#/lamps/15._light_type: 0games/diner.json#/lamps/16._light_type: 0games/diner.json#/lamps/17._light_type: 0games/diner.json#/lamps/18._light_type: 0games/diner.json#/lamps/19._light_type: 0games/diner.json#/lamps/20._light_type: 0games/diner.json#/lamps/21._light_type: 2games/diner.json#/lamps/21._note: EAT multi-light with circleE insertgames/diner.json#/lamps/22._light_type: 2games/diner.json#/lamps/22._note: EAT multi-light with circleA insertgames/diner.json#/lamps/23._light_type: 2games/diner.json#/lamps/23._note: EAT multi-light with circleT insertgames/diner.json#/lamps/24._light_type: 1games/diner.json#/lamps/25._light_type: 1games/diner.json#/lamps/26._light_type: 1games/diner.json#/lamps/27._light_type: 1games/diner.json#/lamps/28._light_type: 1games/diner.json#/lamps/29._light_type: 0games/diner.json#/lamps/30._light_type: 0games/diner.json#/lamps/31._light_type: 0games/diner.json#/lamps/32._light_type: 3games/diner.json#/lamps/32._note: Cutout flasher — backbox charactergames/diner.json#/lamps/33._light_type: 3games/diner.json#/lamps/33._note: Cutout flasher — backbox charactergames/diner.json#/lamps/34._light_type: 3games/diner.json#/lamps/34._note: Cutout flasher — backbox charactergames/diner.json#/lamps/35._light_type: 3games/diner.json#/lamps/35._note: Cutout flasher — backbox charactergames/diner.json#/lamps/36._light_type: 3games/diner.json#/lamps/36._note: Cutout flasher — backbox charactergames/diner.json#/lamps/37._light_type: 0games/diner.json#/lamps/38._light_type: 0games/diner.json#/lamps/39._light_type: 0games/diner.json#/lamps/40._light_type: 0games/diner.json#/lamps/41._light_type: 0games/diner.json#/lamps/42._light_type: 0games/diner.json#/lamps/43._light_type: 0games/diner.json#/lamps/44._light_type: 0games/diner.json#/lamps/45._light_type: 0games/diner.json#/lamps/46._light_type: 0games/diner.json#/lamps/47._light_type: 0games/diner.json#/lamps/48._light_type: 1games/diner.json#/lamps/48._note: Clock lights 49-60 only active in VR mode; type 4 (not connected) otherwisegames/diner.json#/lamps/49._light_type: 1games/diner.json#/lamps/49._note: VR mode onlygames/diner.json#/lamps/50._light_type: 1games/diner.json#/lamps/50._note: VR mode onlygames/diner.json#/lamps/51._light_type: 1games/diner.json#/lamps/51._note: VR mode onlygames/diner.json#/lamps/52._light_type: 1games/diner.json#/lamps/52._note: VR mode onlygames/diner.json#/lamps/53._light_type: 1games/diner.json#/lamps/53._note: VR mode onlygames/diner.json#/lamps/54._light_type: 1games/diner.json#/lamps/54._note: VR mode onlygames/diner.json#/lamps/55._light_type: 1games/diner.json#/lamps/55._note: VR mode onlygames/diner.json#/lamps/56._light_type: 1games/diner.json#/lamps/56._note: VR mode onlygames/diner.json#/lamps/57._light_type: 1games/diner.json#/lamps/57._note: VR mode onlygames/diner.json#/lamps/58._light_type: 1games/diner.json#/lamps/58._note: VR mode onlygames/diner.json#/lamps/59._light_type: 1games/diner.json#/lamps/59._note: VR mode onlygames/diner.json#/lamps/60._light_type: 0games/diner.json#/lamps/61._light_type: 0games/diner.json#/lamps/62._light_type: 0games/diner.json#/lamps/63._light_type: 0games/diner.json#/lamps/64._light_type: 4games/diner.json#/lamps/64._note: Defined but type 4 (not connected)games/diner.json#/_source/confidence_notes: High confidence on switches/coils/lamps. Uses S11.VBS (System 11, not WPC). swBRKicker(54)/swBLKicker(55) overlap with swRSling(54)/swLSling(55) — same physical switches, dual names. sLRFlipper, sLLFlipper, swTroughEject are framework-defined (core.vbs/S11.VBS), not in table script. Lamps 49-60 (clock lights) only active in VR mode; type 4 (not connected) in non-VR. Commented-out SolCallbacks for jet bumpers included as coils without callbacks.
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.diner:games/diner.jsonat the pinned migration revision.