+batari Posted August 10, 2011 Share Posted August 10, 2011 I was thinking of an easy way to allow four joysticks on the 2600. It would have to be simple enough so people could create their own cables, and at least one joystick would be reverse-compatible with existing games so it could be left plugged in. It should require as few parts as possible. So my thought was that two joysticks could be connected straight-through to a single port with a DE9 splitter cable (these are available for just a few dollars.) The cable would only need pin 8 to each joystick snipped, and the first one could be wired directly to pin 5 from the console (with a pullup resistor), while the other would need an inverted pin 5. To do the inversion, you could use an inverter chip or an ordinary bipolar transistor with pullup (pin 5 to base, emitter to ground, collector to pin 8 on the second joystick, with the pullup resistor on this line.) Normally, the second joystick would be active and would work with most existing games. To read from the first joystick, you will need the paddle cap discharged by writing D6=1 to VBLANK. Doing so will briefly enable the second joystick by putting ground on its ground pin. You need to read SWCHA once and store the value as the joystick won't be enabled for long since the pullup on pin 5 should be sized such that cap will be rapidly charged, as once charged you can read the other joystick. Do you think this would work? Is there an easier way to do this (that is, with fewer parts?) Quote Link to comment Share on other sites More sharing options...
PAC-MAN-RED Posted August 28, 2011 Share Posted August 28, 2011 (edited) While I was pouring over pages about Paddles and Joysticks trying to find data for my Paddle as Joystick controller (I'll be posting this somewhere in the Forums soon... yes for reals), I found a few discussions about hooking up Four Joysticks to have Four player games on the 2600. So here we go: Four-Player Joystick games? by almightytodd http://www.atariage.com/forums/topic/105756-four-player-joystick-games/page__p__1282133#entry1282133 almightytodd was very happy to add a Nintendo Wii to his life and is probably right now enjoying all those Four Player games with his friends. His only downfall is that He can't seem to properly put Image files in his posts... sad really... Paired Joysticks by trucker_monkey http://www.atariage.com/forums/topic/152986-paired-joysticks/page__view__findpost__p__1872362 When this Civil/Hydrological/Geological Engineer was a kid he had childhood aspirations of 4-Player Combat. However, these days he's forgetting that we need to move diagonal and that he has to try the codebreaker key-combination's near the statue of Mary inside the church. Lets all hope that 2012 is his year. Ive got it! by Cupcakus http://www.atariage.com/forums/topic/14493-ive-got-it/ There must be a condition where one can't move diagonally, because Cupcakus, like trucker_monkey, is also afflicted with it. I guess he's right... He's got it! Although Cupcakes condition only cost him $3 dollars, it looks like trucker_monkeys' was free. Post #16 by Eckhard Stolberg This has an interesting link in it which still works amazingly enough, but if you can't read Czech I guess you're out of luck. Kidding! Here's a translated link: http://translate.google.com/translate?hl=en&sl=cs&tl=en&u=http%3A%2F%2Fraster.infos.cz%2Fatari%2Fhw%2Fmultijoy.htm In conclusion I can honestly say I didn't learn anything from all this... oh wait! I take that back. I did learn one thing: Don't talk with your mouthful... wait for it to be empty BEFORE you put your foot in it. Illya Edited August 28, 2011 by PAC-MAN-RED Quote Link to comment Share on other sites More sharing options...
Yart Posted September 1, 2011 Share Posted September 1, 2011 Is it possible to install controller ports into a game cartridge itself, similar to a J-Cart for the Genesis? (Used in Micro Machines) Quote Link to comment Share on other sites More sharing options...
PAC-MAN-RED Posted September 1, 2011 Share Posted September 1, 2011 Is it possible to install controller ports into a game cartridge itself, similar to a J-Cart for the Genesis? (Used in Micro Machines) That's a good idea. I looked at the FAQ where it has the cartridge pinouts and I'd have to say it is possible. However, it might be alot of work depending on what parts would be needed to build it, and how much coding skill would be needed program it though. If some one else with more knowledge on this subject jumps in, they can perhaps shed more light on your idea. Illya Quote Link to comment Share on other sites More sharing options...
Wickeycolumbus Posted September 1, 2011 Share Posted September 1, 2011 (edited) Is it possible to install controller ports into a game cartridge itself, similar to a J-Cart for the Genesis? (Used in Micro Machines) That's a good idea, there could be a pass-through cartridge (similar the 7800 HSC) with a couple controller ports on it. The only down side would be that if the cord gets pulled, it could mess up the cartridge connection crashing the game. Edited September 1, 2011 by Wickeycolumbus Quote Link to comment Share on other sites More sharing options...
+batari Posted September 1, 2011 Author Share Posted September 1, 2011 It's possible to install in the cart, but expensive - needs cutting, a new board, ports, etc. And, it would only work for that one cart. I'm more looking for a universal solution that is possible for someone with minimal skills to build, uses minimal parts and is reverse-compatible with existing games without having to unplug controllers. It kind of has to be this way if anyone is going to create any games using 4 players. The other ideas shown above all have fatal flaws - analog (resistive) schemes don't work due to the difficulty in reading them. Eckhard's is the closest to my idea but is overly complex and requires unplugging to use the second controller normally. I think mine is a lot like Eckhard's except mine just multiplexes two controllers per port and does not require 5 diodes per joystick. Though interestingly, the application I had in mind was the same as some others - I recently played multiplayer Bomeberman and had a blast! Does anyone see any reason why mine wouldn't work, or something easier (it currently would require one transistor and two resistors per port and a commonly-available MMF DE9 splitter cable.) Quote Link to comment Share on other sites More sharing options...
Stephen Moss Posted September 2, 2011 Share Posted September 2, 2011 batati, I would of replied sooner but needed to spend some time looking at the schematics listed on AA to make sure I understoond how the Joysticks/paddles worked apart from them being the Atari standard of active Low. I think you idea could work with a little modification... 1) Use a MOSFET not a Bipolar transitor, ZVN4306A would be a good choice as it is designed for logic level gate drive, Drain goes to the relevent Joysticks Pin 8 and the Source goes to Ground (0V) as per your original concept. 2) Connect a resistor from Pin 7 (+5V) on one Joystick to pin 5 and the Gate of its FET and repeat on the second Joystick but using pin 9. This way you can select the Joystick being read by discharging the appropriate Paddle Cap (Left, pin 5 or Right, pin 9). Note: As the FET is on with its gate at logic High (=>2.5V) the one not being discharged will be the one being read. However I don't think it would be easy to modify the splitter cable itself which is what you appeared to be suggesting, a small PCB would probably be required either at the split end of the splitter cable (one for each Joystick) or one that plugs directly into the 2600 Joystick port with connectons for two Joystick on it. Another option would be to make the modification to the Joysticks themselves, provided that non paddle games do not try to discharge the paddle caps at any time the paddle cap will charge shortly after power up thus enabling the Joystick and apart from that small delay it it should then operate just like a standard Joystick and you you would need is a standard splitter cable plus 1 reisistor and one MOSFET per Joystick. Quote Link to comment Share on other sites More sharing options...
Yart Posted September 2, 2011 Share Posted September 2, 2011 That's a good idea. I looked at the FAQ where it has the cartridge pinouts and I'd have to say it is possible. However, it might be alot of work depending on what parts would be needed to build it, and how much coding skill would be needed program it though. If some one else with more knowledge on this subject jumps in, they can perhaps shed more light on your idea. Illya Cool. For educational purposes (I'd really love to learn more about this system), how can you tell if it's possible through those schematics? In fact, what documentation should I read to help me better understand them? @Wicky: I like the passthrough cartridge idea even more! And yea it would be a pain if someone yanked, but I wouldn't think it would happen TOO often now eh? Quote Link to comment Share on other sites More sharing options...
+batari Posted September 2, 2011 Author Share Posted September 2, 2011 batati, I would of replied sooner but needed to spend some time looking at the schematics listed on AA to make sure I understoond how the Joysticks/paddles worked apart from them being the Atari standard of active Low. I think you idea could work with a little modification... 1) Use a MOSFET not a Bipolar transitor, ZVN4306A would be a good choice as it is designed for logic level gate drive, Drain goes to the relevent Joysticks Pin 8 and the Source goes to Ground (0V) as per your original concept. 2) Connect a resistor from Pin 7 (+5V) on one Joystick to pin 5 and the Gate of its FET and repeat on the second Joystick but using pin 9. This way you can select the Joystick being read by discharging the appropriate Paddle Cap (Left, pin 5 or Right, pin 9). Note: As the FET is on with its gate at logic High (=>2.5V) the one not being discharged will be the one being read. However I don't think it would be easy to modify the splitter cable itself which is what you appeared to be suggesting, a small PCB would probably be required either at the split end of the splitter cable (one for each Joystick) or one that plugs directly into the 2600 Joystick port with connectons for two Joystick on it. Another option would be to make the modification to the Joysticks themselves, provided that non paddle games do not try to discharge the paddle caps at any time the paddle cap will charge shortly after power up thus enabling the Joystick and apart from that small delay it it should then operate just like a standard Joystick and you you would need is a standard splitter cable plus 1 reisistor and one MOSFET per Joystick. Thanks for your input. I thought I should mention that there are a few wrinkles. The paddle ports do not charge in a reasonable amount of time (like a few frames, if at all) without a pullup on each. So this adds a gate resistor to a MOSFET. Second, joysticks do not have conductors for pins 5 and 9 so it's not possible to put parts inside unless you replace the whole cable. I agree that cutting the splitter cable may be tough as you may not know what color wire corresponds to each conductor. However if many were purchased in bulk, a sacrificial cable could be used to find the proper wires. But I like your idea of joystick mods so much that I think that's one direction I will take this as an alternative. So the splitter could alternatively replace joystick cables with parts added to one of them. Now that you say it, a MOSFET may be a better choice than a bipolar even if it doesn't save anything. But a single device should be able to control both, and one joystick would still work with existing games, correct? Quote Link to comment Share on other sites More sharing options...
PAC-MAN-RED Posted September 4, 2011 Share Posted September 4, 2011 That's a good idea. I looked at the FAQ where it has the cartridge pinouts and I'd have to say it is possible. However, it might be alot of work depending on what parts would be needed to build it, and how much coding skill would be needed program it though. If some one else with more knowledge on this subject jumps in, they can perhaps shed more light on your idea. Illya Cool. For educational purposes (I'd really love to learn more about this system), how can you tell if it's possible through those schematics? Through the cartridge port you have access to three things that any electronic circuit needs that's plugged into the 2600: 1) Voltage to bring your circuit to life. 2) Ground which is needed for certain electronics to function. 3) Communication with the CPU. In fact, what documentation should I read to help me better understand them? There are documentation sites listed at Atariage, though most of them seem to lead to a 404 error: http://www.atariage.com/2600/programming/index.html The tutorials help quite a bit too, and some were written by active members on the forum: http://www.atariage.com/2600/programming/2600_101/ And of course there's always throwing your question into a search engine to see what you find. Illya Quote Link to comment Share on other sites More sharing options...
Stephen Moss Posted September 5, 2011 Share Posted September 5, 2011 Thanks for your input. I thought I should mention that there are a few wrinkles. The paddle ports do not charge in a reasonable amount of time (like a few frames, if at all) without a pullup on each. So this adds a gate resistor to a MOSFET. Second, joysticks do not have conductors for pins 5 and 9 so it's not possible to put parts inside unless you replace the whole cable. Doh! How did I miss NC to Joystick Pins 5 & 9, otherwise a flawless plan. As for the pull up I covered that in number 2 of my original post, see attachment. I agree that cutting the splitter cable may be tough as you may not know what color wire corresponds to each conductor. However if many were purchased in bulk, a sacrificial cable could be used to find the proper wires. While that is an issue I thinking more of... a) How it could be done and look neat and b) how easy it would be for the average person to do as you initially stated you wanted it easy enough for people to make their own. Which is why I suggested a PCB at one end of the cable (would have to be VCS end as no pin 5 & 9 connection in the Joystick cable), admittedly not everyone can produce a PCB but I believe some people here have the facilites do do them at home or someone can get them made professionallyand either sell bare boards for peole to assemble or as finished units. But I like your idea of joystick mods so much that I think that's one direction I will take this as an alternative. So the splitter could alternatively replace joystick cables with parts added to one of them. Possible, but if you wire the joysticks directly to the ends of the splitter then... a) if the splitter cable is like the one I had for my ST it will be short so not convienent b) it permantly ties the joysticks together which people may not like If you go for the internal mod I personally would replace the original Joystick cable with one that has all pins wired. Now that you say it, a MOSFET may be a better choice than a bipolar even if it doesn't save anything. But a single device should be able to control both, and one joystick would still work with existing games, correct? MOSFETs are better for this application as they are Voltage controlled, Bipolar are current controlled. I don't see how one device could control both, while it is true that connecting pin 8 of one joystick directly to Pin 5 and pin 8 of the other one via an FET that one is effecively on and the other effectively off there is a problem in that the outpus (Direction and Fire) of both joysticks will always be connected on parallel. Using my method with each joystick connected to ground by an FET this is not a problem as the buttons on the joystick with no connection to ground will float and have no effect on the other Joystick when pressed. With your menthod when the joystick switched by the FET is active pin 8 of the other jostick is connected to Pin5, as a result of this when a button on the "acitive" joystick is pressed it willl effecively connect Pin5 to ground and thus try to discharge the Capacitor which could result in all kinds of undesirable effects including joystick miss reads. Joystick.bmp Quote Link to comment Share on other sites More sharing options...
mimo Posted September 5, 2011 Share Posted September 5, 2011 Have you seen the 8 and 16 joystick interface that is available for the Atari 800xl? Called the multijoy8 or multijoy16, it may help in your quest. Quote Link to comment Share on other sites More sharing options...
mimo Posted September 5, 2011 Share Posted September 5, 2011 http://raster.infos.cz/atari/hw/multijoy.htm Quote Link to comment Share on other sites More sharing options...
Tickled_Pink Posted September 6, 2011 Share Posted September 6, 2011 Well, the simplest design I've seen involved putting resistors between the joystick direction wires and the paddle input. The idea being that the paddle input value would be one of a series of fixed values, depending on which joystick (or series of joystcks) was being used. This approach would allow more than one stick to be read at once. I think the guy who came up with it sent me a 'proto' but I don't know what happened to it (he probably wanted it back). At the time, we were discussing this issue. The solution I put forward was similar but used a DAC to hook the sticks to the pot input. Then multijoy came out and we didn't discuss it further. IIRC multijoy switches between the extra ports. Both methods have their advantages. A switching system is probably easier to support and program for. Quote Link to comment Share on other sites More sharing options...
Tickled_Pink Posted September 6, 2011 Share Posted September 6, 2011 Just taken a look at the multijoy. It only uses 1 IC to switch between each port. It activate's the joystick's power line. From a self build point of view it's not great because of the wiring, unless you're prepared to produce a PCB. Quote Link to comment Share on other sites More sharing options...
+batari Posted September 6, 2011 Author Share Posted September 6, 2011 MOSFETs are better for this application as they are Voltage controlled, Bipolar are current controlled. I don't see how one device could control both, while it is true that connecting pin 8 of one joystick directly to Pin 5 and pin 8 of the other one via an FET that one is effecively on and the other effectively off there is a problem in that the outpus (Direction and Fire) of both joysticks will always be connected on parallel. Using my method with each joystick connected to ground by an FET this is not a problem as the buttons on the joystick with no connection to ground will float and have no effect on the other Joystick when pressed. With your menthod when the joystick switched by the FET is active pin 8 of the other jostick is connected to Pin5, as a result of this when a button on the "acitive" joystick is pressed it willl effecively connect Pin5 to ground and thus try to discharge the Capacitor which could result in all kinds of undesirable effects including joystick miss reads. If I understand it correctly, pin 5 for one joystick and pin 9 for another will not work, unfortunately. The problem is you can only dump all four paddle caps at once, you can't control them individually, so you can't get the needed 0/1 and 1/0 logic levels to read both. You can if you connect pin 5 to the input of the FET, then pin 8 from one joystick here, and pin 8 of the other joystick to the output of the FET. I hadn't thought of the button, but I'm not quite sure I understand why this would be an issue. The ground on the two joysticks is provided by pin 5 and the FET output, respectively, and if one is high, there should be no effect, right? Quote Link to comment Share on other sites More sharing options...
Stephen Moss Posted September 7, 2011 Share Posted September 7, 2011 If I understand it correctly, pin 5 for one joystick and pin 9 for another will not work, unfortunately. The problem is you can only dump all four paddle caps at once. I hadn't thought of the button, but I'm not quite sure I understand why this would be an issue. The ground on the two joysticks is provided by pin 5 and the FET output, respectively, and if one is high, there should be no effect, right? I did not realise that, I though they could be discharged individually. In regard to the button problem image Joystick 2 (attached) shows the circuit for the two joysticks, in this case only the fire switches are shown for simplification, SW1 is for Joystick 1 and SW2 is for Joystick 2. Pin5 = 0V (Paddle Cap discharged): The FET is off and hense very high resistance, effectively open circuit so if SW2 is closed (both players pressing fire at once) it should have no effect on the input voltage at Pin 6, only the switch on the joystick being read (SW1) will pull the voltage at pin 6 down to 0V which is what you want. Pin5 => 2.5V (Paddle Cap charging or charged): The FET is on so SW2 will pull the voltage at Pin6 down to 0V when the fire button is pressed which is what you want. However if both players are pressing fire at the same time then with both switches closed pin 5 is connected to 0V (via SW1 to Pin 6 and then to pin 8 (0V) via SW2). This will try to pull the voltage at pin 5 down to 0V and will cause the circuit to ocsillate as the voltage on pin 5 drops below 2.5V and the FET switches off, with the FET off there is no longer a connection to 0V via SW2 and the Paddle cap start to charge again. Once the voltage on pin 5 is high enough for the FET to switch back on and SW2 (if still pressed) will re-connect it to 0V once again discharging the Paddle cap and the cycle starts again. I hope that has expained the problem clearly enough. Another relevtively simple and low component count solution would be as shown in image Joystick 3 (attached). Both JK flip flops are in the same IC. R1 & C1 will hold the Clear Button low for roughly 0.6 * (C*R) at power up, a few milliseconds should do it, but ensure it is at least twice as long as the time it take the paddle cap the charge (charge resistors not shown). This will make the inital states Q = 0V (Read Joy2 & 4) and Not Q = 5V (Joy1 & 3 floating). Everytime the clock input goes high by discharging the paddle cap and letting it recharge again the output state of Q and not Q will alternate allowing you to alternately read either Joy2 & 4 or Joy1 & 3. Any game that does not discharge the Paddle cap will read Joy2 & 4 only. Note 74LS73 is shown but I would use 74HC73 if you can find one or a 74HC107 (different pin numbers but functionally the same) if you can't. Joystick2.bmp Joystick3.bmp Quote Link to comment Share on other sites More sharing options...
+batari Posted September 7, 2011 Author Share Posted September 7, 2011 If I understand it correctly, pin 5 for one joystick and pin 9 for another will not work, unfortunately. The problem is you can only dump all four paddle caps at once. I hadn't thought of the button, but I'm not quite sure I understand why this would be an issue. The ground on the two joysticks is provided by pin 5 and the FET output, respectively, and if one is high, there should be no effect, right? I did not realise that, I though they could be discharged individually. In regard to the button problem image Joystick 2 (attached) shows the circuit for the two joysticks, in this case only the fire switches are shown for simplification, SW1 is for Joystick 1 and SW2 is for Joystick 2. Pin5 = 0V (Paddle Cap discharged): The FET is off and hense very high resistance, effectively open circuit so if SW2 is closed (both players pressing fire at once) it should have no effect on the input voltage at Pin 6, only the switch on the joystick being read (SW1) will pull the voltage at pin 6 down to 0V which is what you want. Pin5 => 2.5V (Paddle Cap charging or charged): The FET is on so SW2 will pull the voltage at Pin6 down to 0V when the fire button is pressed which is what you want. However if both players are pressing fire at the same time then with both switches closed pin 5 is connected to 0V (via SW1 to Pin 6 and then to pin 8 (0V) via SW2). This will try to pull the voltage at pin 5 down to 0V and will cause the circuit to ocsillate as the voltage on pin 5 drops below 2.5V and the FET switches off, with the FET off there is no longer a connection to 0V via SW2 and the Paddle cap start to charge again. Once the voltage on pin 5 is high enough for the FET to switch back on and SW2 (if still pressed) will re-connect it to 0V once again discharging the Paddle cap and the cycle starts again. I hope that has expained the problem clearly enough. I'm sure you have, but I'm a visual guy so I'll have to draw it out to understand. Another relevtively simple and low component count solution would be as shown in image Joystick 3 (attached). Both JK flip flops are in the same IC. R1 & C1 will hold the Clear Button low for roughly 0.6 * (C*R) at power up, a few milliseconds should do it, but ensure it is at least twice as long as the time it take the paddle cap the charge (charge resistors not shown). This will make the inital states Q = 0V (Read Joy2 & 4) and Not Q = 5V (Joy1 & 3 floating). Everytime the clock input goes high by discharging the paddle cap and letting it recharge again the output state of Q and not Q will alternate allowing you to alternately read either Joy2 & 4 or Joy1 & 3. Any game that does not discharge the Paddle cap will read Joy2 & 4 only. Note 74LS73 is shown but I would use 74HC73 if you can find one or a 74HC107 (different pin numbers but functionally the same) if you can't. This will work but I think it's getting too complex. If you're going to use an IC, instead of a flip-flop, you could just use a single pullup and a 74156 (dual quad demux with open collector output) and this will work for two joysticks per port with no need for FETs at the output, I think. A single chip could work for both ports, actually, but wiring might be a little funky. Quote Link to comment Share on other sites More sharing options...
31336haxx0r Posted September 10, 2011 Share Posted September 10, 2011 How about using paddle input A as the input for a joystick and paddle input B for the trigger alone? Each bit of the 4 direction bits of the joystick would be encoded by resistors to yield an analog voltage. Much like simple resistor based DACs like the Covox: http://upload.wikimedia.org/wikipedia/commons/8/8d/Covox-Stecker.svg Then one will just need to read the paddle from the register and decode them into movement. The advantage is, that it's an inexpensive and non-intrusive way of having 2 joysticks per joystick port. Quote Link to comment Share on other sites More sharing options...
+batari Posted September 11, 2011 Author Share Posted September 11, 2011 The problem with analog solutions is they are a pain to read on the 2600. They are read by measuring the time it takes to charge a cap. You can use low resistances that will complicate programming during blanking periods or use much if the time, and you can't use resistances too low because you need to account for tolerances and differences between consoles. Higher resistances must be read in the display kernel and these hog around 10 cycles per scanline in the kernel while digital solutions have no effect on the kernel. Then, the postprocessing of the analog data is likely to be cumbersome as well. I still haven't tried any ideas out but if I do I will report back. Quote Link to comment Share on other sites More sharing options...
31336haxx0r Posted September 11, 2011 Share Posted September 11, 2011 My god, 10 out of 76 cycles per scanline. There will be almost no time left for the game. 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.