This is actually a nice polished mod for once. I did this a while ago, so I don’t have all the hoops I jumped through fresh in my head (and as such this will be short). I picked up an NES Max at a garage sale for a dollar or two, it’s this really cool controller that makes the D-pad feel kinda like an analog stick, but it’s still digital. It’s also got 2 built in turbo buttons. That’s right, turbo buttons from an OEM. I’ve seen people removing the brain of NES controllers and using then as joysticks or keyboards for games, but I had a different idea in mind. How about a mouse.
This thought came from the fact that the Max UN-D-pad looks a lot like the psp analog stick. It slides, rather than tilts. It’s also only slightly larger. With that as true analog control and 4 buttons I had all the makings of a mouse. This controller with it’s turbo buttons seemed like the perfect reason not to remove the controller IC and instead to interface with the NES pad just like an NES would. My work was basically done for me in the form of the the NESpad library. Now, I realize the NES controllers are just shift registers, but sometimes it’s comforting to know that someone else had enough success with their specific implementation to publish their code.
My analog reading code is very… primitive. I could certainly use some fine tuning in the acceleration, diagonal boundaries, and any other advanced algorithms, but this works as a proof of concept. I tried to modify the controller as little as possible, I think I made it look quite good from the outside. Now I have a usb mouse, with turbo click! I’m sure someone who felt like it could do this with an adafruit feather and make it bluetooth, but I use what I know, the atmega32u4.
The code can be found here.
The rest of the pictures can be found here.