Jump to content
IGNORED

4-player multi-tap?


gauauu

Recommended Posts

I've been thinking about ideas for some 4-player games, and got wondering if anyone had ever hacked up a 4-player joystick adapter. I searched the web for a bit, and found an article talking about a guy that supposedly made one, but I couldn't find any information about it. Does this type of thing exist?

 

The design I'm churning around in my head would depend on whether or not you can configure SWCHA (with SWACNT) to have some bits/pins to be input while others set to output (all the examples I've seen have it set either to $00 or $FF to make the entire register read or write, but never some partial state). My naive implementation would use one of the SWCHA bits to a selector between controllers -- you set it to 0, read a frame of input (you'd have to then map a joystick direction to use one of the INPT pins since you already used a SWCHA pin ) from one controller, then set it to 1 (which would signal to the multitap hardware to report data from the second controller), and read the next controller's input. If you alternated between frames, you could read 2 controllers from each controller port, giving you 4 controllers. (if you're ok reading input every other frame instead of every frame).

 

Are my assumptions totally off, to where this wouldn't work? (Otherwise, I could maybe come up with more complicated systems, using one controller port to signal which controller to read, and the other to multiplex input it, but that sounds a lot more painful).

 

Anyway, just wanted to see if this has been done, or if my thoughts are remotely feasible. (and if anyone knows if you actually can choose input/output on a bit-by-bit level on SWCHA)

 

Thanks!

  • Like 1
Link to comment
Share on other sites

About the bit-by-bit bases on SWCHA. It can be done, I did it to build a link-cable to sync two VCS together, that was using part of a port as output and part as input. No problems. The keypad controller does this also.

 

Greetings,

SvOlli

 

Link to comment
Share on other sites

Would it be possible to program the games to support one of the Sega Genesis multitaps?

 

That's a good question. I haven't spent any time looking at the genesis controller communication, and how their multitap works, so I have no idea. Maybe I'll look into it.

Link to comment
Share on other sites

  • 1 year later...

I've finally gotten back around to this idea, and I have a simple proof-of-concept working, using controller 2 (set to output mode) to drive a multiplexer that selects between 4 different controllers every frame (which are read via the first controller port). I'll post more about it as I go (right now, I've only wired up the "go left" switch on a breadboard, so it's hard to show off) but I've got a few goals that I'm working towards here:

 

1. I'm making a 4-player Joust adaptation to demo alongside it, so there will be something fun to play with it. (the game is 80% finished, but there's a few bugs still and tweaks to make)

2. If all goes well, I hope to make a plan to build and sell these as low-cost as possible, so enough will exist to make it worth others writing games for it. (although I have no experience with actual hardware production, so we'll see what happens)

3. To help with that goal making it available for other developers, I'll post sample code, and release a super-simple batari basic module to make it easy for other developers to use.

 

I've also made a forked version of stella that includes an option to emulate my design, so you can test on stella instead of having to test on hardware (although I make no promises about 100% accuracy of the emulation of the new controller in my fork). I'll distribute that (and/or offer my code back to mainline) when things get further along.

 

I realize I don't have much to show yet, so here's a picture of tests of 4-player joust on my Atari. (although I guess only 3 players are visible in that screenshot!)

post-39949-0-08930400-1503980784_thumb.jpg

  • Like 5
Link to comment
Share on other sites

  • 2 weeks later...

Have you considered controlling port selection via paddle input lines, using the 2600 grounding/charging as the selection mechanism? There's already some precedent for this, with the genesis 2-button hacks. At a minimum this means you could make a duo-joystick tap run off one port, and the 2600 joystick reading code would be only slightly different from regular joystick read code.

 

You could also get three sticks from one port if you use a different (higher) pull-up resistor value on a second paddle line, which would also be connected to your controller multiplexer; the 2600 game could read one stick while grounding the paddle lines, a second stick after releasing ground (one paddle line almost immediately high, thanks to the low resistance pull-up), and a third stick after waiting X cycles (second paddle line now high after delay, thanks to the high resistance pull-up). The bonus here, in addition to trading the extra joystick cable for a couple 2 cent resistors, is that you would have the second 2600 port free for the 4th player, SaveKey/AtariVox, or whatever. Here too, there would be fairly minimal 2600 code difference between a normal 2x joystick read routine and a 4x joystick read routine.

 

I suggest all of this with due apologies; It seems you're pretty far along for entertaining fundamental design suggestions, but I just discovered your efforts here via the Quad-Joust thread.

  • Like 1
Link to comment
Share on other sites

Have you considered controlling port selection via paddle input lines, using the 2600 grounding/charging as the selection mechanism? There's already some precedent for this, with the genesis 2-button hacks. At a minimum this means you could make a duo-joystick tap run off one port, and the 2600 joystick reading code would be only slightly different from regular joystick read code.

.....SaveKey/AtariVox, or whatever.

 

That's a clever idea. I had thought of doing 2 joysticks off a single port like that, but not 3. With 2, a lot of the advantages you mentioned weren't there (Still needed 2 joystick cables, etc). But with 3 on a port, I can definitely see the advantage.

 

I suggest all of this with due apologies; It seems you're pretty far along for entertaining fundamental design suggestions, but I just discovered your efforts here via the Quad-Joust thread.

No worries, I appreciate the idea (particularly because it has actual advantages, both in terms of per-unit cost, and in terms of what you can do with it in the future. Just removing a joystick cable and a joystick port would bring the price down by a good percentage) I'll give it some thought. I only have a single working prototype now -- so now is definitely the time to brainstorm other solutions instead of after I send something off to have PCBs made. And any changes on the programming side would be extremely minimal.

  • Like 1
Link to comment
Share on other sites

:ponder: if you're limiting it to 4 joysticks you could set half of the right port to input and map those lines for 2 extra fire buttons for each player.

 

That's a fun idea. What "standards" exist for 3-button controllers? I know people Genesis controllers -- is there anything else floating around that's commonly used?

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...