Controller Mapping Guide for Citra MMJ – Bluetooth and USB Setup
Hardware

Controller Mapping Guide for Citra MMJ – Bluetooth and USB Setup

Map any Bluetooth or USB controller in Citra MMJ correctly, tune dead zones, and resolve common input lag issues on Android.

D
by Dana Brooks

Playing 3DS games with a physical controller is a completely different experience from touchscreen controls. Citra MMJ supports most Bluetooth and USB OTG controllers out of the box. This guide walks through the full setup process and covers dead zone tuning and common issues.

Supported Controller Types

Citra MMJ is compatible with any controller that Android recognizes as a gamepad input device:

  • Xbox controllers (Bluetooth or USB) — Windows Wireless Adapter also works via USB OTG
  • PlayStation DualShock 4 and DualSense (Bluetooth or USB)
  • 8BitDo controllers (all modern models in Android mode)
  • Nintendo Switch Pro Controller (via Bluetooth, requires Android 10+)
  • Generic HID gamepads — results vary, test with a mapping app first

Connecting Your Controller

Bluetooth

  1. Put your controller in pairing mode (check manufacturer instructions)
  2. Open Android Settings → Bluetooth and scan for devices
  3. Select your controller from the list and complete pairing
  4. Launch Citra MMJ — it should detect the controller automatically

USB OTG

  1. Connect a USB OTG adapter to your phone’s USB-C or Micro-USB port
  2. Plug the controller’s USB cable into the OTG adapter
  3. Android will prompt to open an app — select Citra MMJ or dismiss
  4. Launch Citra MMJ — the controller should be detected immediately

Mapping Buttons in Citra MMJ

Once connected, access the mapping screen:

  1. Go to Settings → Controls
  2. Select Map Gamepad Controls or Configure Input
  3. Follow this recommended mapping order:

Map in this sequence to avoid conflicts:

  1. Face buttons (A, B, X, Y) — map first, these are the foundation
  2. D-Pad — map all four directions
  3. Start and Select (or + and –)
  4. L and R shoulder buttons
  5. ZL and ZR (map to controller triggers if available)
  6. Circle Pad (left analog stick)
  7. C-Stick (right analog stick — maps to right stick on your controller)
  8. Home button (optional)

Dead Zone Tuning

Dead zones prevent small unintended stick movements from registering as input. Too small a dead zone causes drift; too large makes the stick feel unresponsive.

Recommended starting values:

AxisDead Zone
Left stick15–20%
Right stick15–20%
Triggers (as axes)10%

To find the right value, open a game and walk in a straight line. If your character drifts without input, increase the dead zone by 5% and test again.

Resolving Input Lag

Input lag with Bluetooth controllers is a known issue on Android. If you notice delay between pressing a button and seeing the action on screen:

  1. Reduce Bluetooth interference — move away from Wi-Fi routers and other Bluetooth devices
  2. Enable Bluetooth HID mode on controllers that support it (8BitDo controllers have this toggle)
  3. Use a wired USB OTG connection — removes wireless latency entirely
  4. Enable “Reduce Bluetooth Input Lag” in Citra MMJ settings if available in your build

For competitive or rhythm games, USB OTG is always preferred over Bluetooth.

Saving Your Profile

After mapping, save your controller profile so you do not need to remap after restarting the emulator. Name it with your controller model (e.g., “DS4 Default”) so you can switch between multiple controller setups easily.

With a well-mapped controller, the 3DS library opens up significantly — games designed for physical buttons play far more naturally than with touchscreen overlays.