A project developed to use USB controllers on the Nintendo 64 console.
Precompiled binaries can be downloaded from Releases.
NOTE: This project is still in development and bugs are certainly still present. I plan to play alot of N64 to test 😄.
- N64 controller emulation (up to four controllers at once!).
- Rumblepak emulation.
- Mempak emulation with four selectable banks. Technically unlimited.
- Transferpak emulation. Put Gameboy ROMS on an SD Card!
- N64 mouse emulation. Use a USB Mouse!
- Configurable deadzones and sensitivity from the N64 Console.
- True dual analog sticks with GoldenEye and Perfect Dark.
- SD card driver with FATFS support for storage/backup of Gameboy ROMS, mempaks etc.
- A single hardwired controller interface for ultimate hacking.
- Optional TFT LCD Support.
- Raspberry Pi interface or equivalent for all other USB controllers.
- More inbuilt USB controller drivers.
- Bluetooth 8bitdo/compatible controllers via the 8BitDo Wireless USB Adapter
- Wired 8bitdo controllers when they are started in X-input mode.
- Xbox S/X Wired
- Xbox one Wired (Genuine / PDP)
- Xbox 360 Wired
- Xbox 360 Wireless (Via PC USB Receiver)
- PS4 Wired
- A hardwired controller, use your own buttons etc.
- Back + D-Pad = Insert Mempak banks 1 to 4
- Back + LB = Insert Rumblepak
- Back + RB = Insert Transferpak
- Back + Start = Select virtual pak (Use in-game mempak managers to configure the device)
- Back + B = Switch to true dual-analog stick more for GoldenEye 007/Perfect Dark
- Back + A = Backup buffered memory to SD Card (DO THIS BEFORE POWER OFF!)
Qty | Part Description | Link |
---|---|---|
1 | Teensy 4.1 | https://www.pjrc.com/store/teensy41.html |
1 | USB Host Cable | https://www.pjrc.com/store/cable_usb_host_t36.html |
3 | 0.1" Pin Header | https://www.pjrc.com/store/header_24x1.html |
2 | 64Mbit PSRAM SOIC-8 | https://www.pjrc.com/store/psram.html |
4 | N64 Controller Extensions | AliExpress |
1 | (Optional) ILI9341 TFT LCD Display (320x240) | AliExpress |
1 | MicroSD Card | - |
1 | Case | https://a360.co/2HPz0U0 |
1 | PCB breakout board | Kitspace |
Note: PSRAM model numbers are IPS6404L-SQ-SPN or ESP-PSRAM64H.
See COMPILE.md.
See INSTALL.md.
See USAGE.md.
usb64 is shared under the MIT license, however this project includes code by others. Refer to the list below.
- mpaland/printf shared under the MIT License.
- thi-ng/tinyalloc shared under the Apache-2.0 License.
- FatFs by ChaN shared under a BSD-style license.
- USBHost_t36 fork shared under an 'MIT or MIT-like license'.
- Teensy cores shared under an 'MIT or MIT-like license'.
- MBC emulation code is adapted from Peanut-GB shared under an MIT License.