Use a RetroArch touch overlay and physical controller together on Android
First prove the physical controller with the touch overlay disabled, then prove the overlay with the controller disconnected. Re-enable both and decide whether the overlay should remain visible, show physical inputs, or be disabled by a narrow core or game override. Both feed RetroArch's input path, but an overlay image, its touch hitboxes, controller autoconfiguration, and core remapping are different layers.
Do this in order
- 01
Record the RetroArch package, build, core, controller name, Android connection type, overlay preset, orientation, and active configuration path.
- 02
Disable the overlay, reconnect the controller, confirm its autoconfiguration message, and test menu navigation plus one lawful game's essential inputs.
- 03
Disconnect the controller, enable the overlay, and test visible buttons, touch hitboxes, multi-touch combinations, rotation, and menu return.
- 04
Reconnect the controller and verify that one physical press creates one game action while untouched overlay buttons remain idle.
- 05
Choose the intended presentation: keep touch controls visible, adjust opacity, show physical inputs, or save a narrow core/game override that disables the overlay.
- 06
Cold-relaunch the same game, then test a second game to prove that the override scope, controller mapping, hotkeys, and touch layout did not leak.
Decision and diagnostic table
| Symptom | Likely layer | Next safe check |
|---|---|---|
| Controller works; touch does not | Overlay preset, hitbox, or orientation | Test overlay alone |
| Touch works; controller does not | Android detection or autoconfiguration | Test controller alone |
| One press causes two actions | Duplicate bind, hotkey, or remap | Inspect RetroPad and core remap |
| Overlay returns after relaunch | Override scope or save path | Check active config and saved override |
An overlay is both a picture and an input map
Libretro overlays use image files plus a configuration that defines touchable regions. A visible PNG does not prove that hitboxes, multi-touch, scaling, or orientation match the display.
Test overlay input without a controller first. That isolates touch geometry from Android device enumeration and controller profiles.
The physical controller maps through RetroPad
RetroArch normally maps real hardware to the virtual RetroPad through autoconfiguration or manual bindings, then a core or game remap can change what the emulated machine receives.
Do not repair a controller by editing overlay hitboxes, and do not repair touch geometry by replacing a valid controller profile. Capture the layer that failed before saving anything.
Save the narrowest presentation rule
If a cabinet always uses a controller, a core or game override can hide the overlay while leaving global mobile touch settings intact. Per-game rules should win only where that content genuinely needs them.
Keep menu access and an owner recovery path. Hiding the overlay without a working controller or menu hotkey can make the session appear frozen even though emulation is running.
Controller and overlay configuration does not authorize game content or third-party artwork. Use only ROMs, BIOS, CHDs, overlay images, sounds, and controller profiles you are permitted to use and distribute.