Coin-door, switch-matrix, Fliptronic flipper, and optional custom switch column inputs
pinmame.input.switch
- 1 … 88 slots
- 11 … 188 slots
- 21 … 288 slots
- 31 … 388 slots
- 41 … 488 slots
- 51 … 588 slots
- 61 … 688 slots
- 71 … 788 slots
- 81 … 888 slots
- 91 … 988 slots
- 101 … 1088 slots
- 111 … 1188 slots
- 121 … 16848 slots
- libpinmamechannel=switch
- controller_plugingroup_id=1 · contract_revision=a6f6d7266d30
Technical details for Coin-door, switch-matrix, Fliptronic flipper, and optional custom switch column inputsSource-derived address behavior and exceptions
Cabinet inputs
Addresses 1-8 are the four coin chutes and the four coin-door service buttons in printed row order (internal array column 0, CORE_COINDOORSWCOL).
Matrix inputs
Public matrix addresses use WPC column/row notation 11-88, where the left digit is the drive column (internal array index 1-8) and the right digit is the return row 1-8; wpc_m2sw(col,row) = col*10+row+1. Column indices 9 and 10 (public 91-98/101-108) are a gap in the base allocation that this generation leaves unused unless a specific driver's own getSol/switch-read hook independently claims part of it.
Fliptronic inputs
This generation always has Fliptronic flipper inputs at internal column 11 (CORE_FLIPPERSWCOL), so 111-118 are the eight EOS/button positions in WPC_swF1..WPC_swF8 order:
| Address | Position |
|---|---|
111 |
lower-right EOS |
112 |
lower-right button |
113 |
lower-left EOS |
114 |
lower-left button |
115 |
upper-right EOS |
116 |
upper-right button |
117 |
upper-left EOS |
118 |
upper-left button |
These positions are exactly as on WPC-95 and WPC-Fliptronic. A driver with no upper flippers is free to repurpose 115-118 for other switch-matrix-column-11 hardware entirely (for example, opto drop targets or a ramp-made sensor wired through the same physical column).
Custom switch columns
A driver may declare one or more additional custom switch columns through core_tGameData hw.swCol. PinMAME's fixed custom-column start is internal array index CORE_CUSTSWCOL = CORE_STDSWCOLS = 12 (src/wpc/core.h), one column beyond the Fliptronic column. The same col*10+row+1 formula, reported through the CORE_CUSTSWNO(c,r) macro, places the declared columns as follows:
| Declared custom column | Public addresses |
|---|---|
| First | 121-128 |
| Second | 131-138 |
Further columns continue the same pattern. A definition declares only the addresses its own machine's custom board actually wires. This numbering is a fixed core.h offset, not a driver-visible "9th column" printed silkscreen number: a printed board schematic that labels its own connector "switch column 9" documents the physical wiring harness, not the PinMAME public address. Any such printed number must be captured as a manual.address alias rather than assumed equal to the public switch number.
Normalization
Unlike WPC-95, this generation's WPC_FLIPPERS register read (src/wpc/wpc.c, case WPC_FLIPPERS, gated on (gen & GENWPC_HASWPC95) == 0) unconditionally returns the bitwise complement of the entire flipper switch matrix column regardless of hardware generation. The public Fliptronic state is already normalized here exactly as it is on WPC-95 via WPC_FLIPPERSW95; a recreation must not re-invert either range.