Skip to content

Add support for switches which aren't part of the original switch matrix #7

@mkalkbrenner

Description

@mkalkbrenner
  • direct flipper buttons
  • coin door switches directly wired to the CPU
  • custom buttons

Those buttons should be treated like switch matrix buttons regarding the protocol so that all features like fastflips are supported without changes. libppuc should simply forward them like switch matrix buttons.

ppuc/pinmame must treat them differently. Some need to be send to the CPU others should be ignored.

We should follow the pattern of VPX. That's the mapping for Williams System 6:

'-------------------------
' S6 Data
'-------------------------
' Flipper Solenoid
Const GameOnSolenoid = 23
' Cabinet switches
Const swAdvance      = -7
Const swUpDown       = -6
Const swCPUDiag      = -5
Const swSoundDiag    = -4
Const swMasterEnter  = -3
Const swTilt         =  1
Const swBallRollTilt =  2
Const swStartButton  =  3
Const swCoin3        =  4
Const swCoin2        =  5
Const swCoin1        =  6
Const swSlamTilt     =  7
Const swHiScoreReset =  8
Const swLRFlip       = 82
Const swLLFlip       = 84
Const swURFlip       = 81
Const swULFlip       = 83

1-8 are part of the matrix, 81-84 are "virtual" (they directly power the flippers, no connection to the CPU).
The negative numbers are the switches directly wired to the CPU.

https://github.com/vpinball/vpinball/blob/a491317195b1f686eec7f30a23111d0e5c8a3c4b/scripts/s6.vbs#L17-L39

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions