PS2 to N64 adaptor

Who here honestly can say that the N64 controller has stood the test of time? Those who even saw he design as a good one (me included) will also admit that the quality of the parts used resulted in what was essentially a poor controller.

Through time the joystick broke down, even after as little time as 40 hours gameplay, until the thing was quite useless.
So I hatched a plan to use a PS2 controller on my original N64.

 

After searching the internet for a ready made solution that I could buy and finding nothing, I figured the only way I would be able to use an alternate controller on my N64 would be to make my own adaptor.

The case is from a ps2-usb adapter, which would you believe was cheaper than a ps2 extension cable? The insides use my trusty old Atmega32u2 AVR.

Special features include full accurate N64 joystick range, something I’m fairly sure no other joystick replacement or 3rd part controller has. ‘Turbo’ button (the select button will constantly flip the Start button on and off) and a ‘half stick’ button (Triangle), which will half the range of the unconverted analog stick values, doubling the precision. And last but not least, rumble is working on almost all of the games I tested. It doesn’t work on some games, don’t know why yet.

 

Button layout is as follows – PS2_to_N64.zip

N64 PS2
D-Pad D-Pad
Stick Left Stick
A Cross
B Square
Start Start
C Up
C Down
C Left
C Right
Right Stick
L L1
R R1
Z L2, R2
Turbo Select
Half-Stick Triangle

 

 

To make sure that the controller worked well enough, I performed a quick test on my PC (using a USB N64 adaptor) to compare the joystick range to an genuine old N64 controller and a 3rd party new controller. As you can see, my adaptor gets 100% of the range that an N64 expects to find…

 

Here is the code for the adaptor if anyone wants it –

The wiring is as follows, but if you read through the code, it should be easy to change those if you need to.

N64

1 3.3v VCC
2 Data B0
3 GND GND

PS2

1 ACK D4
2 N/C
3 CLK D2
4 ATT D6
5 VCC VCC
6 GND GND
7 RUMBLE VCC
8 COM D5
9 DAT D3