Driving controller port via arduino

For hardware talk only (please avoid ROM dumper stuff)
Post Reply
jtn0514
Interested
Posts: 17
Joined: Sat Dec 28, 2013 9:33 pm

Driving controller port via arduino

Post by jtn0514 » Sat Dec 28, 2013 9:42 pm

So im trying to drive the controller port on the megadrive/genesis via the arduino. I am esentially simulating button presses into the console but i have run into many issues so far.

It seems while checking for the sel line to be low and then writing the start pin low (to simulate a start button press) i end up with results that seem like button c is being pressed instead. I dont have a way to confirm that the C button is what the console thinks is being pressed however.

I am only guessing at this based on the response in NBA Jam game i am using for testing the outputs to the system. It seems to just cycle from title screen to game and back, just as if you pressed any A/B.C button on a normal controller in this game during title screen sequence.

Im wondering if it would make more sense to just put the same
74HC157 multiplexer inline between the arduino and the megadrive controller port to do the dirty work and just simulate closing the connections on the arduino to the multiplxer input lines for simulating the actual button presses?

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Sat Dec 28, 2013 10:43 pm

Using a mux chip will certainly make your life much easier.

If you use pin change interrupt to see if SEL changed then you'll certainly be too late when presenting your button states to the MD.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

jtn0514
Interested
Posts: 17
Joined: Sat Dec 28, 2013 9:33 pm

Post by jtn0514 » Sun Dec 29, 2013 3:20 am

TmEE co.(TM) wrote:Using a mux chip will certainly make your life much easier.

If you use pin change interrupt to see if SEL changed then you'll certainly be too late when presenting your button states to the MD.
Thats kind of what i figured.

Ive tried manually triggering a ground signal every second or so to the start pad on a dissasembled controller. It seems to work, but not always...

also seems that using the ground signal from the megadrive to manually drive this works much better go figure.
Last edited by jtn0514 on Sun Dec 29, 2013 3:52 am, edited 1 time in total.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Sun Dec 29, 2013 3:24 am

You most definitely need a solid ground connection between MD and the Arduino board.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Post by r57shell » Thu Jan 02, 2014 6:52 pm

I guess you need to setup input before reading by sega and wait for reading, then wait a bit to make sure that reading was done... And, repeat it again.
Image

Post Reply