Controllers and touch / 2026-07-24

Set up Android arcade controllers and touch controls without double input

Configure one input layer at a time, map player controls separately from emulator UI controls, and keep a touch fallback for portable play.

8 minute setup guideAndroid gamepads; current MAME-style input concepts

Set up Android arcade controllers and touch controls without double input

Connect the controller before launch, confirm Android sees each axis and button, map game inputs and emulator UI inputs separately, then disable overlapping frontend remaps. Keep touch controls available for menu recovery but hide or reduce them only after hardware input is proven.

Do this in order

  1. 01

    Pair or connect one controller before opening the emulator.

  2. 02

    Confirm the device works in Android or the vendor’s official test screen.

  3. 03

    Map emulator UI actions first: menu, accept, back, pause, and exit.

  4. 04

    Map Player 1 directions, buttons, start, and coin without using UI shortcuts.

  5. 05

    Test one digital game, then one analog game if the device has axes.

  6. 06

    Add Player 2 only after Player 1 remains stable across a full relaunch.

Decision and diagnostic table

SymptomLikely layerFocused fix
One press triggers twiceAndroid/frontend/core mappings overlapClear one layer and retest
Game works, menu does notUI controls unmappedMap UI accept/back/menu separately
Players swap after reconnectDevice numbering changedConnect in fixed order or use stable device IDs
Touch blocks the viewOverlay layoutReduce opacity/scale after hardware recovery controls work

Treat UI and machine controls as separate

Arcade inputs such as Player 1 Button 1 are not the same as emulator actions such as opening the menu. Mapping both to the same chord can cause accidental exits, pauses, or duplicate presses.

Always retain a way to reach the input menu. On a phone, a small touch menu control is useful even when the rest of the overlay is hidden.

Calibrate analog controls per game

Trackballs, paddles, pedals, and light guns are not interchangeable with a digital stick. Begin with the emulator’s default axis, then adjust dead zone, saturation, and sensitivity one value at a time.

Save a per-game override only when the general profile works elsewhere. That keeps one unusual cabinet from damaging the whole library.

Stabilize multiplayer numbering

Some input providers number devices in connection order. Reconnect controllers in the same order or use the stable mapping feature supported by the target build.

Back up configuration files after a verified session, and record which controller firmware and connection mode were used.

First-party sources

Related guides