Controller Support

TruchiEmu works with Xbox, PlayStation, MFi, Switch Pro, and most USB/Bluetooth pads — with multi-player keyboard mapping, priority-based slot allocation, disable/reset for stuck pads, and per-system overrides.

Overview

Plug in a gamepad and it just works. TruchiEmu recognizes the controller, picks a sensible button layout for the game you're playing, and is ready in seconds. From there you can fine-tune deadzones, swap any button, or remap the whole layout per system. With v1.8.1, the input stack supports multiple players on a single keyboard plus gap-slot prioritization — your friend who grabs a gamepad mid-session slots into the next empty P-slot instead of stealing your keyboard assignment.

What You Get

  • Plug and Play: USB and Bluetooth controllers are recognized the moment you connect them
  • Broad Compatibility: Xbox, PlayStation, MFi, and Switch Pro pads, plus most generic USB/Bluetooth controllers
  • Smart Defaults: TruchiEmu picks a sensible button layout based on the controller type and the system you're playing
  • Per-Controller Profiles: Each controller has its own mapping, remembered between sessions
  • Per-System Overrides: A PlayStation pad can be SNES-style on one system and Genesis-style on another
  • Multi-Player Keyboard Mapping: Refactored keyboard input supports multiple players from a single physical keyboard — combine a gamepad for P1 and keyboard for P2 (or vice versa)
  • Gap-Slot Prioritization: When a new controller connects, TruchiEmu prioritizes the first empty slot before substituting a keyboard player — your P2 stays P2
  • Replace Keyboard with Controller Option: Toggle whether a freshly-connected controller should automatically take over a keyboard-assigned slot
  • Disable & Reset: Disable a stuck controller or reset the controller list without quitting the app; keyboard inputs can also be disabled/reset independently
  • Live Input Display: The mapping UI mirrors your sticks and buttons live as you press them
  • Deadzone & Sensitivity: Tune stick response so drift doesn't wander the character
  • Remap Anything: Swap any button to any other button, including face, shoulder, and stick clicks
  • Controller Type Icons: TruchiEmu shows visual icons in the toolbar and settings for Xbox, DualShock 4, DualSense, MFi, and Arcade Stick — a generic icon otherwise
  • Analog Mouse: Use a stick to control the mouse in DOS and ScummVM games — see the Analog Mouse page for full details
  • Hotkeys: Per-system and per-game hotkey configuration for save states, screenshots, share, Training Mode reset, and other common actions
  • Switch Keys: Switch via suyu needs a prod.keys file — see Custom Core Import for the path

Multi-Player Configuration

TruchiEmu supports up to 4 simultaneous players. The slot assignment system can be summarized:

Slot Allocation Rules (v1.8.1+)

  1. P1 is "anchored"

    Player 1 is reserved — a freshly connected gamepad will never displace P1 unless you've explicitly enabled "replace keyboard with controller" and the P1 slot is keyboard.

  2. First Empty Slot

    When a new gamepad connects, it's assigned to the first empty P2–P4 slot. If all are full, it queues for the next disconnect.

  3. Gap-Slot Prioritization

    If the keyboard is currently filling the first empty slot, the new gamepad will only replace the keyboard if you've enabled "replace keyboard with controller" in Settings → Controllers. By default, the gamepad goes to the next gap (a slot that's truly empty).

  4. Controller Disable

    If a controller is misbehaving or stuck, you can disable it from the Controllers panel without quitting — or reset the full controller list. Keyboard inputs have the same disable/reset options.

Multi-Player Keyboard

TruchiEmu lets multiple players share one keyboard in addition to gamepads. From Settings → Controllers → Keyboard, you can configure separate keys for Player 1, Player 2, and so on — up to the max players your games support. Mixed configurations (gamepad for P1, keyboard for P2) are fully supported.

Tested scenarios: 4 gamepads, shared keyboards, and mixed gamepad-plus-keyboard setups — the slot allocation keeps people in their seats even as gamepads come and go. Disable a stuck pad in the panel; the other slots stay live.

Step-by-Step Configuration Guide

Basic Setup

  1. Connect Controller

    Connect via USB or pair via Bluetooth. TruchiEmu auto-detects the controller and shows a notification with the detected type.

  2. Verify Slot Assignment

    A notification pill shows which player slot the controller took (P1–P4). If the wrong slot, disable/reset — or simply unplug and replug.

Custom Button Mapping

  1. Open Settings → Controllers

    Pick a system (or use Global Default), select your controller or keyboard, then click any button in the mapping list to remap.

  2. Press a Physical Button

    Press a physical gamepad button or keyboard key to bind it to the selected action. The mapping UI shows the binding immediately.

  3. Save/Load Named Profiles (Gamepad Only)

    Save named mapping configurations for reuse — handy for switching between arcade sticks and gamepads.

  4. Tune Deadzone

    Adjust analog-stick deadzone and sensitivity in the same panel so drift won't wander the character.

Reset Buttons

If your controller list gets stuck or a pad stops responding, hit Disable on the row, then Reset. Keyboard inputs have the same disable/reset options.

Controller Test Sheet

The test sheet shows a live pad visualizer with buttons, sticks, and triggers. Use it to verify a new pad before play.

  • Open: Settings → Controllers → Test
  • Check: press buttons and move sticks; the visualizer mirrors input live
  • Calibrate: set stick ranges per direction, adjust deadzone, then remap as needed
Connected controllers with player slots and Test Controller button

Connected controllers with P1–P4 slots and the Test Controller button

Related Features