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
| File | What it is | CRC32 |
|---|---|---|
sp-s3.sp1 | MVS Asia/Europe ver. 6, the default system ROM | 91b64be3 |
sm1.sm1 | Z80 sound program | 94416d67 |
sfix.sfix | Fix layer tiles (the text layer) | c2ea0cfd |
000-lo.lo | Zoom lookup table | 5a86cff2 |
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
| File | What it is | CRC32 |
|---|---|---|
sp-s2.sp1 | MVS Asia/Europe ver. 5 | 9036d879 |
neo-po.bin | AES Japan | 16d0c132 |
neo-epo.bin | AES export (the US and European home console) | d27a71f1 |
uni-bios_4_0.rom | Universe BIOS 4.0, the community replacement with a region and mode menu | a7aab458 |
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.zipbuilt 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:
- The folder the game ROM is in
system/fbneo/inside the RetroArch system directory- 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:
| Platform | System directory |
|---|---|
| Windows | RetroArch\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:
| File | What it is | SHA1 |
|---|---|---|
neocd_f.rom | Front-loading console | a5f4a7a627b3083c979f6ebe1fabc5d2df6d083b |
neocd_t.rom | Top-loading console | cc92b54a18a8bff6e595aabe8e5c360ba9e62eb5 |
neocd_z.rom | CDZ | b0f1c4fa8d4492a04431805f6537138b842b549f |
neocd_sf.rom, neocd_st.rom, neocd_sz.rom | The same three with the SMKDan patches applied | 4a94719ee5d0e3f2b981498f70efc1b8f1cef325, 19729b51bdab60c42aafef6e20ea9234c7eb8410, 6a947457031dd3a702a296862446d7485aa89dbb |
front-sp1.bin, top-sp1.bin, neocd.bin | The MAME-named dumps of the same ROMs | 53bc1f283cdf00fa2efbb79f2e36d4c8038d743a, 235f4d1d74364415910f73c10ae5482d90b4274f, 7bb26d1e5d1e930515219cb18bcde5b7b23e2eda |
uni-bioscd.rom | Universe BIOS CD | 5142f205912869b673a71480c5828b1eaed782a8 |
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.
Why No Download Links
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