Joypad
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.
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"
Only one output is used: OUT3, which is connected to the D input and can therefor be used for joypad detection (D = 0 if OUT3 = 1)