Overview
Legacy evidence identifies this candidate as Data East (1993). 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/jpark.json#/switches/0._note: vpmNudge.TiltSwitch = 1games/jpark.json#/switches/1._note: Ball enters trough from drain, kicks up chain sw9->sw10->sw11->sw12->sw13->sw14games/jpark.json#/switches/6._note: Top of trough chain; SolTrough kicks from here to sw15games/jpark.json#/switches/7._note: Virtual switch set by SolTrough/SolRelease; Controller.Switch(15) toggled in code. sw15 is a physical VPX kicker used by SolRelease to kick ball into shooter lane.games/jpark.json#/switches/8._note: Also plungerIM.Switch 16games/jpark.json#/switches/17._inferred_type: standup_targetgames/jpark.json#/switches/18._inferred_type: standup_targetgames/jpark.json#/switches/19._inferred_type: standup_targetgames/jpark.json#/switches/20._inferred_type: kickergames/jpark.json#/switches/21._inferred_type: optogames/jpark.json#/switches/21._note: Set by T-Rex rotation motor code (MotorTimer_Timer), not a physical VPX triggergames/jpark.json#/switches/22._inferred_type: optogames/jpark.json#/switches/22._note: Set by T-Rex rotation motor code (MotorTimer_Timer), not a physical VPX triggergames/jpark.json#/switches/25._inferred_type: kickergames/jpark.json#/switches/26._inferred_type: optogames/jpark.json#/switches/26._note: Set by T-Rex rotation motor code (MotorTimer_Timer), not a physical VPX triggergames/jpark.json#/switches/27._inferred_type: kickergames/jpark.json#/switches/27._note: Uses vpmTimer.PulseSw 37games/jpark.json#/switches/28._inferred_type: standup_targetgames/jpark.json#/switches/29._inferred_type: standup_targetgames/jpark.json#/switches/30._inferred_type: standup_targetgames/jpark.json#/switches/31._inferred_type: cabinetgames/jpark.json#/switches/31._note: Mapped to PlungerKey in keycode handlergames/jpark.json#/switches/32._inferred_type: cabinetgames/jpark.json#/switches/32._note: Mapped to RightMagnaSave/LeftMagnaSave/LockBarKey in keycode handlergames/jpark.json#/switches/33._inferred_type: slingshotgames/jpark.json#/switches/33._note: Pulsed from LeftSlingShot_Slingshot eventgames/jpark.json#/switches/34._inferred_type: slingshotgames/jpark.json#/switches/34._note: Pulsed from RightSlingShot_Slingshot eventgames/jpark.json#/switches/35._inferred_type: bumpergames/jpark.json#/switches/36._inferred_type: bumpergames/jpark.json#/switches/37._inferred_type: bumpergames/jpark.json#/switches/38._inferred_type: captive_ballgames/jpark.json#/switches/39._inferred_type: standup_targetgames/jpark.json#/switches/40._inferred_type: standup_targetgames/jpark.json#/switches/41._inferred_type: standup_targetgames/jpark.json#/switches/42._inferred_type: standup_targetgames/jpark.json#/switches/43._inferred_type: kickergames/jpark.json#/switches/43._note: Ball held for T-Rex head animation; debounced with timergames/jpark.json#/switches/44._inferred_type: kickergames/jpark.json#/switches/45._inferred_type: optogames/jpark.json#/switches/45._note: Set by T-Rex bend motor code (UpDownTimer_Timer), not a physical VPX triggergames/jpark.json#/switches/46._inferred_type: optogames/jpark.json#/switches/46._note: Set by T-Rex bend motor code (UpDownTimer_Timer), not a physical VPX triggergames/jpark.json#/switches/47._inferred_type: kickergames/jpark.json#/switches/47._note: Uses vpmTimer.PulseSw 59games/jpark.json#/switches/48._inferred_type: kickergames/jpark.json#/switches/48._note: Uses vpmTimer.PulseSw 60games/jpark.json#/switches/49._inferred_type: vukgames/jpark.json#/coils/0._vbscript_callback: BoatDockSaucergames/jpark.json#/coils/0._inferred_type: kickergames/jpark.json#/coils/1._vbscript_callback: SolReleasegames/jpark.json#/coils/1._inferred_type: ball_managementgames/jpark.json#/coils/1._note: Kicks ball from sw15 into shooter lanegames/jpark.json#/coils/2._vbscript_callback: AutoLaunchgames/jpark.json#/coils/2._inferred_type: ball_managementgames/jpark.json#/coils/2._note: Uses cvpmImpulseP plungerIM on swPlungergames/jpark.json#/coils/3._vbscript_callback: LeftScoopEjectgames/jpark.json#/coils/3._inferred_type: kickergames/jpark.json#/coils/4._vbscript_callback: VukKickgames/jpark.json#/coils/4._inferred_type: vukgames/jpark.json#/coils/5._vbscript_callback: Divertgames/jpark.json#/coils/5._inferred_type: divertergames/jpark.json#/coils/6._vbscript_callback: RexSaucergames/jpark.json#/coils/6._inferred_type: kickergames/jpark.json#/coils/7._vbscript_callback: vpmSolSound SfxKnocker,games/jpark.json#/coils/7._inferred_type: knockergames/jpark.json#/coils/8._vbscript_callback: RaptorKickgames/jpark.json#/coils/8._inferred_type: kickergames/jpark.json#/coils/9._vbscript_callback: SolGIgames/jpark.json#/coils/9._inferred_type: gi_relaygames/jpark.json#/coils/9._note: SolModCallBack (PWM); controls all GI lighting via VLM BL_GI arraygames/jpark.json#/coils/10._vbscript_callback: RexLeftRightgames/jpark.json#/coils/10._inferred_type: mechanismgames/jpark.json#/coils/11._vbscript_callback: RexMouthgames/jpark.json#/coils/11._inferred_type: mechanismgames/jpark.json#/coils/12._vbscript_callback: RexUpDowngames/jpark.json#/coils/12._inferred_type: mechanismgames/jpark.json#/coils/13._vbscript_callback: RexMotorgames/jpark.json#/coils/13._inferred_type: mechanismgames/jpark.json#/coils/14._vbscript_callback: SolTroughgames/jpark.json#/coils/14._inferred_type: ball_managementgames/jpark.json#/coils/14._note: Kicks ball from sw14 to sw15 and sets Controller.Switch(15)=1games/jpark.json#/coils/15._inferred_type: bumpergames/jpark.json#/coils/15._note: SolCallback commented out in script; framework handlesgames/jpark.json#/coils/16._inferred_type: bumpergames/jpark.json#/coils/16._note: SolCallback commented out in script; framework handlesgames/jpark.json#/coils/17._inferred_type: bumpergames/jpark.json#/coils/17._note: SolCallback commented out in script; framework handlesgames/jpark.json#/coils/18._vbscript_callback: vpmSolSound SfxSling,games/jpark.json#/coils/18._inferred_type: slingshotgames/jpark.json#/coils/19._vbscript_callback: vpmSolSound SfxSling,games/jpark.json#/coils/19._inferred_type: slingshotgames/jpark.json#/coils/20._vbscript_callback: ShakerMotorgames/jpark.json#/coils/20._inferred_type: shakergames/jpark.json#/coils/21._vbscript_callback: RelayACgames/jpark.json#/coils/21._inferred_type: relaygames/jpark.json#/coils/21._note: Callback is empty (no-op)games/jpark.json#/coils/22._vbscript_callback: Flash1games/jpark.json#/coils/22._inferred_type: flashergames/jpark.json#/coils/22._note: SolModCallBack (PWM); controls F1a/F1b lightsgames/jpark.json#/coils/23._vbscript_callback: Flash2games/jpark.json#/coils/23._inferred_type: flashergames/jpark.json#/coils/23._note: SolModCallBack (PWM); controls F2a/F2b/F2c lightsgames/jpark.json#/coils/24._vbscript_callback: Flash3games/jpark.json#/coils/24._inferred_type: flashergames/jpark.json#/coils/24._note: SolModCallBack (PWM); controls F3a/F3b/F3c/F3d lightsgames/jpark.json#/coils/25._vbscript_callback: Flash4games/jpark.json#/coils/25._inferred_type: flashergames/jpark.json#/coils/25._note: SolModCallBack (PWM); controls F4a/F4b/F4c/F4d lightsgames/jpark.json#/coils/26._vbscript_callback: Flash5games/jpark.json#/coils/26._inferred_type: flashergames/jpark.json#/coils/26._note: SolModCallBack (PWM); controls F5/F5a/F5b/F5c lightsgames/jpark.json#/coils/27._vbscript_callback: Flash6games/jpark.json#/coils/27._inferred_type: flashergames/jpark.json#/coils/27._note: SolModCallBack (PWM); controls F6a/F6b/F6c lightsgames/jpark.json#/coils/28._vbscript_callback: Flash7games/jpark.json#/coils/28._inferred_type: flashergames/jpark.json#/coils/28._note: SolModCallBack (PWM); controls F7a/F7b/F7c/F7d lightsgames/jpark.json#/coils/29._vbscript_callback: Flash8games/jpark.json#/coils/29._inferred_type: flashergames/jpark.json#/coils/29._note: SolModCallBack (PWM); controls F8a/F8b lightsgames/jpark.json#/coils/30._vbscript_callback: SolRFlippergames/jpark.json#/coils/30._inferred_type: flippergames/jpark.json#/coils/30._note: sLRFlipper=46 (DE.VBS framework constant)games/jpark.json#/coils/31._vbscript_callback: SolLFlippergames/jpark.json#/coils/31._inferred_type: flippergames/jpark.json#/coils/31._note: sLLFlipper=48 (DE.VBS framework constant)games/jpark.json#/lamps/0._vlm_name: BL_inserts_L1games/jpark.json#/lamps/1._vlm_name: BL_ins2_L2games/jpark.json#/lamps/2._vlm_name: BL_inserts_L3games/jpark.json#/lamps/3._vlm_name: BL_inserts_L4games/jpark.json#/lamps/4._vlm_name: BL_inserts_L5games/jpark.json#/lamps/5._vlm_name: BL_inserts_L6games/jpark.json#/lamps/6._vlm_name: BL_inserts_L7games/jpark.json#/lamps/7._vlm_name: BL_inserts_L8games/jpark.json#/lamps/8._vlm_name: BL_inserts_L10games/jpark.json#/lamps/9._vlm_name: BL_inserts_L11games/jpark.json#/lamps/10._vlm_name: BL_inserts_L12games/jpark.json#/lamps/11._vlm_name: BL_inserts_L13games/jpark.json#/lamps/12._vlm_name: BL_inserts_L14games/jpark.json#/lamps/13._vlm_name: BL_inserts_L15games/jpark.json#/lamps/14._vlm_name: BL_inserts_L16games/jpark.json#/lamps/15._vlm_name: BL_ins2_L17games/jpark.json#/lamps/16._vlm_name: BL_ins2_L18games/jpark.json#/lamps/17._vlm_name: BL_inserts_L19games/jpark.json#/lamps/18._vlm_name: BL_inserts_L20games/jpark.json#/lamps/19._vlm_name: BL_inserts_L21games/jpark.json#/lamps/20._vlm_name: BL_inserts_L22games/jpark.json#/lamps/21._vlm_name: BL_inserts_L23games/jpark.json#/lamps/22._vlm_name: BL_inserts_L24games/jpark.json#/lamps/23._vlm_name: BL_inserts_L25games/jpark.json#/lamps/24._vlm_name: BL_inserts_L26games/jpark.json#/lamps/25._vlm_name: BL_inserts_L27games/jpark.json#/lamps/26._vlm_name: BL_inserts_L28games/jpark.json#/lamps/27._vlm_name: BL_inserts_L29games/jpark.json#/lamps/28._vlm_name: BL_inserts_L30games/jpark.json#/lamps/29._vlm_name: BL_ins2_L31games/jpark.json#/lamps/30._vlm_name: BL_ins2_L32games/jpark.json#/lamps/31._vlm_name: BL_ins2_L33games/jpark.json#/lamps/32._vlm_name: BL_ins2_L34games/jpark.json#/lamps/33._vlm_name: BL_inserts_L35games/jpark.json#/lamps/34._vlm_name: BL_inserts_L36games/jpark.json#/lamps/35._vlm_name: BL_inserts_L37games/jpark.json#/lamps/35._note: Also has VLM layer BL_ins2_L37bgames/jpark.json#/lamps/36._vlm_name: BL_inserts_L38games/jpark.json#/lamps/37._vlm_name: BL_inserts_L39games/jpark.json#/lamps/38._vlm_name: BL_inserts_L40games/jpark.json#/lamps/39._vlm_name: BL_inserts_L41games/jpark.json#/lamps/40._vlm_name: BL_inserts_L42games/jpark.json#/lamps/41._vlm_name: BL_inserts_L43games/jpark.json#/lamps/42._vlm_name: BL_inserts_L44games/jpark.json#/lamps/43._vlm_name: BL_inserts_L45games/jpark.json#/lamps/44._vlm_name: BL_ins2_L46agames/jpark.json#/lamps/44._note: Two VLM layers: L46a and L46bgames/jpark.json#/lamps/45._vlm_name: BL_ins2_L47games/jpark.json#/lamps/46._vlm_name: BL_ins2_L48games/jpark.json#/lamps/47._vlm_name: BL_inserts_L49games/jpark.json#/lamps/48._vlm_name: BL_inserts_L50games/jpark.json#/lamps/49._vlm_name: BL_inserts_L51games/jpark.json#/lamps/50._vlm_name: BL_inserts_L52games/jpark.json#/lamps/51._vlm_name: BL_inserts_L53games/jpark.json#/lamps/52._vlm_name: BL_inserts_L54games/jpark.json#/lamps/53._vlm_name: BL_inserts_L55games/jpark.json#/lamps/54._vlm_name: BL_inserts_L56games/jpark.json#/lamps/55._vlm_name: BL_ins2_l57games/jpark.json#/lamps/56._vlm_name: BL_ins2_l58games/jpark.json#/lamps/57._vlm_name: BL_inserts_L59games/jpark.json#/lamps/58._vlm_name: BL_ins2_L60games/jpark.json#/lamps/59._vlm_name: BL_inserts_L61games/jpark.json#/lamps/60._vlm_name: BL_ins2_L62games/jpark.json#/lamps/61._vlm_name: BL_inserts_L63games/jpark.json#/lamps/62._vlm_name: BL_inserts_L64games/jpark.json#/lamps/63._vlm_name: BL_GISplit_L100games/jpark.json#/lamps/63._note: GI split lamp (controlled via GI relay solenoid 11)games/jpark.json#/lamps/64._vlm_name: BL_GISplit_L101games/jpark.json#/lamps/64._note: GI split lampgames/jpark.json#/lamps/65._vlm_name: BL_GISplit_L102games/jpark.json#/lamps/65._note: GI split lampgames/jpark.json#/lamps/66._vlm_name: BL_GISplit_L103games/jpark.json#/lamps/66._note: GI split lampgames/jpark.json#/lamps/67._vlm_name: BL_GISplit_L104games/jpark.json#/lamps/67._note: GI split lampgames/jpark.json#/lamps/68._vlm_name: BL_GISplit_L105games/jpark.json#/lamps/68._note: GI split lampgames/jpark.json#/lamps/69._vlm_name: BL_GISplit_L106games/jpark.json#/lamps/69._note: GI split lampgames/jpark.json#/lamps/70._vlm_name: BL_GISplit_L108games/jpark.json#/lamps/70._note: GI split lampgames/jpark.json#/lamps/71._vlm_name: BL_GISplit_L114games/jpark.json#/lamps/71._note: GI split lampgames/jpark.json#/lamps/72._vlm_name: BL_GISplit_L124games/jpark.json#/lamps/72._note: GI split lampgames/jpark.json#/lamps/73._vlm_name: BL_GISplit_l125games/jpark.json#/lamps/73._note: GI split lampgames/jpark.json#/lamps/74._vlm_name: BL_inserts_L127games/jpark.json#/lamps/75._vlm_name: BL_inserts_L128games/jpark.json#/_source/confidence_notes: High confidence on switches/coils from Controller.Switch() calls and SolCallback assignments. No Const sw* declarations in table script — all switches referenced by raw number. Lamps extracted from VLM BL_inserts_L/BL_ins2_L/BL_GISplit_L arrays — no descriptions available (VLM only provides light IDs, not names). Flashers are SolModCallBack entries (solenoid-driven). Flippers (sLRFlipper=46, sLLFlipper=48) are DE.VBS framework-defined constants, not in table script. Trough is a manual 6-ball design (sw9-sw14) with custom UpdateTrough logic, not bsTrough. GI on solenoid 11 via SolModCallBack.
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.jpark:games/jpark.jsonat the pinned migration revision.