Jump to content
gauauu

Joystick multiplexer help

Recommended Posts

Well, I think he's trying to stick with the single port for joysticks setup though, so that port 2 can run the WOR sound module. But maybe I misunderstood. If you want to multiplex the 4 joysticks on port 1, then you'll need the decoder and 2 select lines. I guess one can be a pass-through from the WOR module though. I do have a dim recollection that you couldn't do a 4-way select from a single port due to some limitation...

Nathan and I are debating about this; 4 joysticks with 2 buttons each using 2 ports or 4 joysticks/ 1 button 1 port. I have plans on making 4 player games that will need the AtariVox/Saveky functionality (specifically sports games) so I'm leaning towards 4 joysticks/1 button on 1 port.

 

In a post above I had asked about the possibility of adding a switch that would toggle between 2 joystick/2 button and 4 joystick/1 button mode so the multi-tap could in theory support either (2 joystick/2 button would only use 1 select line, freeing up the other 6 pins for UDLR and 2 buttons while 4 joystick/1 button mode would use 2 select lines and the other 5 would be UDLR and 1 button). Of course that's all 'pie in the sky' thinking so I'm sure we'll land somewhere in the middle. I know it was discussed above, but concerning this new design, are there suggestions on how we could multi-purpose a pin from the Atari to be either an input (for button 2) or an output (select line) using a physical switch?

 

Nathan's 4 joystick design is basically 2 separate 2 joystick designs, each connected to 1 port, but for some reason they were connected. Perhaps he is using 1 select line for both like Stephen recommends above.

Share this post


Link to post
Share on other sites

Yeah, I had used conceptually 2 separate 1-to-2 splitters, but kept a single select line going through a single inverter just to simplify the circuit.

  • Like 1

Share this post


Link to post
Share on other sites

Nathan and I are debating about this; 4 joysticks with 2 buttons each using 2 ports or 4 joysticks/ 1 button 1 port. I have plans on making 4 player games that will need the AtariVox/Saveky functionality (specifically sports games) so I'm leaning towards 4 joysticks/1 button on 1 port.

 

In a post above I had asked about the possibility of adding a switch that would toggle between 2 joystick/2 button and 4 joystick/1 button mode so the multi-tap could in theory support either (2 joystick/2 button would only use 1 select line, freeing up the other 6 pins for UDLR and 2 buttons while 4 joystick/1 button mode would use 2 select lines and the other 5 would be UDLR and 1 button). Of course that's all 'pie in the sky' thinking so I'm sure we'll land somewhere in the middle. I know it was discussed above, but concerning this new design, are there suggestions on how we could multi-purpose a pin from the Atari to be either an input (for button 2) or an output (select line) using a physical switch?

 

Nathan's 4 joystick design is basically 2 separate 2 joystick designs, each connected to 1 port, but for some reason they were connected. Perhaps he is using 1 select line for both like Stephen recommends above.

I see. Well I don't have a full design in mind, but the switch idea would work with the 2-line decoder. What you would do, conceptually, is this:

 

In one position, Atari pin for select (whatever you use) goes to the second line on the decoder. In the other position, that pin is pulled low. This allows you to use either 4 ports or 2.

 

The switch would have 2 poles and 2 throws. On the other pole, the outputs from the buffers for button 2 go to the Atari pin for 2-joystick mode. Maybe through a small resistor in case both Atari and the switch box want to be outputs, so they don't fight too hard.

Edited by ChildOfCv
  • Like 2

Share this post


Link to post
Share on other sites
On 6/14/2019 at 6:00 PM, ChildOfCv said:

Well I don't have a full design in mind, but the switch idea would work with the 2-line decoder.  What you would do, conceptually, is this:

 

In one position, Atari pin for select (whatever you use) goes to the second line on the decoder.  In the other position, that pin is pulled low.  This allows you to use either 4 ports or 2.

 

The switch would have 2 poles and 2 throws.  On the other pole, the outputs from the buffers for button 2 go to the Atari pin for 2-joystick mode.  Maybe through a small resistor in case both Atari and the switch box want to be outputs, so they don't fight too hard.

Update:  I finally had a few hours and put the circuit together with 2 of the octal buffers with the resister packs on the inputs, 1 inverter using 1 select line and it worked like a charm! :)  I'm not seeing any interferencebut I'll need to test some more.  It does work with Genesis controllers without any issue (the 2nd button isn't even wired up so that makes sense).  One odd thing I noticed is that in my first tests everything worked, but after reviewing the circuit I realized I hadn't hooked up VCC to one of the octal buffers yet it seemed to work either with/without it.  I did have VCC hooked up to the DIR pin for A->B and the output enable line hooked up so maybe VCC got fed to the chip through one of those?  

 

I ordered the decoders and will try to get 4 controllers/1 button working later this week.  In the meantime I'm going to get the 2nd button on the Genesis controller working.

 

Assuming all that works, I'll look into the switch option for 2 joystick/2 button mode and 4 joystick/1 button mode.  I don't think I'm following your design completely, but once I get closer to that point I'll ask some more questions. :D I do understand the first part where you suggest wiring the switch to the 2nd line of the decoder (makes sense; in 2 joystick mode the 2nd line is always low, in 4 joystick mode it would be the value of the select line).  I get a little lost with "the switch would have 2 poles and 2 throws".... I'm not sure what that means lol.  Do you mean the switch is doing double-duty; one for the select line and one for the button 2 buffers?

 

Thanks again for all the help!

John

 

  • Like 1

Share this post


Link to post
Share on other sites

Yep, it's possible to power a chip without VCC.  Just don't expect it to be reliable :)

 

With a pull-down resistor, I guess you could get away with a single-pole, dual throw switch.  Here's what I came up with for the select.

254838203_ScreenShot2019-06-17at10_08_44PM.thumb.png.a65ad71b6e5975ef3a544f57d9df438a.png

ATARI_SELECT_OR_BUTTON_2 is either your second button input or 4-stick select output.  ATARI_SELECT_1 is always 1 or 2 selector.  MULTIPLEXER_BUTTON_2 is the button 2 from the appropriately selected octal buffer.  And SELECT_1 through 4 select the appropriate octal buffer for output.

Share this post


Link to post
Share on other sites
On 6/14/2019 at 9:08 PM, johnnywc said:

I know it was discussed above, but concerning this new design, are there suggestions on how we could multi-purpose a pin from the Atari to be either an input (for button 2) or an output (select line) using a physical switch?

It should be possible, one thing you need to consider though it what happens when the user changes from a game that requires it to to input to that which requires it set to an output. Will the users try the switch in the other position when it does not work or just think it is broken and what i(if any) potential hardware damage that could occur when used with the switch in the wrong position.

For the former perhaps put up a message to set the switch to the correct position, as for the latter I cannot quite visualise exactly how you intend this to work so I cannot suggest a solution at this point. 

5 hours ago, johnnywc said:

everything worked, but after reviewing the circuit I realized I hadn't hooked up VCC to one of the octal buffers yet it seemed to work either with/without it.

Unpowered logic devices can sometime draw power from their input pins, while enough inputs are high it will appear to function but when a enough go low (0V) it will stop working and so if left unpowered its correct operation could be random as the number of high/low input pins changes. So do not be fooled into thinking you can get away without connect both supply voltages.  

5 hours ago, johnnywc said:

I get a little lost with "the switch would have 2 poles and 2 throws".... I'm not sure what that means lol.

A single pole double throw (SPDT) switch has three connections (usually in a row), the pole (common connection) is usually the centre pin and when the switch is in one position it is connect to the throw at one end of the row and when in the opposite position is connected to the throw at the other end. A double pole, double throw (DPDT) switch is two separate SPDT switches positioned side by side in a single unit and switched at the same time using a single actuator. 

Edited by Stephen Moss

Share this post


Link to post
Share on other sites
19 hours ago, ChildOfCv said:

Yep, it's possible to power a chip without VCC.  Just don't expect it to be reliable :)

 

With a pull-down resistor, I guess you could get away with a single-pole, dual throw switch.  Here's what I came up with for the select.

254838203_ScreenShot2019-06-17at10_08_44PM.thumb.png.a65ad71b6e5975ef3a544f57d9df438a.png

ATARI_SELECT_OR_BUTTON_2 is either your second button input or 4-stick select output.  ATARI_SELECT_1 is always 1 or 2 selector.  MULTIPLEXER_BUTTON_2 is the button 2 from the appropriately selected octal buffer.  And SELECT_1 through 4 select the appropriate octal buffer for output.

Thanks so much - this is very helpful!  A picture is worth a thousand words. :)

16 hours ago, Stephen Moss said:

It should be possible, one thing you need to consider though it what happens when the user changes from a game that requires it to to input to that which requires it set to an output. Will the users try the switch in the other position when it does not work or just think it is broken and what i(if any) potential hardware damage that could occur when used with the switch in the wrong position.

For the former perhaps put up a message to set the switch to the correct position, as for the latter I cannot quite visualise exactly how you intend this to work so I cannot suggest a solution at this point. 

 

Unpowered logic devices can sometime draw power from their input pins, while enough inputs are high it will appear to function but when a enough go low (0V) it will stop working and so if left unpowered its correct operation could be random as the number of high/low input pins changes. So do not be fooled into thinking you can get away without connect both supply voltages. 

 

A single pole double throw (SPDT) switch has three connections (usually in a row), the pole (common connection) is usually the centre pin and when the switch is in one position it is connect to the throw at one end of the row and when in the opposite position is connected to the throw at the other end. A double pole, double throw (DPDT) switch is two separate SPDT switches positioned side by side in a single unit and switched at the same time using a single actuator. 

Thanks for the explanations!  Yeah, I was pretty sure *not* hooking up VCC was a bad thing, thanks for the confirmation! :)

 

As for the switch to multi-purpose the 2nd select line; I agree it may not make sense in the end, but I appreciate the time to explain some of the pros and cons (and the design).  

 

One thing I noticed in my tests today is the interference that Nathan saw with his original design.  It's a white line on the bottom of the screen that will show up only when you're pressing the joysticks in any direction while hooked up to the multiplexer.  I'm not sure what's causing it or even how to trouble shoot it.  I don't have a oscilloscope or anything to take measurements, but I do have a potentiometer though.  My next step while I wait for the other parts to come in (to test a 4 joystick version) will be to build the first circuit that was suggested that just used ground to select the joysticks.

 

Thanks!

John

 

Share this post


Link to post
Share on other sites

Some troubleshooting steps, if you go that way:

 

1) Try a 0.1uF ceramic capacitor between VCC and GND on the 74xx chips

 

2) Try disconnecting one joystick to Atari line at a time to see if things improve

 

3) Assuming you're running your game.  See if reading only one stick or the other helps

 

4) Wire up a 555 timer at around 60Hz and attach its output to various Atari inputs to see if that brings out the interference

 

One thing I wonder about, is if there needs to be tiny delay between deactivating one bus transceiver and activating another.  If one goes active while the other is still in the process of giving up, that could cause a large power draw as one is trying to pull a control low while the other attempts to keep it high.

Share this post


Link to post
Share on other sites
7 hours ago, johnnywc said:

One thing I noticed in my tests today is the interference that Nathan saw with his original design.  It's a white line on the bottom of the screen that will show up only when you're pressing the joysticks in any direction while hooked up to the multiplexer.  I'm not sure what's causing it or even how to trouble shoot it.  I don't have a oscilloscope or anything to take measurements, but I do have a potentiometer though.  My next step while I wait for the other parts to come in (to test a 4 joystick version) will be to build the first circuit that was suggested that just used ground to select the joysticks.

Interesting...

1) Is the interference there if you permanently(no switching) software select one joystick or the other? If no go to step 4.

2) Is the interference there if you manually select one joystick or the other (tie selection lines directly high/low - driven from 2600 output)? If no go to step 4.

3) Check the wiring for the Joystick that cause the interference & if that looks OK try swapping the ICs with those from the non interfering Joysticks in case you have a dud one.

4) If you are using a single control signal and inverter it is possible the propagation delay of the inverter results in a brief period when the outputs of both Joysticks are active at the same time in which case either diode isolation or using two selection signals to switch one off then the other on should allow enough time for the out of one to fully turn on before the other is turned on.

If you have two control line to use try that method first, the instruction cycle time should be slow enough that the instructions used to turn one off and the other on can immediately follow each other, additionally if that does solve the problem it could suggest that the ROIT inputs do not like being fed a voltage for some reason.

I am not sure why directly driving the ROIT inputs would be a problem but if it is then diode isolation to ensure they are only pulled down should correct it.      

Share this post


Link to post
Share on other sites
9 hours ago, ChildOfCv said:

Some troubleshooting steps, if you go that way:

 

1) Try a 0.1uF ceramic capacitor between VCC and GND on the 74xx chips

I think I have some capacitors that came with my start up kit lol, I'll see what types they are and give this a try.  By 'between VCC and ground', do you mean wire VCC to one end of the capacitor and ground to the other?  

9 hours ago, ChildOfCv said:

2) Try disconnecting one joystick to Atari line at a time to see if things improve

Do you mean actually unplug the joystick from the multi-tap port?  If so, I did try this and that didn't seem to improve.

9 hours ago, ChildOfCv said:

3) Assuming you're running your game.  See if reading only one stick or the other helps

I actually put together a test app, but it's doing the same during the game. 

 

During VBLANK it reads the ports and stores the values in joystick 1 variable. 

Once completed, it then toggles the select bit so the other joystick becomes active (joystick 2).

The screen is then drawn.

During overscan, it then reads joystick 2 and stores the values in joystick 2 variable.

Once completed, it then toggles the select bit again so the other joystick becomes active (joystick 1).

 

9 hours ago, ChildOfCv said:

4) Wire up a 555 timer at around 60Hz and attach its output to various Atari inputs to see if that brings out the interference

Hmm I don't think I have a 555 timer so I'll have to look into getting one of those to perform this test.

9 hours ago, ChildOfCv said:

One thing I wonder about, is if there needs to be tiny delay between deactivating one bus transceiver and activating another.  If one goes active while the other is still in the process of giving up, that could cause a large power draw as one is trying to pull a control low while the other attempts to keep it high.

See below; I did run some additional tests suggested by Stephen.

 

Thanks!

Share this post


Link to post
Share on other sites
7 hours ago, Stephen Moss said:

Interesting...

1) Is the interference there if you permanently(no switching) software select one joystick or the other? If no go to step 4.

I modified my test software so the Color/BW switch enables/disables switching.  When disabled, the left difficulty selects which joystick to test (joystick 1 or 2) by making the select line a constant 0 or 1.  The interference does reduce when I disable switching and is the same regardless of which joystick is active.  By reduced interference; with switching enabled, you see a constant sparkling white horizontal line at the bottom of the screen, about 3 inches long that gets more intense when you activate any switches on either joystick.  When switching disabled, this line disappears.  However, there are occasional 'dot's of interference, almost like static, that appear all over the screen, again only when you're moving the joysticks.   This 'static' doesn't seem to improve whether switching is enabled or not.

7 hours ago, Stephen Moss said:

2) Is the interference there if you manually select one joystick or the other (tie selection lines directly high/low - driven from 2600 output)? If no go to step 4.

I'm not sure what you mean here, but I did wire the OE line directly to VCC and then GND to remove the select line connection to the Atari.  With this the visual output seemed the same as using a constant select line as in step 1 (no switching).  I alternated VCC and GND so it would activate one or the other joysticks to see if there was a difference.

7 hours ago, Stephen Moss said:

3) Check the wiring for the Joystick that cause the interference & if that looks OK try swapping the ICs with those from the non interfering Joysticks in case you have a dud one.

This seems to be N/A since both joysticks/octal buffers seem to be exhibiting the same behavior.

7 hours ago, Stephen Moss said:

4) If you are using a single control signal and inverter it is possible the propagation delay of the inverter results in a brief period when the outputs of both Joysticks are active at the same time in which case either diode isolation or using two selection signals to switch one off then the other on should allow enough time for the out of one to fully turn on before the other is turned on.

If you have two control line to use try that method first, the instruction cycle time should be slow enough that the instructions used to turn one off and the other on can immediately follow each other, additionally if that does solve the problem it could suggest that the ROIT inputs do not like being fed a voltage for some reason.

I did modify Nathan's original design so I do have 2 select signals (the intent was to use them to select 1 - 4 joysticks) so I can test with two select lines.  I think what you're saying is to connect one select line each to one of the octal buffers?  Then in software I would first disable one buffer with a write to SWCHA and then enable the other buffer with another write to SWCHA?  (I would then disable/enable the other in reverse order when selecting the second joystick).

 

During VBLANK

- read joystick 1 values

- disable select line for joystick 1

- enable select line for joystick 2

 

During OVERSCAN

- read joystick 2 values

- disable select line for joystick 2

- enable select line for joystick 1

 

Of course it looks like the OE is triggered low so by enable I would write a 0 and by disable I would write a 1.  Does that sound right?

7 hours ago, Stephen Moss said:

I am not sure why directly driving the ROIT inputs would be a problem but if it is then diode isolation to ensure they are only pulled down should correct it.      

Hmmm can you elaborate what you mean by diode isolation for us newbies? ;)  I know diodes are used to ensure current flows only in one direction, but I'm not exactly sure what type to use and what pins I should be using them on.  The joystick inputs?  The select lines?  

 

Thanks so much for the help!

John

Share this post


Link to post
Share on other sites
7 minutes ago, johnnywc said:

I However, there are occasional 'dot's of interference, almost like static, that appear all over the screen, again only when you're moving the joysticks.   This 'static' doesn't seem to improve whether switching is enabled or not. 

 

This is the exact issue I had with most iterations of my design.  I tried adding various caps and didn't have any luck.

Share this post


Link to post
Share on other sites
1 hour ago, johnnywc said:

I think I have some capacitors that came with my start up kit lol, I'll see what types they are and give this a try.  By 'between VCC and ground', do you mean wire VCC to one end of the capacitor and ground to the other?  

Yeah.  That's called a decoupling capacitor.

1 hour ago, johnnywc said:

Do you mean actually unplug the joystick from the multi-tap port?  If so, I did try this and that didn't seem to improve.

Well, no, I mean unplug only one line at a time from the link between the octal buffers and the plug to the Atari.

 

For example, remove the "up" wire.  See if that improves the signal.  Especially when you press "up".

1 hour ago, johnnywc said:

I actually put together a test app, but it's doing the same during the game. 

 

During VBLANK it reads the ports and stores the values in joystick 1 variable. 

Once completed, it then toggles the select bit so the other joystick becomes active (joystick 2).

The screen is then drawn.

During overscan, it then reads joystick 2 and stores the values in joystick 2 variable.

Once completed, it then toggles the select bit again so the other joystick becomes active (joystick 1).

Okay, but the test is to stop doing the switch, though I guess you did that too.  You said that it did help, but not completely?

1 hour ago, johnnywc said:

I did modify Nathan's original design so I do have 2 select signals (the intent was to use them to select 1 - 4 joysticks) so I can test with two select lines.  I think what you're saying is to connect one select line each to one of the octal buffers?  Then in software I would first disable one buffer with a write to SWCHA and then enable the other buffer with another write to SWCHA?  (I would then disable/enable the other in reverse order when selecting the second joystick).

 

During VBLANK

- read joystick 1 values

- disable select line for joystick 1

- enable select line for joystick 2

 

During OVERSCAN

- read joystick 2 values

- disable select line for joystick 2

- enable select line for joystick 1

 

Of course it looks like the OE is triggered low so by enable I would write a 0 and by disable I would write a 1.  Does that sound right?

Yeah, that sounds right

Share this post


Link to post
Share on other sites
2 hours ago, ChildOfCv said:

Yeah.  That's called a decoupling capacitor.

Great thx, I'll give it a shot.

2 hours ago, ChildOfCv said:

Well, no, I mean unplug only one line at a time from the link between the octal buffers and the plug to the Atari.

 

For example, remove the "up" wire.  See if that improves the signal.  Especially when you press "up".

Okay, but the test is to stop doing the switch, though I guess you did that too.  You said that it did help, but not completely?

Yeah, that sounds right

Okay, that makes more sense.  I can run this test too.

5 minutes ago, ChildOfCv said:

Also, one other test:  Run one joystick through one buffer directly to the Atari and skip the selector entirely, and see if the interference continues

Will do!

 

Thanks for the help, it's much appreciated!

John

 

Share this post


Link to post
Share on other sites
15 hours ago, johnnywc said:

Hmmm can you elaborate what you mean by diode isolation for us newbies? ;)  I know diodes are used to ensure current flows only in one direction, but I'm not exactly sure what type to use and what pins I should be using them on.  The joystick inputs?  The select lines?

From you replies to both my and ChildOfCV's suggestion for testing it looks like the switching is probably not the cause of the issue although one last test in regards to the switching would be to disconnect the everything from the 2600 joystick ports and just have the software running as it would if the circuit was attached to see if the interference goes away. 

If the interference is still there with the hardware disconnected then it is coming from withing the 2600 and nothing to do with the circuit, maybe you damaged a device or something to do with your code.

However, if the interference goes away with the hardware disconnected then try placing diodes between the output of the circuit and the 2600 inputs (BAT 85, Cathodes to circuit outputs, Anodes to 2600 input pins) so that when the circuit outputs go high they are isolated from the 2600's inputs due to the diodes being reverse biased thereby allowing the 2600 inputs to be pulled high by the RIOT as they would normally be with 2600 joystick as opposed to being driven high by the circuit outputs which might be doing odd things to the RIOT.

You could also try either separately or in conjunction with the diodes above placing the same diodes on the controller select lines, Cathode to 2600 output pins and both the Anode and a pull up resistor to the controller select pin in your circuit. I would think it unlikely but if the interference is caused by too much much current being drawn from your joystick select lines this will isolate them and prevent that.

  • Like 2

Share this post


Link to post
Share on other sites

In addition, part of the continuation of this thread is due to the Genesis game pad, which has electronics very similar to what you're building.  So another question:  With the Genesis game pad hooked up (I assume that pin 5 and 7 are suitably swapped somehow?), does it still get the interference?

  • Like 1

Share this post


Link to post
Share on other sites
On 6/20/2019 at 3:17 AM, Stephen Moss said:

From you replies to both my and ChildOfCV's suggestion for testing it looks like the switching is probably not the cause of the issue although one last test in regards to the switching would be to disconnect the everything from the 2600 joystick ports and just have the software running as it would if the circuit was attached to see if the interference goes away. 

If the interference is still there with the hardware disconnected then it is coming from withing the 2600 and nothing to do with the circuit, maybe you damaged a device or something to do with your code.

However, if the interference goes away with the hardware disconnected then try placing diodes between the output of the circuit and the 2600 inputs (BAT 85, Cathodes to circuit outputs, Anodes to 2600 input pins) so that when the circuit outputs go high they are isolated from the 2600's inputs due to the diodes being reverse biased thereby allowing the 2600 inputs to be pulled high by the RIOT as they would normally be with 2600 joystick as opposed to being driven high by the circuit outputs which might be doing odd things to the RIOT.

You could also try either separately or in conjunction with the diodes above placing the same diodes on the controller select lines, Cathode to 2600 output pins and both the Anode and a pull up resistor to the controller select pin in your circuit. I would think it unlikely but if the interference is caused by too much much current being drawn from your joystick select lines this will isolate them and prevent that.

Hmm, I probably didn't describe it well in my previous posts, but when I configure my test program so that it does not switch (the select pin is always 0 or 1 depending on the position of the left difficulty switch), the interference drops considerably, most notably the white line on the bottom of the screen goes away.  However, the sparkling periodic static does not go away; this is the same whether or not the select line is constant or alternates from 0 to 1 twice a frame.  It seems that there the situation you described where perhaps both chips are active while the inverter goes from 0 to 1 and vice versa may be true.

On 6/20/2019 at 4:47 AM, ChildOfCv said:

In addition, part of the continuation of this thread is due to the Genesis game pad, which has electronics very similar to what you're building.  So another question:  With the Genesis game pad hooked up (I assume that pin 5 and 7 are suitably swapped somehow?), does it still get the interference?

My design did not have the genesis button 2 hooked up (pin 5) but did have pin 7 hooked up.  As expected, the Genesis pad behaved the same since pin 5 wasn't hooked up.  I did try a revised design that routes the 2nd genesis button (pin 5) to INPT0 and the static/interference seems to be the same.

 

I'm pretty sure it's not the software that is causing the issue since I also tried with Nathan's updated design that didn't use any chips (it just activates ground for the active joysitck as suggested above by Stephen) and there is virtually no static at all.  The issue with that design is that (1) it seems that it does not work if you have a Genesis controller hooked up, even if pin 5 isn't wired up and (2) if you hold down both buttons, player 1 movements are mimicked for the player 2, and vice-versa.  Nathan describes more about what he's seeing in his above post.

 

I think my next step may be to build Nathan's circuit without the octal buffers and see if I can resolve either of the two issues (Genesis controllers not working and being able to control the other player).

Share this post


Link to post
Share on other sites
1 hour ago, johnnywc said:

My design did not have the genesis button 2 hooked up (pin 5) but did have pin 7 hooked up.  As expected, the Genesis pad behaved the same since pin 5 wasn't hooked up.  I did try a revised design that routes the 2nd genesis button (pin 5) to INPT0 and the static/interference seems to be the same.

Could you clarify the bold?  Does the Genesis controller give you the sparkles even when connected directly to the Atari?  Or at most, with only a pin rerouter for the pin 5/7 issue?

Share this post


Link to post
Share on other sites

I had a few minutes and tried some more tests.  First off, if I disconnect the select line the interference goes away completely, but of course only one of the joysticks work.  Second, I swapped out the inverter for the 2x4 decoder and it had similar results (same type of interference).  Thirdly, I hooked up a diode between the select line going to the Atari and that didn't seem to reduce the interference at all.

 

Some other observations:  The white line interference on the bottom is most prevalent when pressing left, which happens to be hooked up to INPT1 since left from the atari is being used as a select line.

Share this post


Link to post
Share on other sites
1 minute ago, ChildOfCv said:

Could you clarify the bold?  Does the Genesis controller give you the sparkles even when connected directly to the Atari?  Or at most, with only a pin rerouter for the pin 5/7 issue?

The Genesis controller gives no interference or sparkles when hooked up directly to the Atari.  When it's hooked up to the multiplexer with or without pin 5 wired up, the interference/sparkles are the same as with a regular joystick connected.  Hope that makes sense!

Share this post


Link to post
Share on other sites

Yeah that makes some sense, but now the question is, how does the Genesis controller work when your own circuit does not?  The Genesis uses one multiplexer IC, which is pretty much the same as what the OP had.  I wonder, if we set up the Genesis controller to work exactly like your circuit, but in place of your circuit, would you end up with interference?

 

On the Genesis, pins 1,2,3,4, and 6 are as expected (mostly):  Up, down, left, right, button, so wire them the same way you would for a normal controller.

 

5 is VCC, so equivalent to Atari 7.

 

7 is select, so whatever you use for the select line.

 

8 is ground (also permanently connected to the 74157's output enable)

 

9 is button 2, so whatever pin takes that input.

 

So, if you wired it up to the Atari in a mock switcher setup using the above pinout changes and without the multiplexer (since the joystick IS a multiplexer), does that cause interference?

 

Share this post


Link to post
Share on other sites
23 hours ago, ChildOfCv said:

Yeah that makes some sense, but now the question is, how does the Genesis controller work when your own circuit does not?  The Genesis uses one multiplexer IC, which is pretty much the same as what the OP had.  I wonder, if we set up the Genesis controller to work exactly like your circuit, but in place of your circuit, would you end up with interference?

 

On the Genesis, pins 1,2,3,4, and 6 are as expected (mostly):  Up, down, left, right, button, so wire them the same way you would for a normal controller.

 

5 is VCC, so equivalent to Atari 7.

 

7 is select, so whatever you use for the select line.

 

8 is ground (also permanently connected to the 74157's output enable)

 

9 is button 2, so whatever pin takes that input.

Okay, now I'm following you.  I didn't realize that there is a multiplexer IN the Genesis controller which what was confusing me. :)

23 hours ago, ChildOfCv said:

So, if you wired it up to the Atari in a mock switcher setup using the above pinout changes and without the multiplexer (since the joystick IS a multiplexer), does that cause interference?

 

I did two tests:

 

1. Straight pass thru of all 9 wires (1:1, 2:2, 3:3, etc) with a Genesis pad.  No interference seen.

2. All pins connected but pins 5 and 7 swapped as you suggested.  The interference line was really bad (very bright white) and the controller was acting very wonky. :|  

 

Hope that helps!  I am going to build the circuit that has no chips  (except for an inverter or decoder to select) since that seems to have no interference either; we just need to resolve the issue where one player can control the other when the buttons are held down (also, the Genesis pad doesn't work either).  

 

I'll post my results here. 

 

Thanks!

John

 

Share this post


Link to post
Share on other sites

I might want to know more about this.  You're using pin 5 as the select line?  That goes to the TIA pot input.  I guess you could use it as an output of a sort by turning on VBLANK bit D7 to pull to zero, but it has a charging capacitor intended to measure pull-up time for a variable resistor.  So you'd need a pull-up resistor on it.

 

Or do you mean that pin 5 is an alternate input to make up for the fact that you had to repurpose a 6532 input as an output?  If so, then make sure your write to VBLANK leaves bit D7 low so that it doesn't try to overpower the output of the multiplexer.  Doing that would cause a short from the multiplexer's pull-up to the dump transistor's ground.  That would consume some power and likely cause problems.

 

See figure8.gif

Edited by ChildOfCv
Correct information about VBLANK

Share this post


Link to post
Share on other sites
On 6/24/2019 at 9:55 PM, johnnywc said:

 Thirdly, I hooked up a diode between the select line going to the Atari and that didn't seem to reduce the interference at all.

I also suggested putting diodes on the output lines (U, D, L, R & Fire) to the 2600 in case directly driving the RIOT inputs was causing problems as they were designed for pull down operation, did you try that I as thought that may have already resolved the interference issue as suggested by this post on page 1...

On 3/16/2019 at 2:38 AM, gauauu said:

Thanks for the help, all. The design of running them parallel with an inverter on the ground, and using diodes for isolation, is working perfectly. No signs of interference. I've got it all on a messy breadboard right now (I don't know how you hardware people stay sign, the mess of wires drives me crazy!), but it's time to make some prototype PCBs!

  • Like 1

Share this post


Link to post
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.

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