Jump to content
IGNORED

How to read NES controllers on a 2600


Recommended Posts

I have always wondered if it was possible to read NES controllers on the 2600, so I gave it a try. Attached is a simple demo that reads the controller status and displays it on screen via PF1. The controller reading code is very clunky, but this is just a proof of concept demo. It should be easy to adapt this code for SNES controllers too. Directions (not very detailed) for building the adapter are in the source. Here is a picture of mine:

 

post-12776-12680846894_thumb.jpg

 

Hopefully future Homebrews will make use of this :)

NES.zip

Link to comment
Share on other sites

I figure it would be cheaper to construct the first design and give all 8 buttons in the process for new games. And If you just want to use an NES controller as a regular replacement for a joystick, it would also probably be cheaper to replace the guts of an NES controller so that it will use an Atari connector natively.

Link to comment
Share on other sites

I have always wondered if it was possible to read NES controllers on the 2600, so I gave it a try. Attached is a simple demo that reads the controller status and displays it on screen via PF1. The controller reading code is very clunky, but this is just a proof of concept demo. It should be easy to adapt this code for SNES controllers too. Directions (not very detailed) for building the adapter are in the source. Here is a picture of mine:

If this pinout is correct, you could read a Flashback 1 controller without any adapter by changing your code so that pin 2 (SWCHA D5) is Latch, pin 3 (SWCHA D6) is Data and pin 4 (SWCHA D7) is Clock.

:)

  • Like 1
Link to comment
Share on other sites

man i'd love to see this contraption wind up in the AA Store next to the Stelladaptor! we'd need some two-button titles for it though.

I think that it will take a critical mass of titles that support it before most users will build/buy adapters. One way to speed that up is to hack some of the games that use the second joystick's button to use it.

 

Regarding the adapter, it would make sense to include a regular db9 male wired in parallel, so a normal joystick could be wired in at the same time; it would save a lot of unplugging. Assuming the pad wouldn't interfere with regular operation.

 

Alternatively, a microcontroller could be used as cd-w suggested. It could act in "compatibility mode" if the vcs didn't handshake with it, and in "pass-through mode" if it did.

 

If you wanted to get really fancy, the microcontroller could control the vcs select and reset switches too, with some minor mods.

Link to comment
Share on other sites

I have always wondered if it was possible to read NES controllers on the 2600, so I gave it a try. Attached is a simple demo that reads the controller status and displays it on screen via PF1. The controller reading code is very clunky, but this is just a proof of concept demo. It should be easy to adapt this code for SNES controllers too. Directions (not very detailed) for building the adapter are in the source. Here is a picture of mine:

If this pinout is correct, you could read a Flashback 1 controller without any adapter by changing your code so that pin 2 (SWCHA D5) is Latch, pin 3 (SWCHA D6) is Data and pin 4 (SWCHA D7) is Clock.

:)

 

Thanks for the info! I was able to get the FB1 controllers working, although Data is actually SWCHA D5 and Latch is SWCHA D6. I will have to rewire my adapter, this way is much more convenient.

Link to comment
Share on other sites

I have always wondered if it was possible to read NES controllers on the 2600, so I gave it a try. Attached is a simple demo that reads the controller status and displays it on screen via PF1. The controller reading code is very clunky, but this is just a proof of concept demo. It should be easy to adapt this code for SNES controllers too. Directions (not very detailed) for building the adapter are in the source. Here is a picture of mine:

If this pinout is correct, you could read a Flashback 1 controller without any adapter by changing your code so that pin 2 (SWCHA D5) is Latch, pin 3 (SWCHA D6) is Data and pin 4 (SWCHA D7) is Clock.

:)

 

Thanks for the info! I was able to get the FB1 controllers working, although Data is actually SWCHA D5 and Latch is SWCHA D6. I will have to rewire my adapter, this way is much more convenient.

 

Huh? SWCHA D5 and SWCHA D6? Did they change what they were silk screening onto the joystick PCBs or something?

Link to comment
Share on other sites

I have always wondered if it was possible to read NES controllers on the 2600, so I gave it a try. Attached is a simple demo that reads the controller status and displays it on screen via PF1. The controller reading code is very clunky, but this is just a proof of concept demo. It should be easy to adapt this code for SNES controllers too. Directions (not very detailed) for building the adapter are in the source. Here is a picture of mine:

If this pinout is correct, you could read a Flashback 1 controller without any adapter by changing your code so that pin 2 (SWCHA D5) is Latch, pin 3 (SWCHA D6) is Data and pin 4 (SWCHA D7) is Clock.

:)

 

Thanks for the info! I was able to get the FB1 controllers working, although Data is actually SWCHA D5 and Latch is SWCHA D6. I will have to rewire my adapter, this way is much more convenient.

 

Huh? SWCHA D5 and SWCHA D6? Did they change what they were silk screening onto the joystick PCBs or something?

 

SWCHA is a register inside the RIOT chip that you read/write to port A (AKA controller ports) with ;)

Link to comment
Share on other sites

I have a lot of systems out at a time and use a SNES pad on my snes and nes at the same time and a Gen pad for the 26 Jr. and Gen3 - my NES can do three controller types right now. I would happily pay 30 or so for an adapter, but I vote for the SNES pad as superior to the NES pad (as I think most people would/will). Of course it would have to work with most titles I own already. The only other way I can think of would be to bundle the adapter with a homebrew that required it, but then why not just make it a regular 2-button 2600 deal? Neat achievement, though, either way. Someday all game consoles will be controlled by power gloves and power gloves only.

Link to comment
Share on other sites

  • 1 year later...

Many clone NES systems already use a 9 pin connection. I wonder how close the pinouts are..

 

The way that NES controllers are read is much different from standard Atari joysticks, so you wouldn't be able to just plug one in and control a game that isn't specifically writen to read them. Since the controller ports are bidirectional, it is possible to read them, though you will obviously need an adapter to read the official ones.

 

As previously posted, the demo can be adjusted to read Flashback 1 controllers without an adaptor. It's possible other famiclones use this same pinout, or a pinout that would be compatible with some code adjustment :)

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