Skip to content

BIOS & cores

Two things make a game run: a core (the emulator) and, for some systems, a BIOS (the console’s original startup firmware). Leaf handles cores for you; BIOS files you must supply yourself.

A core is the emulator for a given system. Every supported system’s emulator ships in the release, so games are ready to play as soon as your ROMs are in place; a system shows up in the launcher once its emulator is present on the device. Each emulator is the work of its own authors: the full license text and a pointer to the source for every one ships inside the install under licenses/.

Under the hood:

  • RetroArch cores handle the bulk of systems. Leaf’s cores are built with a core builder forked from spruceOS’s build lane, which is itself downstream of libretro-super (the same source the wider libretro ecosystem uses), so they track upstream rather than being hand-maintained forks.
  • Standalone PPSSPP runs PSP games; a dedicated build outperforms the RetroArch core on this hardware. PSP ROMs can be .chd, .iso, .cso, or .pbp, and PSP needs no BIOS. Standalone sessions work a little differently: the Menu button opens PPSSPP’s pause menu, and the RetroArch in-game menu and save states don’t apply. Volume keys work as usual.
  • Standalone DraStic runs Nintendo DS games (.nds) from Roms/NDS/, and needs no BIOS of your own. Like PPSSPP it’s a standalone session: the Menu button opens DraStic’s own menu (save states, options, and the second-screen layout live there), so the RetroArch in-game menu doesn’t apply. Volume keys work as usual.
  • Dreamcast and Nintendo 64 run through their RetroArch cores today (Flycast and Mupen64Plus-Next); dedicated standalone builds are planned.

Because Leaf runs upstream RetroArch, features that upstream adds (including RetroAchievements with compatible cores) come along for the ride rather than needing to be reimplemented.

A BIOS is the copyrighted firmware from the original console. Leaf never includes BIOS files, and it can’t legally distribute them. This is standard across all emulation projects: you provide your own, ideally dumped from hardware you own.

Put them in the BIOS/ folder at the root of the SD card:

BIOS/
neogeo.zip
...
  • Neo Geo - requires neogeo.zip in BIOS/. Without it, Neo Geo games appear but won’t launch.
  • Arcade (FinalBurn Neo / FBNeo) - many arcade games depend on a BIOS or a parent ROM set (for example, CPS systems need their BIOS). These also live in BIOS/ or alongside the game set.
  • PlayStation - games generally run without one, but a real BIOS in BIOS/ (for example scph5501.bin for US titles) improves compatibility.

Handheld systems like Neo Geo Pocket / Color need no BIOS; plain ROMs just work.

Arcade emulation is the fussiest part of any handheld. Three things matter:

  1. Match the ROM-set version. Arcade cores only load ROM sets that match the core’s expected version. A set from the wrong version silently fails to load even when the game name looks right. Use a set that matches the core.
  2. Keep them zipped. Arcade games load from their .zip by exact filename; do not unzip or rename them (the opposite of some other systems).
  3. Parents & BIOS. Clones reference their parent set (both must be present), and neogeo.zip acts as the shared BIOS for the whole Neo Geo library.

The Miniloong Pocket 1’s CPU comfortably handles 8- and 16-bit systems and handhelds. Heavier systems (e.g. anything approaching 3D-era consoles) are demanding on this class of hardware; expect mixed results even with the right core and BIOS in place.