RetroArch Android hotkey setup / 2026-07-28

Set up safe RetroArch hotkeys on Android

Create a deliberate Enable Hotkeys chord, remove accidental quit and state conflicts, and prove the Android controller still reaches the core.

10 minute setup guideRetroArch on Android with a physical controller; labels and available binds vary by frontend build and input driver

Set up safe RetroArch hotkeys on Android

First prove the controller's normal RetroPad mapping, then assign one button as Enable Hotkeys and bind only the actions you actually need. Use a two-button chord for destructive or session-changing actions such as Quit, Reset, Load State, and Close Content. Restart RetroArch and test the menu, gameplay, save/load direction, and exit path with authorized content before copying the setup.

Do this in order

  1. 01

    Disconnect extra controllers, confirm the target pad works in Android and the RetroArch menu, and back up the active configuration before changing hotkeys.

  2. 02

    Open Settings → Input → Hotkeys, clear any accidental bindings, and assign one reachable button to Enable Hotkeys.

  3. 03

    Bind Menu Toggle first, then add only the required actions; reserve a deliberate chord for Quit, Close Content, Reset, Load State, and Save State.

  4. 04

    Load authorized test content and verify ordinary game buttons do nothing special when Enable Hotkeys is not held.

  5. 05

    Hold Enable Hotkeys and test Menu Toggle, then confirm Save State and Load State are not reversed and that Quit requires the intended chord.

  6. 06

    Quit normally, restart RetroArch, repeat the test, and record the frontend version, input driver, controller transport, and final chord.

Decision and diagnostic table

SymptomLikely hotkey boundarySafe correction
A face button quits or resetsAction is bound without a practical enable chordAssign Enable Hotkeys or unbind the action
Core never receives a keyboard keyFrontend hotkey intercepts direct keyboard inputUse Game Focus or remove the conflicting bind
Save seems to erase progressSave/Load State direction is confusedTest with a disposable state and label both binds
Chord works until restartConfiguration was not saved or another config loadsSave, restart, and inspect the active config path

Hotkeys sit above the core

RetroArch maps physical input to its RetroPad and separately watches frontend hotkeys. A core can therefore receive the correct game button while the frontend also interprets an unsafe global action if the hotkey layer is too broad.

Keep the controller profile stable. Repair frontend actions under Hotkeys, and use a game or core remap only for the emulated controls.

Enable Hotkeys creates an intentional namespace

Libretro documents that assigning Enable Hotkeys makes other hotkeys require that button. This turns common game buttons into frontend commands only while the modifier is held.

Do not place the modifier where it is held constantly during normal play. Test simultaneous diagonals and action buttons so a comfortable chord does not introduce a gameplay conflict.

Treat state and exit actions as destructive

Load State can replace the running session with an older snapshot, and Reset, Close Content, or Quit can discard unsaved progress. Bind them sparingly and verify each with a disposable authorized test case.

A visible menu path remains an important recovery route. If the controller chord fails after an update, use the menu to inspect or unbind it rather than repeatedly guessing button combinations.

First-party sources

Related guides