]>
Commit | Line | Data |
---|---|---|
09c8882c | 1 | ------------------------------------------------------------------------------- |
2 | NES Gamepad signalling | |
3 | ------------------------------------------------------------------------------- | |
4 | ||
5 | Synthetically generated NES gamepad signalling. | |
6 | ||
7 | SPI settings are always: | |
8 | ||
9 | Clock polarity = 1 | |
10 | Clock phase = 0 | |
11 | Bit order = msb-first | |
12 | Word size = 8 | |
13 | ||
14 | Chip-select is not used and must not be assigned to any channel. | |
15 | ||
16 | ___ | |
17 | GND |o \ | |
18 | CUP |o o| VCC | |
19 | OUT 0 |o o| D3 | |
20 | D1 |o o| D4 | |
21 | ----- | |
22 | NES Gamepad Connector | |
23 | ||
24 | VCC - Power 5V | |
25 | GND - Ground | |
26 | CUP - Shift register clock (CLK) | |
27 | OUT 0 - Shift register latch (optional) | |
28 | D1 - Gamepad data (MISO) | |
29 | D3 - Data (unused) | |
30 | D4 - Data (unused) | |
31 | ||
32 | Data pins D3 and D4 are not used by the standard game pad but by special | |
33 | controllers like the Nintento Zapper light gun. | |
34 | ||
35 | ||
36 | Logic analyzer setup | |
37 | -------------------- | |
38 | ||
39 | The logic analyzer used was a DreamSourceLab DSLogic Plus (at 10 MHz): | |
40 | ||
41 | Probe NES gamepad | |
42 | ----------------------- | |
43 | 0 OUT 0 | |
44 | 1 D1 | |
45 | 2 CUP | |
46 | ||
47 | ||
48 | a.sr | |
49 | ---- | |
50 | ||
51 | Button press of button 'A'. | |
52 | ||
53 | MISO bits: 01111111 | |
54 | MISO data: 7F | |
55 | Button States: A | |
56 | ||
57 | ||
58 | b.sr | |
59 | ---- | |
60 | ||
61 | Button press of button 'B'. | |
62 | ||
63 | MISO bits: 10111111 | |
64 | MISO data: BF | |
65 | Button States: B | |
66 | ||
67 | ||
68 | select.sr | |
69 | --------- | |
70 | ||
71 | Button press of button 'Select'. | |
72 | ||
73 | MISO bits: 11011111 | |
74 | MISO data: DF | |
75 | Button States: Select | |
76 | ||
77 | ||
78 | start.sr | |
79 | -------- | |
80 | ||
81 | Button press of button 'Start'. | |
82 | ||
83 | MISO bits: 11101111 | |
84 | MISO data: EF | |
85 | Button States: Start | |
86 | ||
87 | ||
88 | north.sr | |
89 | -------- | |
90 | ||
91 | Button press of button 'North'. | |
92 | ||
93 | MISO bits: 11110111 | |
94 | MISO data: F7 | |
95 | Button States: North | |
96 | ||
97 | ||
98 | south.sr | |
99 | -------- | |
100 | ||
101 | Button press of button 'South'. | |
102 | ||
103 | MISO bits: 11111011 | |
104 | MISO data: FB | |
105 | Button States: South | |
106 | ||
107 | ||
108 | west.sr | |
109 | ------- | |
110 | ||
111 | Button press of button 'West'. | |
112 | ||
113 | MISO bits: 11111101 | |
114 | MISO data: FD | |
115 | Button States: West | |
116 | ||
117 | ||
118 | east.sr | |
119 | ------- | |
120 | ||
121 | Button press of button 'East'. | |
122 | ||
123 | MISO bits: 11111110 | |
124 | MISO data: FE | |
125 | Button States: East | |
126 | ||
127 | ||
128 | a_b.sr | |
129 | ------ | |
130 | ||
131 | Button press of button 'A' and 'B'. | |
132 | ||
133 | MISO bits: 00111111 | |
134 | MISO data: 3F | |
135 | Button States: A + B | |
136 | ||
137 | ||
138 | b_select_west.sr | |
139 | ---------------- | |
140 | ||
141 | Button press of button 'B' and 'Select' and 'West'. | |
142 | ||
143 | MISO bits: 10011101 | |
144 | MISO data: 9D | |
145 | Button States: B + Select + West | |
146 | ||
147 | ||
148 | no_button.sr | |
149 | ------------ | |
150 | ||
151 | Controller connected but no button pressed. | |
152 | ||
153 | MISO bits: 11111111 | |
154 | MISO data: FF | |
155 | Button States: No button is pressed | |
156 | ||
157 | ||
158 | unconnected.sr | |
159 | -------------- | |
160 | ||
161 | Gamepad not connected. | |
162 | ||
163 | MISO bits: 00000000 | |
164 | MISO data: 00 | |
165 | Button States: Gamepad is not connected. |