Skip to content

bt2n64

Bluetooth controllers to N64 console.

Overview

Turns a Pico W or Pico 2 W into a wireless Bluetooth-to-N64 adapter. Supports rumble pak emulation, 3 button mapping profiles, and cold boot detection. The adapter identifies itself as having a rumble pak inserted so games detect the accessory.

Input

Bluetooth controllers via CYW43 (Classic BT + BLE).

Output

N64 Output -- joybus PIO protocol. Standard clock speed (no overclock needed).

Core Configuration

Setting Value
Routing mode MERGE (all inputs blended to one output)
Player slots 1
Max BT connections 4
Profile system 3 profiles

Profiles

Hold Select for 2 seconds, then press D-Pad Up/Down to cycle. Controller rumbles to confirm.

Profile Description
Default Standard N64 mapping. Right stick maps to C-buttons (threshold-based).
FPS GoldenEye/Perfect Dark optimized. R1=Z (shoot), L1=R (aim), right stick=C-buttons (strafe/look).
Mario Super Mario 64 optimized. Circle=A (jump), Cross=B (punch), L3=walk modifier (50% stick sensitivity).

Default Profile

Standard N64 mapping with right stick mapped to C-buttons:

BT Input N64 Output Notes
Cross/A (B1) A
Square/X (B3) B
Circle/B (B2) C-Down
Triangle/Y (B4) C-Left
L1/LB L
R1/RB R
L2/LT Z
R2/RT C-Right
Select C-Up
Start Start
Guide/Home Start
Right Stick C-buttons Threshold-based
Left Stick Control Stick
D-Pad D-Pad

FPS Profile

Optimized for GoldenEye, Perfect Dark, and other N64 shooters:

BT Input N64 Output Notes
Cross/A (B1) B Attack
Circle/B (B2) A Action
Square/X (B3) C-Down
Triangle/Y (B4) C-Up
R1/RB Z Shoot (easier reach)
L1/LB R Aim/targeting
L2/LT L
R2/RT Z Alternate shoot
Right Stick C-buttons Strafe/look

Mario Profile

Optimized for Super Mario 64 and platformers:

BT Input N64 Output Notes
Cross/A (B1) B Punch/attack
Circle/B (B2) A Jump
Square/X (B3) C-Down Camera
Triangle/Y (B4) C-Up Camera
L1/LB L Crouch camera
R1/RB R Shoulder camera
L2/LT Z Crouch/ground pound
R2/RT Z Alternate Z
L3 (left stick click) Walk modifier 50% stick sensitivity

Key Features

  • Rumble pak emulation -- Vibration forwarded to BT controller. Left motor ~50%, right motor gentle.
  • Cold boot detection -- Responds to PIF's initial controller probe on console power-on.
  • BOOTSEL button -- Click to scan 60s for new devices. Hold to clear all bonds.

LED Status

Pattern Meaning
Fast blink (100ms) N64 console not communicating
Slow blink (400ms) N64 OK, no BT controller connected
Very fast blink (50ms) N64 + BT connected, no data flowing
Solid on Fully operational

Supported Boards

Board Build Command
Pico W make bt2n64_pico_w
Pico 2 W make bt2n64_pico2_w

Build and Flash

make bt2n64_pico_w
make flash-bt2n64_pico_w

Pairing

  1. Power on the N64 with the adapter connected.
  2. The adapter automatically scans for controllers on boot.
  3. Put your Bluetooth controller into pairing mode.
  4. Once paired, the controller reconnects automatically on subsequent use.
  5. Click BOOTSEL to start a 60-second scan for additional devices.
  6. Hold BOOTSEL to disconnect all devices and clear all bonds.

LED Troubleshooting

LED Pattern Meaning
Fast blink (100ms) N64 console not communicating -- check wiring (Data on GPIO 2, 3.3V, GND)
Slow blink (400ms) N64 OK, no Bluetooth controller connected -- put controller in pairing mode
Very fast blink (50ms) N64 + BT connected, no data flowing -- try cycling profiles or re-pairing
Solid on Fully operational

Troubleshooting

N64 does not detect controller (fast LED blink): - Check wiring: Data (GPIO 2), 3.3V, GND. - Ensure connections are solid (no loose wires). - Try pressing the N64 reset button.

No BT controller connected (slow LED blink): - Put your controller into pairing mode. - Click BOOTSEL to start a 60-second scan. - Hold BOOTSEL to clear bonds and re-pair from scratch.

Buttons not responding in game: - Verify the correct profile is active (cycle with Select + D-Pad). - Check that the LED is solid (data flowing). - Some controllers may need a specific BT pairing mode (Classic BT vs BLE).

Rumble not working: - Not all games use the rumble pak. - Verify with a known rumble game (e.g., Star Fox 64, Mario 64 Shindou). - Check that your BT controller supports vibration.

Controller disconnects frequently: - Move closer to the adapter (BT range is approximately 10m). - Ensure the controller battery is charged. - Hold BOOTSEL to clear bonds and re-pair.