-
Notifications
You must be signed in to change notification settings - Fork 0
Some notes on Mega Drive Controller Pad
pcm720 edited this page Jan 24, 2019
·
5 revisions
- Select idles in HIGH state in official games. Unlicensed "games" like Everdrive and chinese multicarts actually read pads incorrectly, leaving Select pulled down after reading.
- For 3-button mode, Select pulse length is 6-6.5 us. For 6-button mode, Select period is non-uniform and depends on the game.
- For Street Fighter 2, select cycle is as follows:
- Select is active high
- first select pulse (to LOW state) is 25 us
- second (HIGH) is 4.7-5 us
- third (LOW) is 8-9 us
- fourth (HIGH) is 4.7-5 us
- fifth (LOW) is 9-11 us
- sixth (HIGH) is 4.7-5 us
- seventh (LOW) is 25 us
- For Streets of Rage 3:
- Select is active high
- first select pulse (to LOW state) is 10 us
- second (HIGH) is 6.2 us
- third (LOW) is 7.3 us
- fourth (HIGH) is 6.25 us
- fifth (LOW) is 7.3 us
- sixth (HIGH) is 6.25 us
- seventh (LOW) is 7 us
- 6-button Select cycle length is around 50-100 us (50 for Streets of Rage 3, 84 for Street Fighter 2)
- Pad internal reset is 2 ms (according to SEGA specifications on 6-button pad)
- Some 3-button pad-only games pulse Select line multiple times in 2 ms interval, triggering 6-button pad to output more than two states.
For example, Ms. Pac-Man pulses Select line thrice in 100 us interval. This behaviour is considered incorrect. These pulses can be ignored by delaying for more than 100 us after the first level change. - It takes ~200-600 ns for 6-button pad to update its output after Select level change.
- If you need to read only A/B/C/Start, you can pretend that 6-button controller doesn't exist thanks to SEGA's approach
State | Select (TH) | Up | Down | Left | Right | TL | TR |
---|---|---|---|---|---|---|---|
0 | High | Up | Down | Left | Right | B | C |
1 | Low | Up | Down | LOW | LOW | A | Start |
State | Select (TH) | Up | Down | Left | Right | TL | TR |
---|---|---|---|---|---|---|---|
0 | High | Up | Down | Left | Right | B | C |
1 | Low | Up | Down | LOW | LOW | A | Start |
2 | High | Up | Down | Left | Right | B | C |
3 | Low | Up | Down | LOW | LOW | A | Start |
4 | High | Up | Down | Left | Right | B | C |
5 | Low | LOW | LOW | LOW | LOW | A | Start |
6 | High | Z | X | Y | Mode | B | C |
7 | Low | — | — | — | — | A | Start |