Project64: controller not detected — how to set up N64 gamepad input

High3 solutions

Project64 does not automatically configure modern gamepads. After plugging in an Xbox, PlayStation, or third-party controller you will see it listed in the input plugin but every button is unmapped — or worse, the controller is not detected at all.

You hit one of these:

  • Nothing happens in-game even though your controller works in Windows and the input plugin shows it in the list
  • The input plugin dialog is completely blank — no controllers listed at all
  • Buttons are assigned to the wrong actions — the A/B layout is reversed, the C-buttons don't work, or Z-trigger is missing
  • The analog stick produces no movement or drifts even when untouched
  • Project64 shows "No input plugin found" on first launch

Why this happens: The N64 had a unique controller layout — a central analog stick, a Z-trigger on the back, and four C-directional buttons — that maps awkwardly onto the two-analog-stick layout of modern gamepads. Project64 ships with the N-Rage input plugin (or a successor) which requires manual button assignments because there is no single standard mapping that works for every modern controller. Additionally, Project64 separates XInput (Xbox / modern gamepads) from DirectInput (older/generic gamepads) and may default to the wrong mode for your hardware.

Re-test after completing each step.

Last updated 1 week ago0 users reported this issue10
Sign in to interact

Solutions

solution #1488

configure-input-plugin-and-map-buttons (sortOrder=1, isMostHelpful)

Open the input plugin configuration dialog in Project64, select the correct controller port, and map each button manually. This is the definitive fix for any "controller does nothing in-game" situation.

  1. In Project64, go to Options → Configure Controller Plugin. This opens the input plugin dialog (typically N-Rage's Input Plugin or a built-in successor). If this option is greyed out, ensure a game is not currently running — close it first.
  2. In the dialog, click on Controller 1 (or the first active port). Make sure the "Plugged In" checkbox is ticked — if this is unchecked, Project64 treats port 1 as empty regardless of physical hardware. Tick it.
  3. Select your controller from the Device dropdown. If you are using an Xbox Series/One controller or an 8BitDo in XInput mode, it will appear as "Controller (Xbox …)" or "Xbox Controller." If you have a DualSense, DualShock 4, or third-party USB gamepad, it may appear under DirectInput — change the input method if needed.
  4. Map the buttons. The recommended mapping for a modern two-stick gamepad onto N64 is:
    • Analog stick: Left analog stick
    • A button: B (Xbox) / Circle (PlayStation)
    • B button: A (Xbox) / Cross (PlayStation)
    • Z-trigger: Left trigger (LT/L2) — this is the most important non-obvious mapping
    • L button: Left bumper (LB/L1)
    • R button: Right bumper (RB/R1)
    • C-Up/Down/Left/Right: Right analog stick (map as 4 directions or individual buttons)
    • Start: Start / Options
    • D-pad: D-pad (1:1)
    Click each N64 button slot in the dialog, then press the corresponding button on your physical controller to assign it.
  5. Click OK and launch a game. Verify the analog stick and all mapped buttons work in-game. If some buttons are reversed (A/B), simply swap those two mappings in the dialog and re-test.

Note: some modern versions of Project64 include preset profiles — if a preset named after your controller appears, load it first before mapping manually; it may only need minor adjustments.

solution #1489

fix-controller-not-detected-in-plugin-dialog (sortOrder=2)

If the input plugin dialog shows no controllers at all, or your controller disappears from the list when the dialog opens, there is a detection or permissions issue between Project64 and your gamepad. These steps resolve it.

  1. Plug in the controller before opening Project64. Hot-plugging a controller after Project64 is already running does not always refresh the device list. Close Project64, ensure the controller is connected and Windows recognises it (check Settings → Devices / Bluetooth & Devices), then reopen Project64.
  2. Run Project64 as administrator. Right-click the Project64 shortcut → "Run as administrator." Some system configurations require elevated permissions for DirectInput enumeration. If the controller appears now but not otherwise, add a permanent "Run as administrator" flag to the shortcut properties.
  3. Disable Steam Input / DS4Windows / similar software. Steam's controller overlay, DS4Windows, and similar remapping tools can intercept the gamepad before Project64 sees it, causing it to disappear from the device list. Close Steam completely (not just minimised), or in Steam's Big Picture → Settings → Controller → uncheck "Xbox Configuration Support / PlayStation Configuration Support." Then reopen Project64.
  4. Switch between XInput and DirectInput. In the N-Rage plugin dialog, find the input method selector (XInput / DirectInput). If your controller is an Xbox or 8BitDo in XInput mode, force XInput. For everything else, force DirectInput. The "automatic" mode sometimes latches to the wrong protocol and hides the device.
  5. Check for a missing or outdated input plugin. If the input plugin dialog is completely empty or you see "No input plugin found" on launch, the plugin file may be missing from your Project64 installation. Download the latest Project64 release from the official Project64 GitHub (github.com/project64/project64) and reinstall — official builds ship with the input plugin included. Do not download Project64 from unofficial sites that may bundle outdated or stripped versions.

solution #1490

fix-analog-stick-drift-and-deadzone (sortOrder=3)

If the analog stick moves the in-game character without you touching it (drift), or the character stops too early on fine movements (dead zone), calibrate the stick range inside Project64's input plugin.

  1. Open Options → Configure Controller Plugin and select Controller 1. Find the Analog stick deadzone slider (sometimes labelled "Dead Zone %" or "Range"). If it is at zero, small hardware imprecision in your physical analog stick reads as constant movement — raise the deadzone to 5–15% to mask this. If the stick already has a large deadzone but still drifts, the issue is hardware-side; skip to step 3.
  2. Calibrate the full range. Modern analog sticks have a wider physical travel than the original N64 stick. If the character's movement feels sluggish at full tilt, lower the "Range" value from 100% toward 80–90% so the emulator receives a full-scale signal before the physical stick reaches its edge. Conversely, if movement saturates too quickly (you can't walk slowly), raise it.
  3. Recalibrate your controller in Windows. Open Settings → Devices → search "Set up USB game controllers" → select your controller → Properties → Calibrate. Follow the wizard to reset the center point. This fixes drifts caused by accumulated calibration offset on the OS side, which Project64 inherits.
  4. Check for a hardware-worn stick. If the controller drifts in every application and recalibration does not fix it, the analog potentiometer is worn. On Xbox controllers this is a well-documented issue (stick drift) fixable with a contact cleaner or stick module replacement — this is a hardware problem, not an emulator one. Borrow a different controller to confirm Project64's settings are correct.
  5. For N64 games that require precise octagonal movement (e.g. Super Mario 64 long-jump, OoT aim): the N64's original octagonal gate produced different max-axis values than modern circular sticks. If movement feels off in these titles, try lowering the range to 85% — this better matches the original controller's output curve and is the most common community recommendation for N64 platformers/action games.
Experiencing a different problem?Report a new issue to help the community find solutions.

Comments (0)

No other comments yet. Be the first to share your thoughts.

Sign in to_leave_comment

On This Page