Android MAME CHD storage and performance troubleshooting / 2026-08-03

Remove a MAME CHD from ZIP or 7z on Android without changing its identity

Keep random-access CHD media as a normal file under rompath so MAME does not need to expand an outer archive into memory or swap.

8 minute storage repairOfficial MAME 0.289 media search model; Android ports must expose an equivalent rompath or library folder

Remove a MAME CHD from ZIP or 7z on Android without changing its identity

Do not wrap a CHD in ZIP or 7z. MAME can read some CHDs from an outer archive, but it must load the entire archived CHD rather than using the CHD format's own random access. Copy the unchanged `.chd` into the documented machine folder under rompath, verify its hash with the target build or `chdman`, and leave the corresponding ROM ZIP separate.

Do this in order

  1. 01

    Record the Android port and MAME revision, machine short name, rompath, archive layout, CHD filename, size, and existing hash receipt.

  2. 02

    Confirm from the target build's dependency output which CHD and parent relationship the machine expects.

  3. 03

    Copy the lawful outer archive to a backup, then extract only the unchanged `.chd` with a trusted local tool into a temporary granted folder.

  4. 04

    Verify the extracted CHD's identity and internal integrity before moving it; do not recompress, convert, or repair the only copy.

  5. 05

    Place the CHD in the expected machine directory under rompath while keeping ROM ZIPs as their separate set archives.

  6. 06

    Rerun the targeted audit and launch test; preserve the before/after layout and hash instead of claiming a device-wide performance result.

Decision and diagnostic table

LayoutMAME behaviorDecision
`roms/game.zip` plus `roms/game/disk.chd`ROM archive plus random-access CHDPreferred conventional layout
CHD inside ZIP/7zOuter archive may require full expansionExtract unchanged CHD
CHD inside nested archiveNested archives are not loadedRemove the outer nesting
Delta CHD without parentShared parent data unavailableRestore the documented lawful parent

A CHD is already a compressed random-access container

MAME designed CHD for disks and other large media. Adding an outer archive removes the direct random-access advantage and can consume substantial memory or swap, especially for hard-disk and LaserDisc images.

Layout repair must preserve identity

Extracting an unchanged CHD is a storage operation, not permission to rebuild or source missing data. Compare hashes and run the target build's audit so a layout change is not confused with a version or parent mismatch.

ROM ZIP and CHD folder are separate objects

The small ROM set can remain in its supported archive while the large CHD sits in the named directory. Do not place both inside one convenience bundle or assume a frontend scan will reconstruct MAME's dependency graph.

First-party sources

Related guides