Performance troubleshooting / 2026-07-24

Improve Android arcade emulator performance without breaking timing

Measure sustained emulation speed, thermal behavior, audio underruns, and renderer cost before changing frameskip or disabling accuracy features.

8 minute tuning guideAndroid ARM64; results are device and game specific

Improve Android arcade emulator performance without breaking timing

Begin from defaults, keep throttling enabled, and measure one repeatable scene after the device warms up. Reduce display and frontend overhead first, test a different supported renderer second, and use frameskip only as a visible compromise. Do not change CPU clock or machine timing to make an unsupported game appear fast.

Do this in order

  1. 01

    Restore default emulator settings and close screen recorders or overlays.

  2. 02

    Record app/core version, device model, Android build, battery mode, and display refresh rate.

  3. 03

    Measure a repeatable gameplay section for at least ten minutes.

  4. 04

    Check sustained emulation speed and audio underruns, not only rendered FPS.

  5. 05

    Reduce shaders, scaling filters, and excessive output resolution before core timing changes.

  6. 06

    Retest one change at a time and keep the best verified baseline.

Decision and diagnostic table

SignalInterpretationAction
Starts fast, slows after minutesThermal or power limitCool device, remove case, compare power mode
100% speed but uneven displayFrame pacing or refresh mismatchTest supported renderer and display rate
Below 100% with crackling audioCore workload exceeds sustained capacityReduce overhead or choose a lighter supported target
Only one game is slowMachine complexity or driver-specific issueCompare driver status and device tier

FPS is not emulation speed

A skipped video frame can preserve game timing while reducing visual smoothness. Conversely, a frontend can display frames while the emulated machine runs slowly. Use the core’s speed percentage or equivalent timing statistic.

Keep the same save point or attract-mode segment so changes are comparable.

Test sustained, not burst, performance

Phones can boost briefly and then throttle as temperature rises. A ten-minute run exposes whether a setting is genuinely sustainable. Record device temperature only if Android exposes it through a trusted diagnostic; do not invent precision.

Battery saver, charging state, background capture, and high-refresh displays can all change results.

Preserve correctness

Disabling synchronization or changing the emulated CPU clock can create sound, input, physics, or save-state errors. Treat those controls as machine-specific experiments, not general performance fixes.

If current MAME cannot sustain a demanding machine on your device, document that boundary. A deliberately versioned fallback can be considered, but it needs its own accuracy, license, and romset review.

First-party sources

Related guides