Jump to content

Photo

How to read NES controllers on a 2600


17 replies to this topic

#1 Wickeycolumbus OFFLINE  

Wickeycolumbus

    Red Sea Crosser

  • 5,162 posts
  • Location:Michigan

Posted Mon Mar 8, 2010 3:47 PM

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:

P1010486.JPG

Hopefully future Homebrews will make use of this :)

Attached Files

  • Attached File  NES.zip   1.54KB   165 downloads


#2 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • 684 posts
  • Location:South Central US

Posted Mon Mar 8, 2010 3:56 PM

BRILIANT!!! Bravo! :lust: :love: :D :D

#3 bomberpunk OFFLINE  

bomberpunk

    River Patroller

  • 2,274 posts
  • i hoard video games.
  • Location:new orleans

Posted Tue Mar 9, 2010 3:42 AM

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.

#4 iwan-iwanowitsch-goratschin OFFLINE  

iwan-iwanowitsch-goratschin

    Progressive Pornobär

  • 6,421 posts
  • You met me at a very strange time in my life!
  • Location:good old GERMANY

Posted Tue Mar 9, 2010 5:10 AM

Good job, Wickey! :thumbsup:

#5 cd-w OFFLINE  

cd-w

    Stargunner

  • 1,616 posts
  • Juno First!
  • Location:Glasgow, UK

Posted Tue Mar 9, 2010 3:10 PM

Nice work! I wonder if it would be possible to do the translation in hardware (e.g. using a PIC micro-controller, or simpler) so that it would be compatible with existing games?

Chris

#6 alex_79 OFFLINE  

alex_79

    Stargunner

  • 1,195 posts
  • Location:Italy

Posted Tue Mar 9, 2010 4:32 PM

Here there are instructions (in spanish) and schematics for a nes 2 atari adapter using 3 IC.

#7 grafixbmp OFFLINE  

grafixbmp

    Dragonstomper

  • 684 posts
  • Location:South Central US

Posted Wed Mar 10, 2010 2:01 AM

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.

#8 alex_79 OFFLINE  

alex_79

    Stargunner

  • 1,195 posts
  • Location:Italy

Posted Wed Mar 10, 2010 5:15 AM

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

#9 RevEng OFFLINE  

RevEng

    Bit Player

  • 5,175 posts
  • Location:bottom of the stack

Posted Wed Mar 10, 2010 7:19 AM

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.

#10 Wickeycolumbus OFFLINE  

Wickeycolumbus

    Red Sea Crosser

  • Topic Starter
  • 5,162 posts
  • Location:Michigan

Posted Thu Mar 11, 2010 3:06 PM

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.

#11 Atariman OFFLINE  

Atariman

    River Patroller

  • 2,128 posts
  • Made entirely from Atari parts!
  • Location:Wisconsin

Posted Fri Mar 12, 2010 7:58 AM

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?

#12 Wickeycolumbus OFFLINE  

Wickeycolumbus

    Red Sea Crosser

  • Topic Starter
  • 5,162 posts
  • Location:Michigan

Posted Fri Mar 12, 2010 1:41 PM

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 ;)

#13 DickNixonArisen OFFLINE  

DickNixonArisen

    River Patroller

  • 2,198 posts
  • Location:Connecticut.

Posted Sun Mar 14, 2010 5:47 PM

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.

#14 Madhatter OFFLINE  

Madhatter

    Space Invader

  • 40 posts
  • Location:Quilpué, CHILE

Posted Tue Feb 7, 2012 12:03 AM

It works!
I use my 2600 SRAMCART. Big surprise, my 2600 clon have bidirectional controller ports!
Posted Image

#15 Wickeycolumbus OFFLINE  

Wickeycolumbus

    Red Sea Crosser

  • Topic Starter
  • 5,162 posts
  • Location:Michigan

Posted Tue Feb 7, 2012 11:00 AM

It works!
I use my 2600 SRAMCART. Big surprise, my 2600 clon have bidirectional controller ports!


That's an awesome setup you have there, care to share some info on that SRAM cart? :)

#16 Madhatter OFFLINE  

Madhatter

    Space Invader

  • 40 posts
  • Location:Quilpué, CHILE

Posted Wed Feb 8, 2012 12:48 AM

This is my handwired Atari 2600 8 KB sramcart:
Posted Image
More information soon in my website.

#17 Gemintronic OFFLINE  

Gemintronic

    Jason S. - Lead Developer & CEO

  • 9,314 posts

Posted Wed Feb 8, 2012 9:33 AM

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

#18 Wickeycolumbus OFFLINE  

Wickeycolumbus

    Red Sea Crosser

  • Topic Starter
  • 5,162 posts
  • Location:Michigan

Posted Wed Feb 8, 2012 9:56 AM

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 :)




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users