Joypad: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Joypads have 4 directions and 4 buttons contacts.
Regular NeoGeo joypads or joysticks have 4 directions and 6 button switches.


Registers used to read the button's states directly (all bits are active low):
Registers used to read the switches states are {{Reg|REG_P1CNT}}, {{Reg|REG_P2CNT}}, and {{Reg|REG_STATUS_B}}.
*'''REG_P1CNT''' ($300000), Player 1:
*'''REG_P2CNT''' ($340000), Player 2:
{{8BitRegister|D|1|C|1|B|1|A|1|Right|1|Left|1|Up|1|Down|1}}
*'''REG_STATUS_B''' ($380000), SELECTs and STARTs:
{{8BitRegister|-|4|P2 Select|1|P2 Start|1|P1 Select|1|P2 Start|1}}


The [[SYSTEM_IO]] ($C0044A) [[BIOS calls|BIOS call]] can be used to read joypads more easily: it sets values in the BIOS's RAM space which gives currently pressed, state change, and "repeat" values for both joypads. Need details...
The [[SYSTEM_IO]] ($C0044A) [[BIOS calls|BIOS call]] can be used to read inputs more easily: it sets values in the [[BIOS_RAM_locations|BIOS RAM]] which gives currently pressed, state change, and repeat values for both joypads ports.


[[Category: controllers]]
Only one output is used: [[Pinouts|OUT3]], which is connected to the D button input. This loop is used for detection (D = 0 if OUT3 = 1).
 
==NeoGeo CD joypads==
 
[[File:G9pinout.png|right|thumb|"G9" internal schematic. Pin 2 is ground, 1 and 3 are buttons, 4 and 5 are port inputs.]]
 
[[File:Ngcdpad.jpg|400px]]
 
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.
 
[[Category:Base system]]
[[Category:Controllers]]

Latest revision as of 22:53, 22 June 2016

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.