Fix a RetroArch touch overlay after rotating Android
First keep the device in one orientation and confirm Display Overlay is on. Check whether Hide Overlay When Controller Is Connected removed it, then verify Auto-Rotate Overlay and the separate portrait or landscape scale, separation, and offsets. Change screen orientation only after the touch hitboxes align; core video rotation and UI orientation are different layers.
Do this in order
- 01
Record device orientation, RetroArch build, menu driver, core, overlay preset, controller connection, and whether buttons are invisible, misplaced, or visually correct but unresponsive.
- 02
Lock one orientation, enable Display Overlay, and temporarily disable Hide Overlay When Controller Is Connected.
- 03
Load the default official overlay preset and test one menu-safe button before editing opacity, scale, separation, or offsets.
- 04
Check Auto-Rotate Overlay, then adjust only the active portrait or landscape geometry while watching both the image and the hitbox response.
- 05
Separate Screen Orientation from Video Rotation and Allow Core Rotation; change one layer at a time and restart if the build requires it.
- 06
Reconnect the hardware controller, decide whether the overlay should hide, and save the narrowest core, directory, or game override that reproduces the working layout.
Decision and diagnostic table
| Symptom | Likely layer | Next test |
|---|---|---|
| Overlay vanishes when gamepad connects | Hide-on-controller rule | Disable it temporarily |
| Image moves but taps hit old places | Preset or geometry mismatch | Return to default preset |
| Portrait good, landscape bad | Separate orientation values | Adjust landscape fields only |
| Game rotates but menu does not | Core/video rotation | Do not rotate UI blindly |
Overlay image and hitboxes are one preset
Libretro overlays define images, normalized screen rectangles, and input hitboxes in a configuration file. A decorative image placed elsewhere does not move the active touch regions with it.
Return to an official known-good preset before diagnosing a custom theme. Once taps align, adjust opacity and visual scale without changing several coordinate layers together.
Portrait and landscape keep separate geometry
RetroArch exposes separate scale, aspect adjustment, separation, and offsets for portrait and landscape. Auto-Rotate Overlay can select between layouts, but it cannot repair a preset with the wrong bounds.
Test the same control in each orientation. If only one fails, preserve the working values and limit changes to the failing orientation.
A controller can hide a healthy overlay
Hide Overlay When Controller Is Connected is useful on a gamepad but confusing during diagnosis, especially when Android reconnects a Bluetooth pad automatically.
Decide the intended hybrid behavior after the touch layout works. A per-core or per-game override avoids forcing arcade touch controls onto unrelated systems.
Use official or properly licensed overlay assets. A touch-control repair does not authorize ROM, BIOS, CHD, cabinet art, logos, screenshots, music, or copied commercial control-panel artwork.