RetroArch Android input remapping / 2026-07-27

Remap RetroArch buttons for one game on Android

Change a core's emulated buttons without rewriting the physical controller profile, then save the result at game, content-directory, or core scope and prove it reloads.

9 minute remap guideRetroArch on Android; available core devices and button labels are core-specific

Remap RetroArch buttons for one game on Android

Keep the global controller profile unchanged. Load the authorized content with the intended core, open Quick Menu → Controls, change only the affected RetroPad-to-core mappings, test every required action, and save a Game Remap File. Use a directory or core remap only when the same mapping is intentionally shared, then restart the content to prove the `.rmp` file reloads.

Do this in order

  1. 01

    Verify the controller autoconfig works in the RetroArch menu and record the frontend build, core name and revision, content name, and current Input Remapping directory.

  2. 02

    Load the content, open Quick Menu → Controls, select the correct port, and confirm its Device Type is supported by that core.

  3. 03

    Change only the core-facing buttons that the game needs; leave frontend hotkeys and the physical controller profile untouched.

  4. 04

    Resume content and test movement, start, coin or select, every required action button, and the menu hotkey so you cannot lock yourself out.

  5. 05

    Return to Quick Menu → Controls and choose Save Game Remap File; use content-directory or core scope only after documenting why every affected title needs the same mapping.

  6. 06

    Close and reload the content, verify the remap appears, and keep the previous `.rmp` file or a deletion note so the change is reversible.

Decision and diagnostic table

Remap scopeUse it whenMain risk
GameOne title has a distinct panel or preferred layoutFilename or content identity changes can prevent a match
Content directoryA curated folder intentionally shares one mappingUnrelated content in the folder inherits it
CoreEvery title using that core needs the same translationA broad change can hide title-specific controls
Controller profilePhysical buttons are wrong in menus and all coresDo not use it for one game's layout

Hardware binding and core remapping are different layers

Autoconfiguration maps the physical pad to the RetroPad. A remap translates RetroPad inputs into the controls exposed by the loaded core. Keeping those layers separate lets one controller remain predictable across the frontend while one arcade title receives a special panel layout.

Frontend hotkeys live outside the core's emulated buttons. Test the menu combination after every remap so an action button does not accidentally become an exit or save-state command.

The narrowest scope is the safest default

Libretro loads remaps in a hierarchy: game is more specific than content directory, which is more specific than core. A game remap therefore limits the blast radius while you validate the layout.

Promote a proven layout to a broader scope only when the affected collection is deliberate and homogeneous. Folder organization becomes configuration once a content-directory remap exists.

Reloading is part of the save operation

A mapping that works before closing content may still be only session state. Reload the same content and inspect Quick Menu → Controls to confirm RetroArch found the expected `.rmp` file.

If the wrong mapping returns, record every active scope before editing again. Removing the most specific remap can reveal a broader directory or core remap that was always present.

First-party sources

Related guides