Joypad

From NeoGeo Development Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Regular NeoGeo joypads or joysticks have 4 directions and 6 button switches.

Registers used to read the switches states are REG_P1CNT, REG_P2CNT, and REG_STATUS_B.

The SYSTEM_IO ($C0044A) BIOS call can be used to read inputs more easily: it sets values in the BIOS RAM which gives currently pressed, state change, and repeat values for both joypads ports.

Only one output is used: OUT3, which is connected to the D button input. This loop is used for detection (D = 0 if OUT3 = 1).

NeoGeo CD joypads

"G9" internal schematic. Pin 2 is ground, 1 and 3 are buttons, 4 and 5 are port inputs.

The NeoGeo CD joypads use membrane switches and springs for the 4 directions (replacement part ?) which directly set the corresponding inputs to ground.

The buttons are buffered with 3 dual NPN "digital transistors" marked G9, providing good press detection even if the carbon contacts have high resistance.