Use MAME -bench on Android without mistaking it for gameplay performance
If the Android port passes upstream arguments, `-bench n` runs n emulated seconds with video and sound disabled and throttling off. Use it to test raw emulation headroom, then run the same authorized machine normally; a benchmark pass cannot prove correct graphics, audio, frame pacing, input, or sustained thermals.
Do this in order
- 01
Record the device, Android version, port and MAME revision, machine short name, power mode, temperature state, and current settings.
- 02
Audit one lawfully obtained machine and confirm it reaches a stable, repeatable scene with default settings.
- 03
If the port explicitly supports arguments, cold-start it with the machine short name and `-bench 120`; save the reported average speed.
- 04
Return to normal video, sound, and throttling and measure the same two-minute scene, including speed percentage, audio, and frame pacing.
- 05
If bench is fast but normal play is slow, test one documented renderer or audio change at a time; if both are slow, treat CPU emulation cost or thermal limits as the lead.
- 06
Restore defaults, repeat after the device cools, and keep both results with the exact build instead of comparing scores from another MAME generation.
Decision and diagnostic table
| Result | What it isolates | Next decision |
|---|---|---|
| Bench fast; play full speed | Adequate raw and output headroom | Keep defaults and test longer |
| Bench fast; play slow | Video, audio, pacing, or wrapper overhead | Change one output layer |
| Bench slow; play slow | Raw emulation or thermal budget | Use a lighter verified machine or device |
| Port rejects -bench | Wrapper does not expose the upstream verb | Use its documented performance tools only |
The benchmark deliberately removes user-facing output
MAME documents `-bench n` as `-str n -video none -sound none -nothrottle`. That is useful precisely because it removes several layers, but it also means the result cannot validate those layers.
A normal scene is the control experiment
Pair the number with a fixed gameplay scene at default settings. Record emulation speed rather than display FPS alone, and repeat after cooldown so thermal throttling is visible.
Version and machine identity stay attached
Do not compare an upstream 0.289 number to an unidentified libretro core or old Android port. Driver changes, device definitions, dynamic recompiler availability, and wrapper behavior can all change the workload.
Benchmark only a machine you are authorized to use. A performance score does not prove ownership or permit redistribution of ROM, BIOS, CHD, artwork, audio, input profiles, or benchmark bundles.