NES/SNES controller adapter

Alright, let’s try for one more today.  My queue is finally emptying a bit, it feels like I’m being productive while I’m not actually accomplishing anything new!  This is another post that centers around my arcade machine.  The control panel I have is only two player, this isn’t much of a problem, but I like to solve the general case of the problem.  I decided that for players three and four I would have an expansion box.  Sure, you could use controllers for the other players, but that take re-mapping of the controls for each game and who wants to play with a ps2 controller against someone with a real arcade stick?  My solution, as always, is to use an arduino to emulate a keyboard and this time I decided to make it modular.

This builds off my NES Max mouse, but I expanded the library to read 2 gamepads simultaneously (I apologize for not changing the comments to reflect what I did, but at least I posted the changed code).  The gamepads I chose are the NES Advantage (famously used in ghostbusters 2) and the SNES Advantage (as featured in sentences like “they made an SNES Advantage?”).  The code I used was almost identical to what I used for the mouse except this time I used more buttons.  These controllers have the advantage of having auto-fire capability so maybe people who get stuck with player three or four won’t complain as much any more.

Laser cut box (blah blah) way too big (blah blah) used a teensy 3 (blah what a waste blah).  I think I have to stop blogging, the quality seems to go down throughout the day.

code

pictures

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: