How to Play Secret of Mana With 3 Controllers on Android
FleetingSecret of Mana is a 3-player game. On real SNES that third pad only works through the Super Multitap. Lemuroid caps at 2 pads because it never wires up the multitap — so it’s the wrong tool here. Use RetroArch, which exposes the multitap in the core options.
Why not Lemuroid
Lemuroid is a simplified frontend over the same libretro cores RetroArch uses, but it doesn’t surface the per-core multitap setting — hence the 2-controller ceiling. RetroArch is more menu-heavy but it’s the reliable bet for 3+ pads.
Download + install RetroArch
RetroArch publishes signed APKs on the libretro buildbot. Bump VERSION to
the current stable (browse https://buildbot.libretro.com/stable/ ) and pick
the arch the device runs — aarch64 for modern 64-bit phones, ra32 for
old 32-bit ones. Cores aren’t bundled; grab them in-app via the Online
Updater after first launch.
VERSION=1.22.2 # latest stable as of 2025-11-17; see listing above
ARCH=aarch64 # or ra32 for 32-bit devices
APK=/tmp/RetroArch_${ARCH}.apk
curl -fL -o "$APK" \
"https://buildbot.libretro.com/stable/${VERSION}/android/RetroArch_${ARCH}.apk"
clk android -d piano adb package install "$APK" --flow
timeout
Setup in RetroArch (Android)
- Install RetroArch, load a SNES core — Snes9x - Current or bsnes/higan; both emulate the multitap correctly.
- Pair all 3 Bluetooth pads first. In
Settings → Input → Port 1/2/3 Controls, confirm each physical pad maps to a distinct port. RetroArch auto-assigns in pairing order, so pair them in the order you want. - Load Secret of Mana, then in the in-game
Quick Menu → Controls(orCore Options) set Port 2 device to SNES Multitap. Ports 3+ then become active. - Save a per-game override so it sticks:
Quick Menu → Overrides → Save Game Overrides.
Gotcha: multitap goes on port 2
Secret of Mana puts players 2 and 3 on the multitap, so the multitap must be on port 2, not port 1. If players 2/3 don’t register, that’s almost always the mistake.
Controller gotchas
- The analog stick does nothing. SNES has no stick — pushing it moves
nobody. Use the D-pad, or remap:
Settings → Input(FR: Touches) →Port N Controls → Analog to Digital= Left Analog. - Pad → port assignment is the
Device Indexfield under eachPort N Controls, not the multitap setting. Two ports on the same index (or a port left on None) is why a player won’t move. - Hotkeys/controls respond to player 1’s pad by default — save/load from it.
Hide the touch overlay (and keep a way into the menu)
With physical pads the on-screen overlay is just clutter: Settings → On-Screen Display → On-Screen Overlay → Display Overlay = off (or
Hide Overlay When Controller Connected = on to keep it for tablet-only play).
Catch: the overlay also held the menu button — kill it and you lose your way
back into RetroArch. Bind a gamepad combo first: Settings → Input → Hotkeys → Menu Toggle (gamepad combo) = L3 + R3.
Combo hotkeys (e.g. L2 + R2 = save state)
RetroArch binds one button per hotkey — there’s no “two-button” field. You build a combo with the Hotkey Enable modifier: set it to a held button, and every other hotkey then requires holding it.
So for L2 + R2 = quick save: Hotkey Enable = L2, Save State = R2
(Load State = L1 → L2 + L1 = quick load). SNES uses neither L2 nor R2, so
no in-game conflict.
Two snags: the Hotkeys submenu is hidden until Settings → User Interface → Show Advanced Settings = on; and Settings → User Interface itself only
lives in the global Settings, not the in-game Quick Menu.
Action hotkeys (save/load) fire from one specific pad only — there’s no
per-pad save/load, so pick which pad is port 1 (the adult’s) and drive saves
from it. The menu-toggle and close-game hotkeys are the exception: those
can be configured generically, i.e. from any pad.1 Separately, Settings → Input → All Users Control Menu = on lets any pad navigate the menu once
it’s open.2
Simpler alternative
Snes9x EX+ (Robert Broglia) also supports the multitap with a simpler UI. RetroArch is still the more reliable choice for 3+ pads.
Migrate Lemuroid saves to RetroArch
Good news: the battery saves (SRAM) migrate cleanly. Lemuroid writes them
as <rom>.srm and deliberately names them to be RetroArch-compatible — the
source even says so (SavesManager.getSaveRAMFileName). So migration is just
copying .srm files between the two apps’ save directories.
Save states (states/) are a different story: they’re tied to the exact
core and core version that produced them, so a Lemuroid state won’t reliably
load in RetroArch. Migrate the SRAM, then re-make any states in RetroArch.
Paths:
- Lemuroid SRAM —
/sdcard/Android/data/<pkg>/files/saves/, where<pkg>iscom.swordfish.lemuroid(Play/F-Droid) orcom.swordfish.lemuroid.debug(the source-built APK from how to contribute to lemuroid). - RetroArch SRAM — whatever
Settings → Directory → Save Filespoints at; default on Android is/storage/emulated/0/RetroArch/saves/. Turn offSettings → Saving → Sort Saves Into Folders By Core Nameor the.srmends up one level deeper than RetroArch looks.
The .srm basename must match the ROM filename RetroArch loads (sans
extension). If you renamed ROMs between the apps, rename the .srm to match.
LEMUROID_PKG=com.swordfish.lemuroid # .debug for the source build
LEMU_SAVES=/sdcard/Android/data/${LEMUROID_PKG}/files/saves
RA_SAVES=/storage/emulated/0/RetroArch/saves # = Settings → Directory → Save Files
mkdir -p /tmp/lemuroid-saves
clk android -d piano adb pull "$LEMU_SAVES" /tmp/lemuroid-saves
clk android -d piano adb shell mkdir -p "$RA_SAVES"
clk android -d piano adb push /tmp/lemuroid-saves/saves/. "$RA_SAVES/"
clk android -d piano adb shell ls -la "$RA_SAVES"
Caveat: Android/data/… is locked down by scoped storage on Android 11+, so
the adb pull needs a device where adb can read it — i.e. root (adb root),
or an older Android. If pull is denied, copy the saves/ folder out via the
device’s file manager first.
Permalink
-
RetroBat forum — “How to use Hotkeys / Retroarch Menu with all controllers?”: “Only the commands for closing the game and for opening the menu can be generically configured. All other hotkeys can only be configured for a specific controller.” ↩︎
-
Same thread: “At least I can enter the Retroarch menu with all controllers now.” ↩︎