Skip to content
forked from Ryzee119/usb64

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

License

Notifications You must be signed in to change notification settings

IonBlade2K/usb64

 
 

Repository files navigation

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

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 2.2" (320x240) AliExpress
1 MicroSD Card -
1 (Optional) Case https://a360.co/2HPz0U0
1 (Optional) PCB breakout board Kitspace

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 64.6%
  • C++ 35.4%