N64 Controller Serial Protocol Interface
N64 Controller Interface Library. To understand how to interface with an N64 controller, one must first understand the protocol that a genuine N64 uses to interface. Images for N64 Controller Serial Protocol Interface. Force Feedback can interact with a USB joystick/gamepad so I can take the Force Feedback requests to my N64.
N64-to-Parallel Port Adapter As a child, I developed a strong interest in video and computer games. I was never quite satisfied with computer joysticks and I frequently contemplated the possibility of connecting a Nintendo controller to my PC.
Years later during college, I began my electrical engineering courses and grew interested in programming microcontrollers. I revisited the interfacing idea, searching the websites for existing Nintendo controller projects and technical information. I discovered one particular website that provided schematics for a circuit to connect to the Nintendo 64 (N64) controller (, now dead). While I originally attempted to build the adapter described on the site, I could not find all of the necessary parts, so designing my own adapter became my first project goal as I learned to use. My original design was a simple microcontroller application that bit-banged the N64 protocol using an 8-pin PIC 12F629 running at 20MHz. The micro idles until the PC issues a request, at which time the micro sends a poll packet to the N64 controller and records the controller's response. Airport City Data Obb.
Timing was exceptionally critical because each data bit in the protocol has a width of 4us, with a leading 1us always at logic-0, 2us reflecting the state of that bit, and 1us always at logic-1. Due to the tight protocol constraints, there was time to execute about 15 instructions between each bit, so the algorithm had to be precise. Each status packet was recorded in a buffer to eventually be transfered to the PC. Three I/O pins were available for communication with the PC, so I employed a straightforward serial protocol with two pins used for data and one as the clock. This approach was successful and I soldered together a final circuit using cardboard from a cereal box as prototyping board and a peanut butter jar as an enclosure. The main limitation for the first adapter was that I could only use the controller with the games and programs I wrote.
I began researching how to write Windows drivers, but quickly found a better solution: USB-enabled PICs. With the, I was restricted to programming a handful of low pin-count devices while I read that the could write to many of the more expensive microcontrollers. After reading part of the USB specification and several Microchip USB application notes, I finally had a PIC 18f2550 running a demo application while attached to my PC.