Skip to content

Emulator Guide

How To Organize Supported Game Files For An Android Emulator

Practical guide to folder layout, file naming, and per-core expectations for an Android emulator ROM folder with legally obtained game files.

How To Organize Supported Game Files For An Android Emulator preview

Written by the Fulldive product engineering team, based on direct inspection of the repositories listed below.

A tidy Android emulator ROM folder is the difference between an emulator that feels finished and one that feels broken. Most complaints we see about emulators on Android are actually file-organization issues: missing cover art, duplicated titles, saves going to the wrong folder, or a core not picking up files because the extension is wrong. This post is a practical guide to organizing supported game files for an emulator like Fulldive’s One Emulator for Game Consoles. Nothing here is about sourcing games — those should be legally obtained game files you already own.

The one rule that solves most problems

One folder per system. Name it after the system. Put files in the right system folder with the right extension. Everything else in an Android emulator depends on the library scan finding your files and classifying them correctly.

A reasonable top-level layout on an Android device:

/Emulator/
    NES/
    SNES/
    GameBoy/
    GBA/
    NDS/
    N64/
    3DS/
    PSX/
    Saves/
    States/

Keep Saves/ and States/ separate from the game folders. Some cores write in-game saves next to the game file by default; overriding that path prevents your game folder from filling with .sav, .srm, and state files over time.

Why folder structure matters for the library scan

When Fulldive’s emulator moved its search, systems, and games screens to Compose (commit 38ddf7fa) and later swapped in an updated animated game list (commit 4d836cb4), both changes assumed that a scan would group files by detected system and present them cleanly. If files are misnamed or sitting in the wrong folder, the scan still works, but you end up with the wrong system icon, wrong covers, or a game the library categorized as the wrong platform.

The in-game menu rebuild (commit 2372e240) made per-title settings easier to find, which also means per-title settings are only as clean as the library entries they attach to. Good file layout pays off here.

File extensions, by system family

Cores identify files partly by extension. A few practical notes:

  • Game Boy / Color / Advance: .gb, .gbc, .gba. Avoid renaming them to .bin or .zip; the scan may miss them.
  • NES / SNES: .nes, .sfc, .smc. Headered vs headerless images sometimes need a core option change.
  • Nintendo DS: .nds. The desmume-to-melonDS migration in commit f71aade4 handled save continuity; file extensions stayed the same.
  • Nintendo 3DS: .3ds, .cia. New 3DS core support landed in commit e9ca6f9b; Citra hardware shader cache work in commit 640cdc59 improved first-run performance, but files still need to be in the right place for the library to see them.
  • Compressed archives: .zip and .7z often work for simple cartridge-based systems. For disc images, keep them uncompressed — compressing a .iso or .cue/.bin pair usually breaks boot.

Naming conventions

The library uses the file name to match covers and metadata. A few tips:

  • Keep the title recognizable: Game Name (Region) (Revision).ext.
  • Avoid unusual characters: commas, colons, and emoji can trip up older Android file APIs.
  • If a game is multi-disc, keep the discs in the same folder with a clear (Disc 1)/(Disc 2) suffix, plus the .m3u playlist file some cores use.
  • Don’t rename a file after the emulator has already scanned it, or you may orphan its save.

Saves and states

Save states and in-game saves should live in predictable folders. We go into detail in Save states vs in-game saves on Android emulators, but the short version:

  • Point the emulator’s save folder to /Emulator/Saves/ so your backups are easy.
  • Keep state files in /Emulator/States/, because state files are large and tied to a specific core.
  • Before any core migration (like desmume to melonDS) or emulator update, copy the save folder somewhere safe. The lazy migration in commit f71aade4 is designed to preserve saves, but a backup is cheap.

BIOS and firmware

Some systems need BIOS or firmware files to boot. These files should be placed in the emulator’s designated BIOS folder, with the exact file name the core expects. The emulator does not ship them, and we do not distribute them; they must be extracted by the user from hardware they own or obtained through legitimate channels.

Scoped storage realities

Android’s scoped storage changed how apps access the shared file system. Practical implications:

  • Pick a folder once, grant access once, and stay in it. Bouncing between folders on newer Android versions can trigger access prompts each time.
  • Core download handling was affected by Android’s packaging rules too — a minification-related core-download bug was fixed in commit 3c3a0626. File-layout bugs and delivery bugs both tend to show up the same way to users: “my games are gone.”
  • If you move the emulator between devices, move the whole /Emulator/ tree, not just the game folder.

A starter checklist

Before your next library scan:

  • Every game is in a folder named after its system.
  • File extensions match the system conventions.
  • Disc images are uncompressed; cartridge images may be zipped.
  • Saves/ and States/ are separate from game folders.
  • BIOS files, where required, are in the BIOS folder with exact names.
  • You have a backup of Saves/ somewhere outside the emulator.

Fulldive’s emulator apps do not include or distribute copyrighted ROMs, BIOS files, or firmware. Users are expected to supply legally obtained game files from hardware they own. Library scan results and playable compatibility vary by game, file, device, Android version, and emulator core. We do not target or endorse ROM-download queries.

Sources

Last updated: 2026-04-16. Commit hashes and version numbers are drawn from Fulldive repositories inspected on 2026-04-13.