Pixelboy Posted April 18, 2020 Share Posted April 18, 2020 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. 3 Quote Link to comment Share on other sites More sharing options...
jblenkle Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
mumbai Posted April 18, 2020 Share Posted April 18, 2020 Just now, jblenkle said: * I suppose I could train three of my cats to play with me. Or they could train you? Four-player Laser Pointer Chase coming to your ColecoVision... 1 Quote Link to comment Share on other sites More sharing options...
jblenkle Posted April 18, 2020 Share Posted April 18, 2020 Just now, mumbai said: Or they could train you? Four-player Laser Pointer Chase coming to your ColecoVision... They already have me trained....poke, poke...3am...let me out or I'll go pee in the corner... Quote Link to comment Share on other sites More sharing options...
jblenkle Posted April 18, 2020 Share Posted April 18, 2020 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? Quote Link to comment Share on other sites More sharing options...
+5-11under Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 (edited) 1 hour ago, jblenkle said: SNARKY REPLIES: * Really? A four-player controller during a pandemic? OMG! What was I thinking??? Edited April 18, 2020 by Pixelboy Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 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? Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 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)"? Quote Link to comment Share on other sites More sharing options...
+5-11under Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 (edited) 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 April 18, 2020 by Pixelboy Quote Link to comment Share on other sites More sharing options...
+5-11under Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
Serguei2 Posted April 18, 2020 Share Posted April 18, 2020 A module could support 2 additional controllers if it is possible. Quote Link to comment Share on other sites More sharing options...
+5-11under Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 18, 2020 Author Share Posted April 18, 2020 (edited) 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 April 18, 2020 by Pixelboy Quote Link to comment Share on other sites More sharing options...
doubledown Posted April 18, 2020 Share Posted April 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
+5-11under Posted April 19, 2020 Share Posted April 19, 2020 1 hour ago, doubledown said: 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. Oh yes, I see... . Quote Link to comment Share on other sites More sharing options...
doubledown Posted April 19, 2020 Share Posted April 19, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 19, 2020 Author Share Posted April 19, 2020 (edited) 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 April 19, 2020 by Pixelboy Quote Link to comment Share on other sites More sharing options...
doubledown Posted April 19, 2020 Share Posted April 19, 2020 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. Quote Link to comment Share on other sites More sharing options...
Pixelboy Posted April 19, 2020 Author Share Posted April 19, 2020 (edited) 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 April 19, 2020 by Pixelboy Quote Link to comment Share on other sites More sharing options...
+fdr4prez Posted April 19, 2020 Share Posted April 19, 2020 6 hours ago, Pixelboy said: I stumbled upon the forum thread for Quad-Joust just now The hardware for this is discussed here: Quote Link to comment Share on other sites More sharing options...
doubledown Posted April 19, 2020 Share Posted April 19, 2020 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. ? Quote Link to comment Share on other sites More sharing options...
+evg2000 Posted April 20, 2020 Share Posted April 20, 2020 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.