MAME Android configuration tutorial / 2026-07-28

Use MAME configuration files safely on Android

Separate global, orientation, source, parent, and system settings, then prove which value wins without overwriting a working Android setup.

11 minute configuration guideUpstream MAME 0.288 concepts and Android ports that expose compatible INI handling; libretro cores and legacy ports may differ

Use MAME configuration files safely on Android

Back up the active INI and CFG directories, use the exact port's own Save Configuration or `-showconfig` output as evidence, and change the narrowest applicable file. In upstream MAME, command-line values override INI files, while progressively specific INI files can refine global values. Android ports may hide or replace this hierarchy, so verify support and the writable path before assuming a desktop filename works.

Do this in order

  1. 01

    Record the app or core version, back up every visible INI and CFG directory, and note whether the Android port exposes Save Configuration, inipath, or a command line.

  2. 02

    Capture the current effective values with the port's UI or upstream `mame -showconfig`; do not generate a new default file over an unreviewed working file.

  3. 03

    Choose the narrowest scope: global `mame.ini`, orientation or machine-class file, source file, BIOS/parent file, or exact system INI.

  4. 04

    Change one option and record the old value, target file, reason, and expected systems; avoid mixing input CFG files with INI option files.

  5. 05

    Cold-start one authorized system inside and outside the intended scope, then confirm the changed value and the unaffected control case.

  6. 06

    If the value does not stick, inspect command-line overrides, inipath order, write permission, and port limitations before creating duplicate files.

Decision and diagnostic table

Configuration layerBest useDiagnostic risk
Command line or wrapper launch optionOne controlled launch or enforced frontend valueIt can override every INI silently
Global `mame.ini`Defaults intended for all systemsA broad tweak can create unrelated regressions
Orientation/source/parent INIA documented group of related systemsScope can be wider than its filename suggests
Exact system INIOne machine-specific exceptionA later saved CFG value may still affect runtime behavior

Effective configuration is an ordered result

MAME documents a load order rather than a single settings file. Command-line values have highest precedence over INI values, and system-specific files can refine values inherited from broader scopes.

Use `-listsource` when upstream MAME is available to identify a driver's source file. Never invent a source INI name from the game's marketing title.

INI options and saved machine state are different

INI files hold options such as paths, video, and performance settings. MAME also saves per-system configuration and bookkeeping under its CFG directory; a UI change can therefore survive even when the INI looks unchanged.

Back up both families and change only one layer per test. Deleting every configuration file removes evidence and makes the original conflict impossible to reproduce.

Android wrappers define the reachable surface

A standalone port may expose part of upstream MAME's hierarchy, while a libretro core receives many settings through RetroArch core options and overrides. The upstream manual explains concepts, not the storage contract of every wrapper.

If a port does not display a writable path or support the relevant option, document that boundary and use its supported UI. Do not write into guessed app-private directories or weaken Android storage protections.

First-party sources

Related guides