Joypad

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

Registers used to read the switches states are, , and.

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




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.