Midway Pinball 2000

pinmame.p2k

controllers/pinmame/p2k.json
1
Machines
0
Author ready
3
Address groups

Polarity is already normalised

PinMAME reports logical active state on this platform. A consumer must not invert again. Whether a real switch is normally closed stays recorded per device as a physical fact, so a recreation can build the right hardware without changing what the emulator reports.

Address groups

Playfield matrix, coin-door, diagnostic, EOS, and cabinet inputs

pinmame.input.switch

Switch
Legal addresses
  • 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
Transports
  • libpinmamechannel=switch
  • controller_plugingroup_id=1 · contract_revision=a6f6d7266d30
Technical details for Playfield matrix, coin-door, diagnostic, EOS, and cabinet inputsSource-derived address behavior and exceptions

Playfield matrix

Addresses 11-88 use column-times-ten plus one-based row notation. Values ending in 9 or 0 are not matrix positions. PinMAME translates those public addresses through p2k_sw2m and p2k_m2sw.

Dedicated inputs

The board's 24 direct inputs are exposed as three public columns: printed D1-D8 become 91-98, D9-D16 become 101-108, and D17-D24 become 111-118. They carry coin, diagnostic, EOS, cabinet, and action-button inputs.

Polarity

The per-game opto list physically rests closed. PinMAME normalizes those states before consumers see them, so clients must not apply another controller-wide inversion.

Power-driver board coils, flashers, flipper circuits, and custom outputs

pinmame.output.solenoid

Solenoid
Legal addresses
  • 1 … 3232 slots
  • 45 … 484 slots
  • 51 … 6212 slots
Transports
  • libpinmamechannel=solenoid
  • controller_plugingroup_id=1 · contract_revision=a6f6d7266d30
Technical details for Power-driver board coils, flashers, flipper circuits, and custom outputsSource-derived address behavior and exceptions

Board drivers 1-32 retain their number. Board drivers 33-36 are the lower-flipper circuits and are exported at public solenoids 45-48. Board drivers 37-48 are exported as custom public solenoids 51-62. Public ranges 33-44 and 49-50 do not represent Pinball 2000 driver-board positions and are intentionally excluded.

Eight columns of two interleaved eight-row lamp banks

pinmame.output.lamp

Lamp
Legal addresses
  • 0 … 127128 slots
Transports
  • libpinmamechannel=lamp
  • controller_plugingroup_id=512 · contract_revision=a6f6d7266d30
Technical details for Eight columns of two interleaved eight-row lamp banksSource-derived address behavior and exceptions

The public address is a zero-based bit index in the sixteen exported lamp bytes. For the manual's column, bank, and row notation use address = (column - 1) * 16 + (bank B ? 8 : 0) + (row - 1). Thus manual 11A is public 0; there is no one-based offset. PinMAME's machine-test walk verified all 128 positions.

Evidence

  • Reference

    https://github.com/vpinball/pinmame

    src/wpc/p2k.c p2k_sw2m/p2k_m2sw, p2k_sync_io, p2k_getSol, P2K_CUSTSOL_COUNT, p2kGameData, and p2k_disp; src/wpc/p2k_names.h measured device-table notes; src/libpinmame/libpinmame.h PINMAME_HARDWARE_GEN_P2K

    rev
    8371478a7640
  • Reference

    https://github.com/vpinball/pinmame

    src/libpinmame/libpinmame.cpp SetupMsgApi controller-plugin group definitions

    rev
    a6f6d7266d30

Something wrong or missing?

Address ranges, transports and normalisation rules live in one profile file. If PinMAME exposes a group this profile does not describe — or describes wrongly — the fix belongs there.

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.

Machines on this platform

All 1 machines