Dual D-Pad Controls (and a minor rant)
Moderator: Moderators
- Jedi QuestMaster
- Posts: 688
- Joined: Thu Sep 07, 2006 1:08 pm
- Location: United States
- Contact:
Dual D-Pad Controls (and a minor rant)
So a minor limitation that some games go through when being converted for the NES (like from arcade) are the limited buttons of the NES. One particular control style I'm interested in is the twin stick of shooter games like Smash TV. I know this game was ported to NES. I've yet to play it. I read somewhere that it has the option to use two gamepads--I'm not interested in that.
What I'm more interested in is either:
A.) Are there any (single) controllers for NES or Famicom that are suitable to use as dual d-pads?
if not, then
B.) If the NES took inputs from a gamepad with more buttons (like the Virtualboy or SNES), how many number of button inputs can the NES register? Like would it be possible to hook up a Fourscore with four NES->SNES gamepad adapters and read all 12 SNES buttons of all four SNES controllers as separate inputs?
and
C.) Has someone made an adapter for such a gamepad for the NES?
Oh yeah, minor rant: Why hasn't an NES gamepad with face buttons like this ever been made? (or has it?) It seems like it would be super useful.
What I'm more interested in is either:
A.) Are there any (single) controllers for NES or Famicom that are suitable to use as dual d-pads?
if not, then
B.) If the NES took inputs from a gamepad with more buttons (like the Virtualboy or SNES), how many number of button inputs can the NES register? Like would it be possible to hook up a Fourscore with four NES->SNES gamepad adapters and read all 12 SNES buttons of all four SNES controllers as separate inputs?
and
C.) Has someone made an adapter for such a gamepad for the NES?
Oh yeah, minor rant: Why hasn't an NES gamepad with face buttons like this ever been made? (or has it?) It seems like it would be super useful.
Re: Dual D-Pad Controls (and a minor rant)
I'm not aware of any controller specifically for the NES or Famicom that has two D-pads. The Virtual Boy controller is the closest thing and has a compatible protocol.
There is no limit on the number of buttons that can be read by the game. The console provides a simple protocol, where up to 3 bits (varies by console and controller port) can be written out at a time to all controllers, up to 5 bits (also varies by console and port) can be read at a time from one controller, and the controller is informed that the read is happening so it can change state for the next read.
All existing 4 player adapters, however, do impose limitations on controllers. All known adapters only pass through 1 bit in each direction, and in 4-player mode, they only allow 8 reads from a single controller per strobe (toggle of the one output bit). That means you can't get all 12 buttons from an SNES controller. 2-player mode would allow this, however. See Four player adapters on the wiki.
There is no limit on the number of buttons that can be read by the game. The console provides a simple protocol, where up to 3 bits (varies by console and controller port) can be written out at a time to all controllers, up to 5 bits (also varies by console and port) can be read at a time from one controller, and the controller is informed that the read is happening so it can change state for the next read.
All existing 4 player adapters, however, do impose limitations on controllers. All known adapters only pass through 1 bit in each direction, and in 4-player mode, they only allow 8 reads from a single controller per strobe (toggle of the one output bit). That means you can't get all 12 buttons from an SNES controller. 2-player mode would allow this, however. See Four player adapters on the wiki.
Re: Dual D-Pad Controls (and a minor rant)
A)
AFAIK the only input devices using more than 2+2 buttons would be special peripherals like the Family BASIC keyboard (72 buttons!) and the Family Trainer mat.
Dual-joystick games like Crazy Climber all seems to use 2-controller-double-fisting.
I think people thought that more than 2 buttons was intimidating during the Famicom era. Before the Famicom popularized a second button for the home market, home-computers typically used the Atari-style 1-button joystick and was happy with it.
3 buttons was getting more common in the arcades (the original JAMMA cabinet connector standard supports up to 3 buttons for each player), and then Sega popularized that with their MD for the home market. I suppose Street Fighter 1 (1987) introduced 6 buttons which was then popularized by both the Super Famicom (1990) and Street Fighter II (1991).
B)
I'm not sure why you would want to use a Fourscore though, there are already NES homebrew that supports the SNES controller and at least a proof-of-concept with the Virtual Boy controller exists. The Famicom/NES, SFC/SNES and Virtual Boy controllers all uses the same basic protocol as Fiskbit said, and all you need is to make a home-made adapter to use them with a Famicom or NES (and write some homebrew that actually uses the extra buttons). A SNES controller should work fine with all existing NES games, and since B is A and Y is B you already get SMW-style controls for Mario games for example.
The SNES multitap and mouse should both work with such an adapter, but you need games that uses them of course, some homebrew supports the mouse at least. The Super Scope or any other SFC light-guns won't work however since they use the "light-pen" feature of the SNES PPU which is missing in the NES PPU. The Zapper is a more traditional light-gun while the Super Scope is more like the Sega Lightphaser and computer light-pens of the time.
AFAIK the only input devices using more than 2+2 buttons would be special peripherals like the Family BASIC keyboard (72 buttons!) and the Family Trainer mat.
Dual-joystick games like Crazy Climber all seems to use 2-controller-double-fisting.
I think people thought that more than 2 buttons was intimidating during the Famicom era. Before the Famicom popularized a second button for the home market, home-computers typically used the Atari-style 1-button joystick and was happy with it.
3 buttons was getting more common in the arcades (the original JAMMA cabinet connector standard supports up to 3 buttons for each player), and then Sega popularized that with their MD for the home market. I suppose Street Fighter 1 (1987) introduced 6 buttons which was then popularized by both the Super Famicom (1990) and Street Fighter II (1991).
B)
I'm not sure why you would want to use a Fourscore though, there are already NES homebrew that supports the SNES controller and at least a proof-of-concept with the Virtual Boy controller exists. The Famicom/NES, SFC/SNES and Virtual Boy controllers all uses the same basic protocol as Fiskbit said, and all you need is to make a home-made adapter to use them with a Famicom or NES (and write some homebrew that actually uses the extra buttons). A SNES controller should work fine with all existing NES games, and since B is A and Y is B you already get SMW-style controls for Mario games for example.
The SNES multitap and mouse should both work with such an adapter, but you need games that uses them of course, some homebrew supports the mouse at least. The Super Scope or any other SFC light-guns won't work however since they use the "light-pen" feature of the SNES PPU which is missing in the NES PPU. The Zapper is a more traditional light-gun while the Super Scope is more like the Sega Lightphaser and computer light-pens of the time.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Dual D-Pad Controls (and a minor rant)
Spookotron and Candelabra: Estoscerro both do this.
Between them they explore possibilities of:
NESDev Wiki: Virtual Boy controller has some links to demos of these games at the bottom.
Between them they explore possibilities of:
- Holding 2 NES controllers sideways
- Super NES 4 buttons as a directional shot
- Virtual Boy controller dual d-pad
NESDev Wiki: Virtual Boy controller has some links to demos of these games at the bottom.
- Jedi QuestMaster
- Posts: 688
- Joined: Thu Sep 07, 2006 1:08 pm
- Location: United States
- Contact:
Re: Dual D-Pad Controls (and a minor rant)
Sounds promising.
Damnit!
Not sure if I made myself clear: I'm working on a 4-player game that I would like to utilize Smash TV arcade controls with: 4x2 d-pads = 8 d-pads or 4 d-pads & 4x4 face buttons.
But if I can't use a fourscore, then that's okay. We'll use something else. Also, just to note, this game won't require a special controller, but I think it plays best with one, and I would really like to try out something like the Virtual Boy's.
On the topic of Virtualboy controllers: aren't these kind of uncommon? I don't suppose many people just happen to have several lying around in their living room? What are the cost of these things? $50? Wouldn't it be more feasible to just create a new gamepad? Also, what's the battery for?
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Dual D-Pad Controls (and a minor rant)
You could potentially use a SNES multitap connected to an NES with an adapter, as long as the adapter wires both D0 and D1, and not just D0.
Otherwise you might make your own adapter to connect 2 SNES controllers into 1 NES port via D0 and D1. The original Famicom could almost do this, if it didn't have two controllers hardwired to D0 already.
The VB controller has batteries to power the VB console itself. That's just where its batteries go. They aren't needed for the controller, and if used with an adapter it can be powered by the console it's attached to instead.
I have no idea how rare VB controllers are. I do suspect that very few people would have 4 of them. Though, because the VB reports its right d-pad in the same place as SNES ABXY maybe you could support them both with the same code. (VB just has two extra buttons A/B next to the right d-pad.)
Otherwise you might make your own adapter to connect 2 SNES controllers into 1 NES port via D0 and D1. The original Famicom could almost do this, if it didn't have two controllers hardwired to D0 already.
The VB controller has batteries to power the VB console itself. That's just where its batteries go. They aren't needed for the controller, and if used with an adapter it can be powered by the console it's attached to instead.
I have no idea how rare VB controllers are. I do suspect that very few people would have 4 of them. Though, because the VB reports its right d-pad in the same place as SNES ABXY maybe you could support them both with the same code. (VB just has two extra buttons A/B next to the right d-pad.)
Re: Dual D-Pad Controls (and a minor rant)
It's been a dream of mine to build an 8-controller multitap (using the same principles as the 4-controller multi-tap). Let's make it happen.Jedi QuestMaster wrote: ↑Wed Aug 10, 2022 10:44 pm 4x2 d-pads = 8 d-pads or 4 d-pads & 4x4 face buttons.
My games: http://www.bitethechili.com
Re: Dual D-Pad Controls (and a minor rant)
^ 8 players on NES, yikes.
VB sales were a tiny 770k, and most are probably scrap by now, so controllers aren't going to be common either. Plus a failed console doesn't really have third parties making accessories.
Four SNES controllers using a cable adapter like rainwarrior described might be easiest. Two SNES controllers going into one NES port. But I recall you also want to support Famicoms, those are going to need something different.
VB sales were a tiny 770k, and most are probably scrap by now, so controllers aren't going to be common either. Plus a failed console doesn't really have third parties making accessories.
Four SNES controllers using a cable adapter like rainwarrior described might be easiest. Two SNES controllers going into one NES port. But I recall you also want to support Famicoms, those are going to need something different.
Re: Dual D-Pad Controls (and a minor rant)
Can you forsake the "same principles as the 4-controller multi-tap"? Because that's a significant barrier. It both effectively prevents using SNES controllers with the multitap, and requires more complicated parts.
If you can, here's a guide for the best that could be done by anyone as long as they're not afraid of a pair of wire strippers, and are willing to buy a bunch of extension cables.
For six NES controllers:
Buy three NES extension cables per port. At least one per port must have all seven wires (the other two cables per port can have only five).
Per port: Connect all +5V together, all ground, all "OUT", all "CLK". https://www.nesdev.org/wiki/Controller_port_pinout
Take each of the D0, D3, and D4 pins on the port that plugs into the NES, and connect them to the D0 pin on each of the jacks for external controllers.
For six SNES controllers:
Buy one NES extension cable with all seven wires per port, and three SNES extension controllers (only five wires) per port. Otherwise the same instructions.
For either on a Famicom:
Buy five NES/SNES extension cables (only five wires) and one DA15 "female" (innie). Use OUT0 specifically. Connect the D0 on each jack to "joypad 1 D1", "joypad 2 D1", "joypad 2 D2", "joypad 2 D3", and "joypad 2 D4". https://www.nesdev.org/wiki/Expansion_port
On an A/V famicom, you can additionally connect "joypad 2 D0", but this won't work on a original model famicom.
Re: Dual D-Pad Controls (and a minor rant)
I had an impractical idea, but an idea none the less:
You can use an 8-button packet to encode two d-pads and 4 face buttons.
RU+RD = RA
RL+RR = RB
LU+LD = LB or Select
LL+LR = LA or Start
...observing that the player cannot press, e.g., RU and RA at the same time, but it's OK because that combination would be difficult to press with one thumb anyway. If you did, however, the face button would take precedence.
For a virtualboy controller, a microprocessor would detect STROBE coming from the NES, and use that to strobe and read the full packet from the VB controller, to convert to the serial packet given to the NES.
To detect whether you have an NES-compatible controller or a dual d-pad controller using the scheme above, you'd ask the player to press START+SELECT. On a standard controller, this reads back as two button presses, but with an encoded controller, this reads back as all four directions pressed at the same time, which is impossible under normal conditions.
You can use an 8-button packet to encode two d-pads and 4 face buttons.
Code: Select all
0 1 2 3 4 5 6 7
Standard | A B Se St Up Dn Lf Rt
Encoded | RU RD RL RR LU LD LL LR
LU RU
LL LR LB | RA RL RR
LD LA | RB RD
RL+RR = RB
LU+LD = LB or Select
LL+LR = LA or Start
...observing that the player cannot press, e.g., RU and RA at the same time, but it's OK because that combination would be difficult to press with one thumb anyway. If you did, however, the face button would take precedence.
For a virtualboy controller, a microprocessor would detect STROBE coming from the NES, and use that to strobe and read the full packet from the VB controller, to convert to the serial packet given to the NES.
To detect whether you have an NES-compatible controller or a dual d-pad controller using the scheme above, you'd ask the player to press START+SELECT. On a standard controller, this reads back as two button presses, but with an encoded controller, this reads back as all four directions pressed at the same time, which is impossible under normal conditions.
Re: Dual D-Pad Controls (and a minor rant)
I meant using the SNES multitap for 4 controllers. But I forgot that it's like the Fourscore and uses two input lines, so it won't work with the exact same adapter I proposed earlier.
For Famicom, connect $4016.D1 and $4017.D1 in the expansion port to the two input lines. For the NES the controller port will be used instead so it's $4016.D0 and $4017.D0. The game must support both methods. I guess that's what Rainwarrior said.
Virtual Boy controllers are not exactly rare but definitely more expensive than most other standard controllers (especially now when retro gaming is popular and prices are high), and probably not something most people have at all.
For Famicom, connect $4016.D1 and $4017.D1 in the expansion port to the two input lines. For the NES the controller port will be used instead so it's $4016.D0 and $4017.D0. The game must support both methods. I guess that's what Rainwarrior said.
Virtual Boy controllers are not exactly rare but definitely more expensive than most other standard controllers (especially now when retro gaming is popular and prices are high), and probably not something most people have at all.
Re: Dual D-Pad Controls (and a minor rant)
SNES multitap requires both two OUT signals - one to restart the shift registers, another to switch between the two pairs of controllers.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Dual D-Pad Controls (and a minor rant)
Oh right, I forgot about that separate IO latch... well I guess you could use half the ports on each of 2 separate SNES multitaps and end up with 4 controllers in total. :S
TBQH I don't know if the readily available SNES adapters actually had D1 anyway, and if you have to build it custom you might as well make the thing lidnariq described.
TBQH I don't know if the readily available SNES adapters actually had D1 anyway, and if you have to build it custom you might as well make the thing lidnariq described.
Re: Dual D-Pad Controls (and a minor rant)
Yeah, it's doesn't have to be the same as the four-score. But I don't care about using SNES controllers once we have 8 controllers going, and it just seemed like a relatively easy way to do it.
This method doesn't scale up to 8 controllers though does it? (or maybe it does and I don't have my brain wrapped around it)For six NES controllers:
My games: http://www.bitethechili.com
Re: Dual D-Pad Controls (and a minor rant)
Ah right I forgot about that programmable I/O pin too. The Famicom expansion port has 3 output pins but the NES controller ports only has OUT0. I guess you would have to use the NES expansion port.
And yeah I think neither pin 5 (D1) nor 6 (PP) are populated in most SNES extension cables, since they are not used by normal controllers and the makers are cheap, so it's hard to make an adapter even for Famicom.
And yeah I think neither pin 5 (D1) nor 6 (PP) are populated in most SNES extension cables, since they are not used by normal controllers and the makers are cheap, so it's hard to make an adapter even for Famicom.