Last updated: September 2026

Every other BIOS on this site is a single file with a single hash. The Neo Geo one is a zip archive that contains anywhere from four to thirty files, and its contents change with the emulator version. That is why “neogeo.zip missing” is the most common arcade emulation error I see, even from people who have the file sitting right there. The emulator is not saying the file is absent. It is saying the file does not contain what this build of the emulator expects.

This page covers what has to be inside the zip, how FinalBurn Neo and the MAME cores search for it, the version trap in detail, the separate Neo Geo CD BIOS set, and how the files were dumped from real boards. It is the arcade entry in my RetroArch BIOS reference.


What neogeo.zip Contains

The Neo Geo has no single BIOS. The MVS arcade board and the AES home console each carry a 128 KB system ROM, plus three support ROMs shared by every board. The zip holds all of them, and the emulator picks one system ROM to boot with. Every file inside is 131,072 bytes.

The four files that must be present

FileWhat it isCRC32
sp-s3.sp1MVS Asia/Europe ver. 6, the default system ROM91b64be3
sm1.sm1Z80 sound program94416d67
sfix.sfixFix layer tiles (the text layer)c2ea0cfd
000-lo.loZoom lookup table5a86cff2

FinalBurn Neo’s documentation says only the MVS Asia/Europe ver. 6 system ROM is mandatory among the BIOS variants; the three support ROMs are always needed. With those four the core boots every game.

The optional system ROMs

FileWhat it isCRC32
sp-s2.sp1MVS Asia/Europe ver. 59036d879
neo-po.binAES Japan16d0c132
neo-epo.binAES export (the US and European home console)d27a71f1
uni-bios_4_0.romUniverse BIOS 4.0, the community replacement with a region and mode menua7aab458

The full set carries more than twenty other variants: US, Japanese and European MVS revisions, the debug BIOS, the earlier UniBIOS releases from 1.0 up. You do not need them. FinalBurn Neo has a Neo-Geo mode core option that picks which system ROM to boot, and if the one you pick is missing it falls back to one that is present.

Two bytes inside a system ROM tell the emulator what it is: the byte at offset 0x400 is 0x00 for AES and 0x80 for MVS, and the byte at 0x401 is the region (0 Japan, 1 US, 2 Europe). That is why the AES and MVS files differ at all; the rest of the code is nearly identical.


The Version Trap

Every emulator loads a file called neogeo.zip, and every emulator validates the contents against its own internal list. The lists differ:

  • MAME 2003-Plus knows 15 BIOS variants. Its arcade ROM set is based on MAME 0.78.
  • Current MAME knows around 31. Between versions 0.171 and 0.172 it added a Universe BIOS revision, so every neogeo.zip built before that fails on every MAME after it.
  • FinalBurn Neo tracks its own DAT files and updates them “to stay in sync with the best dump available”, in its own words.

So a modern neogeo.zip with 31 files fails on MAME 2003-Plus, and an old 15-file one fails on current MAME. Both errors say the BIOS is missing or invalid. The fix is never to rename or copy a file; it is to rebuild the zip against the DAT for the exact emulator build you run. FinalBurn Neo ships its DATs in the dats/ folder of its repository, and a ROM manager like RomVault or clrmamepro turns any pile of Neo Geo ROMs into a set that matches.

If you only run FinalBurn Neo, there is a way to sidestep the CRC check: a system/fbneo/patched/ folder. Files in there skip the checksum but still have to match the original names and sizes. That is the documented route for running a UniBIOS version the DAT does not list yet.


Where neogeo.zip Goes

FinalBurn Neo (RetroArch)

FinalBurn Neo searches three places in order:

  1. The folder the game ROM is in
  2. system/fbneo/ inside the RetroArch system directory
  3. The RetroArch system directory root

I keep it next to the games, because that is the one location every arcade emulator agrees on. The RetroArch system directory per platform is the usual one:

PlatformSystem directory
WindowsRetroArch\system\
Linux~/.config/retroarch/system/
Android/storage/emulated/0/RetroArch/system/
Steam Deck (Flatpak)~/.var/app/org.libretro.RetroArch/config/retroarch/system/

MAME cores (RetroArch)

MAME 2003-Plus and the other MAME cores want neogeo.zip in the same folder as the game ROM. If your set is “full non-merged”, each game zip already contains the BIOS files and the separate neogeo.zip is not needed at all. Split and non-merged sets need it alongside.

Standalone MAME

In the roms folder, zipped, with the exact name. MAME’s own FAQ names a stale neogeo.zip as the first thing to check when a Neo Geo game reports missing files.

EmuDeck on Steam Deck

EmuDeck’s FinalBurn Neo and standalone MAME search Emulation/roms/arcade/, then Emulation/bios/mame/, then Emulation/bios/. EmulationStation-DE, the front end, only sees it in Emulation/roms/arcade/, so that is where it should live.

Linux handhelds

Every custom firmware runs FinalBurn Neo for Neo Geo, and the search order above applies. The safest placement on all of them is next to the game ROMs in the Neo Geo or arcade folder. The BIOS folders (MUOS/bios/ on muOS, BIOS/ on OnionOS and GarlicOS, roms/bios/ on ROCKNIX) also work through the system-directory fallback.


Neo Geo CD

The Neo Geo CD is a different machine with a different BIOS, and the RetroArch core for it, NeoCD, wants its own set in a neocd/ subfolder of the system directory. The files are 512 KB each, and the core’s documentation publishes SHA1 hashes rather than MD5:

FileWhat it isSHA1
neocd_f.romFront-loading consolea5f4a7a627b3083c979f6ebe1fabc5d2df6d083b
neocd_t.romTop-loading consolecc92b54a18a8bff6e595aabe8e5c360ba9e62eb5
neocd_z.romCDZb0f1c4fa8d4492a04431805f6537138b842b549f
neocd_sf.rom, neocd_st.rom, neocd_sz.romThe same three with the SMKDan patches applied4a94719ee5d0e3f2b981498f70efc1b8f1cef325, 19729b51bdab60c42aafef6e20ea9234c7eb8410, 6a947457031dd3a702a296862446d7485aa89dbb
front-sp1.bin, top-sp1.bin, neocd.binThe MAME-named dumps of the same ROMs53bc1f283cdf00fa2efbb79f2e36d4c8038d743a, 235f4d1d74364415910f73c10ae5482d90b4274f, 7bb26d1e5d1e930515219cb18bcde5b7b23e2eda
uni-bioscd.romUniverse BIOS CD5142f205912869b673a71480c5828b1eaed782a8

One file is enough. The BIOS Select core option chooses between whichever are present and resets the machine when you change it. Games load as .cue with .bin or .iso plus audio tracks, or as .chd. Note the .rom extension on the NeoCD-named files; a .bin rename does not help.

FinalBurn Neo runs Neo Geo CD too, through its own neocdz.zip that pairs neocd.bin with 000-lo.lo.


Where the Files Came From

The Neo Geo system ROMs are standard EPROMs, and on the older MVS boards they sit in sockets. The neo-geo.com community’s method for dumping your own is an EPROM programmer that supports the 27C1024 package; the TL866II Plus is the cheap one people name. Pull the chip, read it as a 27C1024, and the 128 KB file is your sp1. Later boards solder the ROM down, and desoldering it is a job for someone who has done it before.

The Neo Geo CD is more interesting. The NeoCD SD Loader by furrtek ships without any Neo Geo code because the boot ROM is SNK’s copyright, so on first boot it dumps the console’s own BIOS to the SD card. That is the most honest hardware dumper I know of: the product cannot work until you have made your own copy.


Common Problems

“Verify the following romsets” in FinalBurn Neo. A split set needs its parent and neogeo.zip present and matching the DAT. Rebuild.

“Romset is unknown”. The game is not in this build’s DAT, or the zip is misnamed. Check the name against the DAT.

Games boot on FinalBurn Neo, fail on MAME 2003-Plus. The version trap. Build a second neogeo.zip from the MAME 0.78 DAT for that core.

Everything ran last year and fails after an update. Same trap in the other direction. The emulator’s list grew.

UniBIOS menu does not appear. The core is booting a different system ROM. Set the Neo-Geo mode core option, or use the patched folder for a UniBIOS version the DAT does not know.


The MVS and AES system ROMs are SNK’s copyrighted code, the UniBIOS is a separate copyrighted work with its own licence, and the zips on download sites are the wrong version for your emulator about half the time anyway. Build your set from your own dumps against the DAT and the error goes away for good.


FAQ

Where do I put neogeo.zip for FinalBurn Neo?

Next to the game ROMs. It also searches system/fbneo/ and the system root.

Why does neogeo.zip work in one emulator and not another?

Each emulator checks the zip against its own list of files. Old and new lists differ, so one zip rarely satisfies both.

Do I need neogeo.zip with a full non-merged MAME set?

No. Full non-merged game zips include the BIOS files.

Is the UniBIOS required?

No. It adds a region and AES/MVS switch menu. The stock sp-s3.sp1 boots everything.

Does Neo Geo CD use the same BIOS?

No. It needs its own neocd_*.rom files in a neocd/ subfolder.


FinalBurn Neo core docs | MAME 2003-Plus core docs | NeoCD core | neogeodev wiki: System ROM


Last verified: September 2026