usb64 - A project developed to use USB controllers on the Nintendo 64 console 📺 🎮

Inspect Gerbers

Tracespace View

Assembly Guide

Interactive HTML BOM

Order PCBs:

Compare PCB Prices:

Buy Parts

Adjust quantity:
%
 
ReferencesQtyDescriptionManufacturerMPNDigikey
C11CAP 100UF, 5MM DIA, 2MM LEADWurth Elektronik860010372006732-8598-1-ND
C2,C3,C43CAP 100NF, 0805Wurth Elektronik885012207016732-8026-1-ND
TFT1,TFT22FEMALE HEADER 0.1Sullins Connector SolutionsPPTC201LFBN-RCS7018-ND
USB11USB TYPE A RECEPTACLEOn Shore Technology IncUSB-A1HSW6ED2989-ND
C5,C6,C7,C85CAP 100PF, 0805Wurth Elektronik885012207054732-8046-1-ND
basic

Build badge
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, PRs and ideas are welcome. See todo list for ideas.

  • 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!
  • N64 Randnet emulation. Use a USB keyboard!
  • 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.

Todo

  • Raspberry Pi interface or equivalent for all other USB controllers.
  • More inbuilt USB controller drivers. (PS3, Aftermarket Xbox One, OG Xbox, improved Generic HID).
  • USB Bluetooth stack.
  • Mouse/Keyboard input for controllers.
  • Gamecube controller support.
  • Better debug output (Flashing LED, SD card logging)

Supported Controllers

  • 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.

Controls

  • 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!)

Needed Parts

QtyPart DescriptionLink
1Teensy 4.1https://www.pjrc.com/store/teensy41.html
1USB Host Cablehttps://www.pjrc.com/store/cable_usb_host_t36.html
30.1" Pin Headerhttps://www.pjrc.com/store/header_24x1.html
264Mbit PSRAM SOIC-8https://www.pjrc.com/store/psram.html
4N64 Controller ExtensionsAliExpress
1(Optional) ILI9341 TFT LCD Display 2.2" (320x240)AliExpress
1MicroSD Card-
1(Optional) Casehttps://a360.co/2HPz0U0
1(Optional) PCB breakout boardKitspace

Note: PSRAM model numbers are IPS6404L-SQ-SPN or ESP-PSRAM64H.

Compile and Program

See COMPILE.md.

Install

See INSTALL.md.

How to Use

See USAGE.md.

License and Attribution

usb64 is shared under the MIT license, however this project includes code by others. Refer to the list below.

usb64 with optional case and TFT display.

vp_cont

If you like my work please consider a small donation
paypal