Input devices: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
Rainwarrior (talk | contribs) (→Other I/O devices: more orphans) |
(Reworks the signal table to be better organized and easier to read. Adds more devices. Fixes the zapper audio signal.) |
||
Line 1: | Line 1: | ||
== Usage of port pins by hardware type == | == Usage of port pins by hardware type == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
|style="text-align: left;"|type | |||
!colspan="3" style="border-left: 2px solid black;"|output | !colspan="3" style="border-left: 2px solid black;"|output | ||
!colspan="6" style="border-left: 2px solid black;"|Joypad 1 | !colspan="6" style="border-left: 2px solid black;"|Joypad 1 | ||
Line 63: | Line 8: | ||
!style="border-left: 2px solid black;"|audio output | !style="border-left: 2px solid black;"|audio output | ||
|- | |- | ||
|style="text-align: left;"|signal | |||
!style="border-left: 2px solid black;"|OUT2 | !style="border-left: 2px solid black;"|OUT2 | ||
!OUT1 | !OUT1 | ||
Line 82: | Line 28: | ||
|access method | |access method | ||
|colspan="3" style="text-align: center; border-left: 2px solid black;"|write $4016 | |colspan="3" style="text-align: center; border-left: 2px solid black;"|write $4016 | ||
|style="border-left: 2px solid black;"|<ref>/OE1 is activated by reading $4016</ref> | |style="border-left: 2px solid black;"|<ref>/OE1 is activated by reading $4016.</ref> | ||
|colspan="5" style="text-align: center; border-left: 2px solid gray;"|read $4016 | |colspan="5" style="text-align: center; border-left: 2px solid gray;"|read $4016 | ||
|style="border-left: 2px solid black;"|<ref>/OE2 is activated by reading $4017</ref> | |style="border-left: 2px solid black;"|<ref>/OE2 is activated by reading $4017.</ref> | ||
|colspan="5" style="text-align: center; border-left: 2px solid gray;"|read $4017 | |colspan="5" style="text-align: center; border-left: 2px solid gray;"|read $4017 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
!style="text-align: left;"|available | !style="text-align: left; border-top: 2px solid black;"|available on these ports | ||
!colspan="3" style="border-left: 2px solid black;"| | !colspan="3" style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!colspan="5" style="border-left: 2px solid gray;"| | !colspan="5" style="border-left: 2px solid gray; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!colspan="5" style="border-left: 2px solid gray;"| | !colspan="5" style="border-left: 2px solid gray; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
|- | |- | ||
| | |Controller port 1 (AV Famicom) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE1 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
|D0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 114: | Line 60: | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|Famicom | |Controller port 1 (Famicom (internal)) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE1 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 132: | Line 78: | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Controller port pinout|Controller port]] 1 (NES) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE1 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
|D3 | |||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 150: | Line 96: | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |Controller port 2 (AV Famicom) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 160: | Line 106: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|Famicom | |Controller port 2 (Famicom (internal)) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | |D2 | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Controller port pinout|Controller port]] 2 (NES) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 196: | Line 142: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
|D3 | |||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Expansion port#Famicom|Expansion port]] (Famicom) | ||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid black;"| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | |D1 | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
| | |D3 | ||
| | |D2 | ||
| | |D1 | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black; text-align: center;"|AUDIO | ||
|- | |||
|[[Expansion port#NES|Expansion port]] (NES) | |||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
|D0 | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
|D0 | |||
|style="border-left: 2px solid black; text-align: center;"|AUDIO | |||
|- | |- | ||
!style="text-align: left;"|used by | !style="text-align: left; border-top: 2px solid black;"|used by these devices | ||
!colspan="3" style="border-left: 2px solid black;"| | !colspan="3" style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!colspan="5" style="border-left: 2px solid gray;"| | !colspan="5" style="border-left: 2px solid gray; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
!colspan="5" style="border-left: 2px solid gray;"| | !colspan="5" style="border-left: 2px solid gray; border-top: 2px solid black;"| | ||
!style="border-left: 2px solid black;"| | !style="border-left: 2px solid black; border-top: 2px solid black;"| | ||
|- | |- | ||
|[[Standard controller|Controller]] 1 | |[[Standard controller|Controller]] (port 1)<ref name="port">Controllers using NES ports can be plugged into either port, using that port's /OE and data lines. However, games may expect a controller to only be in a specific port.</ref> | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE1 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 266: | Line 212: | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|[[Standard controller|Controller]] 2 | |[[Standard controller|Controller]] (port 2)<ref name="port" /> | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | |D0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Standard controller|Controller]] (Famicom controller 2)<ref>The Famicom controller 2 has a microphone that sends audio input over $4016 D2. This is not affected by OUT0 nor /OE2.</ref> | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | |||
|D2 | |||
| | |||
| | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
|D0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |||
|[[Standard controller|Controller]] (expansion port) | |||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
|style="border-left: 2px solid black;"|<ref>A Famicom expansion controller may connect the audio output signal to a headphone jack (for example: IQ502 joypad).</ref> | | | ||
| | |||
| | |||
|style="border-left: 2px solid black; text-align: center;"|AUDIO<ref>A Famicom expansion controller may connect the audio output signal to a headphone jack (for example: IQ502 joypad).</ref> | |||
|- | |- | ||
| | |[[Arkanoid controller]] (port 2)<ref name="port" /> | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 312: | Line 276: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
|D3 | |||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Arkanoid controller]] (expansion port) | ||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |D1 | ||
| | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
|D1 | |||
| | | | ||
| | |style="border-left: 2px solid black;"| | ||
|- | |||
|[[Arkanoid controller#Arkanoid II expansion port|Arkanoid II controller]] (2 controllers) | |||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
| | |||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Bandai Hyper Shot]] | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|OUT2 | ||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
| | |||
| | |||
| | | | ||
| | |style="border-left: 2px solid black; text-align: center;"|AUDIO | ||
|- | |||
|[[Exciting Boxing Punching Bag]] | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|OUT1 | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | |||
| | | | ||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |||
|[[FAM-NET Keyboard]] | |||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|[[ | |[[Power Pad#Family Trainer Mat|Family Trainer Mat]] | ||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|- | |||
|[[Family BASIC Keyboard]] | |||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 371: | Line 401: | ||
| | | | ||
| | | | ||
| | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|[[ | |[[Famicom 3D System]] | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|OUT1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 384: | Line 420: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Famicom Network Controller|Famicom Network System controller]] | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
Line 402: | Line 444: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |||
|- | |||
|Four player adapter ([[Four Score]]) | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
| | | | ||
| | | | ||
|D0 | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
| | |||
|D0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |Four player adapter ([[Four Score|Hori 4 Players Adapter]]) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|- | |||
|[[Hori Track]] | |||
|style="border-left: 2px solid black;"| | |||
| | | | ||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
| | | | ||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |- | ||
| | |[[Jissen Mahjong controller]] | ||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
|style="border-left: 2px solid black;"| | | | ||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|- | |- | ||
| | |[[Konami Hyper Shot]] | ||
|style="border-left: 2px solid black;"|OUT2 | |||
|OUT1 | |||
| | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |||
|[[Oeka Kids tablet]] | |||
|style="border-left: 2px solid black;"| | |||
|OUT1 | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |||
|D3 | |||
|D2 | |||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |||
|- | |||
|[[Coconuts Japan Pachinko Controller|Pachinko controller]] | |||
|style="border-left: 2px solid black;"| | |||
| | | | ||
|style="border-left: 2px solid black;"| | |OUT0 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid black;"|/OE1 | ||
|style="border-left: 2px solid gray;"| | |||
| | | | ||
| | | | ||
|D1 | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|- | |- | ||
|[[ | |[[Party Tap]] | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | |||
| | | | ||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
|D2 | |||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Power Pad]] (port 2)<ref name="port" /> | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | |OUT0 | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 474: | Line 600: | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"|/OE2 | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
| | |D3 | ||
| | | | ||
| | | | ||
Line 482: | Line 608: | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
| | |[[Port test controller]] | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
| | | | ||
| | | | ||
|D0 | |||
|style="border-left: 2px solid black;"|/OE2 | |||
|style="border-left: 2px solid gray;"|D4 | |||
|D3 | |||
| | |||
| | |||
|D0 | |||
|style="border-left: 2px solid black;"| | |||
|- | |||
|[[TV-NET controller]] | |||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
|D1 | |||
| | |||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | | | ||
|style="border-left: 2px solid black;"| | |||
|- | |||
|[[TV-NET Rank 2 controller]] | |||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
| | | | ||
| | | | ||
| | |D1 | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black;"| | |||
|- | |- | ||
|[[ | |[[Zapper]] (port 2) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"| | ||
Line 511: | Line 673: | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
| | |D3 | ||
| | | | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|- | |- | ||
|[[ | |[[Zapper]] (expansion port) | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
| | | | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
Line 529: | Line 691: | ||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|style="border-left: 2px solid gray;"| | |style="border-left: 2px solid gray;"|D4 | ||
|D3 | |||
| | |||
| | |||
| | |||
|style="border-left: 2px solid black; text-align: center;"|<ref>The Casel Zapper plays audio when the trigger is pulled, but this is done entirely by the controller independent of the console's audio out.</ref> | |||
|- | |||
|[[Zapper]] (Vs. System) (port 1)<ref name="port" /> | |||
|style="border-left: 2px solid black;"| | |||
| | |||
|OUT0 | |||
|style="border-left: 2px solid black;"|/OE1 | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | | | ||
| | | | ||
|D0 | |||
|style="border-left: 2px solid black;"| | |||
|style="border-left: 2px solid gray;"| | |||
| | |||
| | | | ||
| | |||
| | | | ||
|style="border-left: 2px solid black;"| | |style="border-left: 2px solid black;"| | ||
|} | |} | ||
<references/> | <references/> |
Revision as of 05:22, 20 January 2024
Usage of port pins by hardware type
type | output | Joypad 1 | Joypad 2 | audio output | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
signal | OUT2 | OUT1 | OUT0 | /OE1 | D4 | D3 | D2 | D1 | D0 | /OE2 | D4 | D3 | D2 | D1 | D0 | AUDIO |
access method | write $4016 | [1] | read $4016 | [2] | read $4017 | |||||||||||
available on these ports | ||||||||||||||||
Controller port 1 (AV Famicom) | OUT0 | /OE1 | D0 | |||||||||||||
Controller port 1 (Famicom (internal)) | OUT0 | /OE1 | D0 | |||||||||||||
Controller port 1 (NES) | OUT0 | /OE1 | D4 | D3 | D0 | |||||||||||
Controller port 2 (AV Famicom) | OUT0 | /OE2 | D0 | |||||||||||||
Controller port 2 (Famicom (internal)) | OUT0 | D2 | /OE2 | D0 | ||||||||||||
Controller port 2 (NES) | OUT0 | /OE2 | D4 | D3 | D0 | |||||||||||
Expansion port (Famicom) | OUT2 | OUT1 | OUT0 | /OE1 | D1 | /OE2 | D4 | D3 | D2 | D1 | D0 | AUDIO | ||||
Expansion port (NES) | OUT2 | OUT1 | OUT0 | /OE1 | D4 | D3 | D2 | D1 | D0 | /OE2 | D4 | D3 | D2 | D1 | D0 | AUDIO |
used by these devices | ||||||||||||||||
Controller (port 1)[3] | OUT0 | /OE1 | D0 | |||||||||||||
Controller (port 2)[3] | OUT0 | /OE2 | D0 | |||||||||||||
Controller (Famicom controller 2)[4] | OUT0 | D2 | /OE2 | D0 | ||||||||||||
Controller (expansion port) | OUT0 | /OE1 | D1 | AUDIO[5] | ||||||||||||
Arkanoid controller (port 2)[3] | OUT0 | /OE2 | D4 | D3 | ||||||||||||
Arkanoid controller (expansion port) | OUT0 | D1 | /OE2 | D1 | ||||||||||||
Arkanoid II controller (2 controllers) | OUT0 | D1 | /OE2 | D4 | D3 | D1 | ||||||||||
Bandai Hyper Shot | OUT2 | OUT1 | OUT0 | /OE1 | D1 | D4 | D3 | AUDIO | ||||||||
Exciting Boxing Punching Bag | OUT1 | /OE2 | D4 | D3 | D2 | D1 | ||||||||||
FAM-NET Keyboard | OUT2 | OUT1 | OUT0 | D4 | D3 | D2 | D1 | |||||||||
Family Trainer Mat | OUT2 | OUT1 | OUT0 | D4 | D3 | D2 | D1 | |||||||||
Family BASIC Keyboard | OUT2 | OUT1 | OUT0 | D4 | D3 | D2 | D1 | |||||||||
Famicom 3D System | OUT1 | |||||||||||||||
Famicom Network System controller | OUT0 | /OE1 | D1 | |||||||||||||
Four player adapter (Four Score) | OUT0 | /OE1 | D0 | /OE2 | D0 | |||||||||||
Four player adapter (Hori 4 Players Adapter) | OUT0 | /OE1 | D1 | /OE2 | D1 | |||||||||||
Hori Track | OUT0 | /OE2 | D1 | |||||||||||||
Jissen Mahjong controller | OUT2 | OUT1 | OUT0 | /OE2 | D1 | |||||||||||
Konami Hyper Shot | OUT2 | OUT1 | /OE2 | D4 | D3 | D2 | D1 | |||||||||
Oeka Kids tablet | OUT1 | OUT0 | D3 | D2 | ||||||||||||
Pachinko controller | OUT0 | /OE1 | D1 | |||||||||||||
Party Tap | OUT0 | /OE2 | D4 | D3 | D2 | |||||||||||
Power Pad (port 2)[3] | OUT0 | /OE2 | D4 | D3 | ||||||||||||
Port test controller | OUT0 | /OE1 | D4 | D3 | D0 | /OE2 | D4 | D3 | D0 | |||||||
TV-NET controller | OUT0 | /OE1 | D1 | |||||||||||||
TV-NET Rank 2 controller | OUT0 | /OE1 | D1 | |||||||||||||
Zapper (port 2) | D4 | D3 | ||||||||||||||
Zapper (expansion port) | D4 | D3 | [6] | |||||||||||||
Zapper (Vs. System) (port 1)[3] | OUT0 | /OE1 | D0 |
- ↑ /OE1 is activated by reading $4016.
- ↑ /OE2 is activated by reading $4017.
- ↑ 3.0 3.1 3.2 3.3 3.4 Controllers using NES ports can be plugged into either port, using that port's /OE and data lines. However, games may expect a controller to only be in a specific port.
- ↑ The Famicom controller 2 has a microphone that sends audio input over $4016 D2. This is not affected by OUT0 nor /OE2.
- ↑ A Famicom expansion controller may connect the audio output signal to a headphone jack (for example: IQ502 joypad).
- ↑ The Casel Zapper plays audio when the trigger is pulled, but this is done entirely by the controller independent of the console's audio out.