Jump to content
IGNORED

4-player adaptor for ColecoVision?


Pixelboy

Recommended Posts

I stumbled upon the forum thread for Quad-Joust just now, and it got me thinking about a question for tech-savvy ColecoVision fans: Could a four-player adapter be doable on the ColecoVision? Like perhaps map the joystick and buttons of the third and fourth controllers to keypad keys on controller #1 and #2?

 

I think a lot could be done with such a four-player adaptor where all players could play together:

 

- A ColecoVision version of Quad-Joust

- A tank game (like Combat on the 2600)

- A clone of Warlords, with play mechanics that fit joysticks better than paddles

- Sport games (basketball, volleyball, dodgeball, hockey, maybe baseball, etc.)

- A board game, like maybe a clone of Risk, or something more basic like Monopoly

- Four-player Space War

- Four-player Snake/Surround/Tron Light-cycle game

- Racing game à la Indy 500 or Off-Road

- Four-player clone of Duck Hunt (with mobile aiming crosshairs)

- Pac-Man clone of some kind, with four players let loose in a maze

 

I'm sure I'm just scratching the surface here. And with four players, even the most basic games could be extra fun to play.  :)

 

  • Like 3
Link to comment
Share on other sites

19 minutes ago, Pixelboy said:

I stumbled upon the forum thread for Quad-Joust just now, and it got me thinking about a question for tech-savvy ColecoVision fans: Could a four-player adapter be doable on the ColecoVision? Like perhaps map the joystick and buttons of the third and fourth controllers to keypad keys on controller #1 and #2?

 

I think a lot could be done with such a four-player adaptor where all players could play together:

 

- A ColecoVision version of Quad-Joust

- A tank game (like Combat on the 2600)

- A clone of Warlords, with play mechanics that fit joysticks better than paddles

- Sport games (basketball, volleyball, dodgeball, hockey, maybe baseball, etc.)

- A board game, like maybe a clone of Risk, or something more basic like Monopoly

- Four-player Space War

- Four-player Snake/Surround/Tron Light-cycle game

- Racing game à la Indy 500 or Off-Road

- Four-player clone of Duck Hunt (with mobile aiming crosshairs)

- Pac-Man clone of some kind, with four players let loose in a maze

 

I'm sure I'm just scratching the surface here. And with four players, even the most basic games could be extra fun to play.  :)

 

SNARKY REPLIES:

 

* Really? A four-player controller during a pandemic?

 

* You are assuming I have three friends to play with?

 

* I suppose I could train three of my cats to play with me.

Link to comment
Share on other sites

25 minutes ago, Pixelboy said:

I stumbled upon the forum thread for Quad-Joust just now, and it got me thinking about a question for tech-savvy ColecoVision fans: Could a four-player adapter be doable on the ColecoVision? Like perhaps map the joystick and buttons of the third and fourth controllers to keypad keys on controller #1 and #2?

 

I think a lot could be done with such a four-player adaptor where all players could play together:

 

- A ColecoVision version of Quad-Joust

- A tank game (like Combat on the 2600)

- A clone of Warlords, with play mechanics that fit joysticks better than paddles

- Sport games (basketball, volleyball, dodgeball, hockey, maybe baseball, etc.)

- A board game, like maybe a clone of Risk, or something more basic like Monopoly

- Four-player Space War

- Four-player Snake/Surround/Tron Light-cycle game

- Racing game à la Indy 500 or Off-Road

- Four-player clone of Duck Hunt (with mobile aiming crosshairs)

- Pac-Man clone of some kind, with four players let loose in a maze

 

I'm sure I'm just scratching the surface here. And with four players, even the most basic games could be extra fun to play.  :)

 

But seriously...an interesting concept if there was game support for it. But could ColecoVision handle something like that?

Link to comment
Share on other sites

Unfortunately, you can't use all of the keypad and direction keys at the same time. Basically, for each of the 2 controllers, you have 6 input switches. You can divide that into 4 controllers that have 3 switches each, for example: left, right, and fire.

 

If you want more than that, you'll need to use some trickery...

  • You can take advantage of the fact that you normally can't press left and right (or up and down) at the same time (for a standard controller) - in that case, you can add an additional switch that basically presses both at the same time (and you'd be able to check for that). Now you've got 4 switches per 4 players (with some limitations).
  • You can probably get some data out of the spinners, too.
  • You could use some other more complicated timing routines from the controllers. Sort of a parallel to serial converter that takes all the inputs, and sends out a stream of data to the CV.
  • There's also ways you could hook controllers to the cartridge slot or expansion slot - would need additional hardware, of course.
Link to comment
Share on other sites

36 minutes ago, 5-11under said:

Unfortunately, you can't use all of the keypad and direction keys at the same time. Basically, for each of the 2 controllers, you have 6 input switches. You can divide that into 4 controllers that have 3 switches each, for example: left, right, and fire.

 

If you want more than that, you'll need to use some trickery...

  • You can take advantage of the fact that you normally can't press left and right (or up and down) at the same time (for a standard controller) - in that case, you can add an additional switch that basically presses both at the same time (and you'd be able to check for that). Now you've got 4 switches per 4 players (with some limitations).
  • You can probably get some data out of the spinners, too.
  • You could use some other more complicated timing routines from the controllers. Sort of a parallel to serial converter that takes all the inputs, and sends out a stream of data to the CV.
  • There's also ways you could hook controllers to the cartridge slot or expansion slot - would need additional hardware, of course.

Very interesting.  :)  So only one switch per controller is missing to make a 4-way joystick + single fire button configuration possible.

 

What kind of data could be pulled from the spinners? You mean map the fire buttons to interrupts?

 

Link to comment
Share on other sites

9 minutes ago, Pixelboy said:

You can take advantage of the fact that you normally can't press left and right (or up and down) at the same time (for a standard controller) - in that case, you can add an additional switch that basically presses both at the same time (and you'd be able to check for that).

Okay, but let's say you "wire" player 2 and player 4 together on the same cable, how does one distinguish a LEFT motion from player 2 from a LEFT+RIGHT motion from player 4, if they make these motions simultaneously? Is that what you mean by "(with some limitations)"?

 

Link to comment
Share on other sites

Yep, only one missing. Does close count?

 

A lot of these would work (if I'm guessing correctly, and maybe with some limitations)...

- A ColecoVision version of Quad-Joust

- A tank game (like Combat on the 2600)

- A clone of Warlords, with play mechanics that fit joysticks better than paddles

- Sport games (basketball, volleyball, dodgeball, hockey, maybe baseball, etc.)

- A board game, like maybe a clone of Risk, or something more basic like Monopoly

- Four-player Space War [don't know]

- Four-player Snake/Surround/Tron Light-cycle game

- Racing game à la Indy 500 or Off-Road

- Four-player clone of Duck Hunt (with mobile aiming crosshairs)

- Pac-Man clone of some kind, with four players let loose in a maze

 

I haven't worked with programming the spinners for more than a few minutes, so I'm not sure.

Link to comment
Share on other sites

Well, the spinner has to provide directional data somehow (spin left or spin right) so you've got two possible "signals" right there, although I don't know how those signals are transmitted through the joystick port.

 

By the way, four-player Space War would probably work with just left/right/fire controls, but not the Pac-Man clone.  :) 

 

Edited by Pixelboy
Link to comment
Share on other sites

9 minutes ago, Pixelboy said:

Okay, but let's say you "wire" player 2 and player 4 together on the same cable, how does one distinguish a LEFT motion from player 2 from a LEFT+RIGHT motion from player 4, if they make these motions simultaneously? Is that what you mean by "(with some limitations)"?

 

You'd need a double-pole button, to activate the L and R buttons at the same time. In that case you have 3 options, besides none: 1) L, 2) R, and 3) L+R. If L+R is a fire button, then you wouldn't be able to go left and fire at the same time.

 

You could do Pac-Man... L = left, R = Right, L+R = Up, Fire button = down. There might be some issues when transferring to/from the Up direction to the Left or Right, that would have to be managed.

 

The spinners use two magnetic switches, to basically make a square wave. I think the closeness of the two switches allows you to discriminate the direction. Someone else might know the details better.

 

Link to comment
Share on other sites

Okay, but then I'm thinking of the Super Action Controllers. If I remember correctly, the third and fourth fire buttons are like pressing two keypads keys simultaneously.

 

So let's say you have these signal input options:

 

P1 joystick up

P1 joystick down

P1 joystick left

P1 joystick right

P1 orange button

P1 yellow button

P1 blue button

P1 purple button

 

P2 joystick up

P2 joystick down

P2 joystick left

P2 joystick right

P2 orange button

P2 yellow button

P2 blue button

P2 purple button

 

That's 16 signals. If one could somehow map one fire button to P1 spin left, P1 spin right, P2 spin left and P2 spin right, that would add one fire button per controller. Not sure how well the fire buttons would work in practice though. :) 

 

Link to comment
Share on other sites

12 minutes ago, 5-11under said:

The 3rd and 4th fire buttons map out similar to additional keys from the keypad... so you run into trouble when pressing more than one of any of those.

If, for example, player 3's up/down/left/right were mapped to player 1's orange/yellow/blue/purple buttons, that should work as expected, right?

 

By the way, here's a short excerpt from PkK's libcv libraries:

void cvu_spint_handler(uint_fast8_t port0, uint_fast8_t port1)
{
	if(!(port0 & 0x10))
	{
		if(port0 & 0x20)
			cvu_spinners[0]++;
		else
			cvu_spinners[0]--;
	}

	if(!(port1 & 0x10))
	{
		if(port1 & 0x20)
			cvu_spinners[1]++;
		else
			cvu_spinners[1]--;
	}
}

From the above, it can be deduced that the interrupt signal can only specify one direction at a time for each port, so the 4-player adaptor would have to manage that somehow. Would this mean that the adaptor would need its own power source? Not simple...

 

Edited by Pixelboy
Link to comment
Share on other sites

1 hour ago, 5-11under said:

You'd need a double-pole button, to activate the L and R buttons at the same time.

 

Natively yes, but with a couple of diodes it can be done on a single pole...I've already worked this out for the Tutankham Experience Controller I'm working on.  

Link to comment
Share on other sites

After thinking about this for a few minutes, I've had a few ideas, some of which have already been stated, but here's overall what I was thinking here in one place.

 

With a standard hand controllers, you have:

 

Joystick - Left

Joystick - Right

Joystick - Up

Joystick - Down

Fire Button - Left

Fire Button - Right

(12) Keypad Buttons, but only 1 can be pressed at a time, more than 1 pressed at a time can look like other keypad/SA buttons, losing independency.

 

...which can yield you with the simplest 7 contacts to be shared between 2 controllers.  So in the instance of a 4 player game, say playing as 2 teams of 2, each player could could have 3 simple discreet inputs, plus a shared input...think "team shields", or "team super weapon"...or some such concept (or only the "Team Captain" would have access to this 4th input per team).  

 

Then there is the concept of button-press combos, like press both fire buttons simultaneously to perform a different action, such as the Flash Bomb in Tutankham.  With this concept, you could easily get 4 inputs per controller (or more).  Imagine the following:

 

Joystick Left - Rotate ship/tank left

Joystick Right - Rotate ship/tank right

A combination of pressing both Joystick Left & Right simultaneously - Thrust/Move forward

 

...This uses only 2 inputs and gets you 3 separate actions, plus you would still have an easily accessible 3rd input for say firing or the likes...plus a 4th shared input, or a Team Captain input.  Additionally depending on the wiring, with regards to the number of diodes used, this concept allows for the single action to win in the event of a tie, or for the combo action to win out in the event of a tie, depends on what you would want.  I discovered this when wiring my Tutankham controller.  

 

Then there is also the concept of using the keypad as a separate 4-way joystick, in addition to the actual joystick.  And by this I mean a true 4-way joystick, whereas diagonals aren't available.  So let's say you had a game where each player needed 4 directions, plus a button (like Donkey Kong), then in the #1 joystick shared port:

 

P1

Joystick Left - Left

Joystick Right - Right

Joystick Up - Up

Joystick Down - Down

Fire Button Left - Fire Action

 

P2

Keypad 4 - Left

Keypad 6 - Right

Keypad 2 - Up

Keypad 8 - Down

Fire Button Right - Fire Action

 

So this yields 2 separate, 4-way joysticks plus a fire button, per each of the console's 2 controller ports...but again, 4-ways, no diagonals although technically P1 would have diagonal control.

 

It also might be possible with a little wiring trickery and/or diode usage, to use a joystick with both NO & NC contacts, to independently access keypad buttons 1, 3, 7, & 9 without contacting the cardinal directions assigned to 2, 4, 6, & 8 to allow for diagonals, but I would need to do some testing.  

 

As already mentioned, but to reiterate, you get some goofy results when 2 keypad buttons are pressed simultaneously, and the Purple and Blue Super Action buttons are similar to keypad button combo presses, so they are not 2 additional discreet buttons.  

 

This all comes down to my simple understanding of how the ColecoVision sees inputs from keypad buttons and the SA buttons when running a test rom like that on the AtariMax cart.  Its entirely possible that someone with ColecoVision programming knowledge, can say that it's completely possible to read multiple keypad buttons presses (say 2 & 4) to decipher this as Up/Left diagonal, (for all 4 diagonal directions) in which case, then no problem...you'd have (2) 8-way joysticks w/ 1 fire button, per each of the console's 2 controller ports.  

 

So without getting too radical, I would say it's definitely possible for 4 player games, with a few possible control schemes and/or number of available inputs per controller...just depends on how it's all wired.  

 

Then there is the question of the additional hardware in general.  You'd have to start with an adapter box with 2 cables/plugs to plug into the ColecoVision console, which then provides the 4 new ports.  Then is this to work with standard ColecoVision controllers, some other off-the-shelf controller (like a CX-40 or the likes), or are there 4 new controllers to be made to work with the adapter box?

 

Definitely lots of possibilities, just need to determine what the games are, and what sort of controls are necessary for them.  

Link to comment
Share on other sites

1 hour ago, doubledown said:

As already mentioned, but to reiterate, you get some goofy results when 2 keypad buttons are pressed simultaneously, and the Purple and Blue Super Action buttons are similar to keypad button combo presses, so they are not 2 additional discreet buttons.

Thinking about this, in Rocky you use all four SAC buttons actively, but the blue and purple buttons initiate actions (blocking and ducking) which tend to override the other buttons. The same kind of thing can be said about Front Line (I think...). Does this mean that if you press both the blue and purple buttons simultaneously, only one of them is actually detected as pressed by the ColecoVision? That's pretty wild if that's the case, I never realized this. I'll need to test this on real hardware the next chance I get, with a SAC controller tester program.  :)

 

1 hour ago, doubledown said:

Then there is the question of the additional hardware in general.  You'd have to start with an adapter box with 2 cables/plugs to plug into the ColecoVision console, which then provides the 4 new ports.  Then is this to work with standard ColecoVision controllers, some other off-the-shelf controller (like a CX-40 or the likes), or are there 4 new controllers to be made to work with the adapter box?

You could theoretically plug four CX-40s, or four stock ColecoVision controllers. The result would be the same, because the adaptor would only take signals from the joysticks and left buttons, and ignore the keypads and the right buttons.

 

Anyway, here's an idea: If you can only get 4 switches per controller, how about mapping the 4th switch to both the fire button and down on the joystick? In a Pac-Man clone, down/fire would be interpreted as joystick down (because the fire button isn't meant to be used in that game) but in a Combat clone, down/fire would be interpreted as a fire button press, which means the tank would fire if you either tap the joystick down or press the fire button.

 

Edited by Pixelboy
Link to comment
Share on other sites

I just checked Rocky with a legit SAC.

 

When you press Purple, you block, when you press Blue, you duck.

 

If you're pressing and holding either one, then press the other, you maintain doing what the first one was doing.  So if you were holding block, then you press duck, you do not duck, you remain blocking.

 

If you press both at the same time, neither happens...if you press them simultaneously.

 

Remember if only counting on 1 keypad press (so no confusion when 2 keypad buttons are pressed), you get a total of 7 inputs, not 4 each (8 separate), 1 would/could be shared.  So if the 4th switch was fire in a tank game, then when either of the 2 controllers plugged into the P1 port pressed this, both ships would fire...unless you were counting on the 2-button combo-press scenario I mentioned.  

Link to comment
Share on other sites

 

13 minutes ago, doubledown said:

I just checked Rocky with a legit SAC.

 

When you press Purple, you block, when you press Blue, you duck.

 

If you're pressing and holding either one, then press the other, you maintain doing what the first one was doing.  So if you were holding block, then you press duck, you do not duck, you remain blocking.

 

If you press both at the same time, neither happens...if you press them simultaneously.

 

Thanks for checking, but this behavior in Rocky could simply be linked to the way to game is programmed, and is not directly indicative of what the SAC can and cannot do in terms of button presses. A proper controller tester/diagnostic tool can provide more precise answers to our questions.

 

13 minutes ago, doubledown said:

So if the 4th switch was fire in a tank game, then when either of the 2 controllers plugged into the P1 port pressed this, both ships would fire...unless you were counting on the 2-button combo-press scenario I mentioned.

Yeah, but the thing is, I can't imagine a game where this feature would be useful, and besides, you'd want an adaptor that can be used with several games, so the mapping needs to remain generic enough to be usable by various types of games.

 

Edited by Pixelboy
Link to comment
Share on other sites

1 hour ago, Pixelboy said:

Thanks for checking, but this behavior in Rocky could simply be linked to the way to game is programmed, and is not directly indicative of what the SAC can and cannot do in terms of button presses. A proper controller tester/diagnostic tool can provide more precise answers to our questions.

Agreed.  On the bult-in controller test ROM on the AtariMax cart, when pressing pressing the Purple button the 3rd action button activates on screen.  When pressing the Blue button the 4th action button activates on screen.  When pressing and holding either of these, then pressing and holding the other, it de-activates the one originally being held on (so both are off).  When pressing both simultaneously, neither comes on.  Again could also be due to how it's programmed.  

 

I could imagine a Combat-esque game, 2-on-2, whereas each of 4 players can independently turn and move their tanks forward, as well as fire, then as a team they could share a function (limited use potentially) that either could activate...shields, teleport, super weapon...or the likes.  Again, could all be done a few different ways, truly depending on how many discrete functions can be achieved, and/or how many would be needed.  You really just need to think 4th dimensionally.    ?

Link to comment
Share on other sites

Isn’t the cv reading an 8 bit number? Thrown an arduino in between, probably two actually.  Have player 1 and 3 connected to one arduino, it read the direction from the JS. There are 10 possibilities per JS, nothing, LRUD, diagonals and fire.  Each joystick gets half the byte, which is good for 15 possibilities each.  Arduino hooked up to optocouplers to separate voltages. I think that’s would work. About $15 worth of parts, maybe less

Link to comment
Share on other sites

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...