Guide
P, C, S, M, V: what is actually inside a Neo Geo ROM
A Neo Geo game is not one file. It is five kinds of ROM, each wired to a different part of
the board. A MAME romset keeps them as separate files in a zip; a
.neo packs the same contents into a single file for a NeoSD
flashcart. Same game, two containers.
The five kinds of ROM
| ROM | Holds |
| P | The 68000 program — the game itself |
| C | Sprite graphics, in numbered pairs |
| S | The fix layer: 8×8 tiles for text and HUD |
| M | The Z80 audio program |
| V | Sound samples for the YM2610 |
The split is physical, not organisational. Each type feeds a different chip on a different
bus, which is why the C-ROMs ship in pairs (the video hardware reads two at once) and why
you cannot simply concatenate everything and hope. If you want the detail on how graphics
are packed, that is its own subject.
Romset or .neo: which one you want
-
A MAME romset is a zip holding each ROM as its own file, named the way
MAME expects. This is what you want for emulators, for debugging, and for anything that
needs to inspect one piece in isolation.
-
A
.neo is the NeoSD flashcart format: one file with a
header and the ROM regions inside it. This is what you want to run a game on real
hardware — copy it to the card, pick it from the menu.
Neither is more “real” than the other, and going from one to the other is
repackaging rather than conversion. Any tool that can produce a Neo Geo game should be
able to give you both, because they answer different questions: does it work, and does it
work on the machine.
The BIOS is not part of your game
The Neo Geo has a system BIOS, and it is separate from any cartridge — the console
is a base unit and the games are carts, arcade board or not. An emulator needs that BIOS
before it can boot anything, which catches people out: a perfectly good romset that refuses
to start is usually a missing BIOS, not a broken build.
For homebrew there is an open replacement — nullbios, part of the
ngdevkit
project — which is redistributable and boots a cartridge without shipping anything
owned by SNK. It is what Neo Studio uses so a project can run in the
browser without you supplying a BIOS of your own.
Getting one out of a project
Neo Studio compiles a project into all five regions and exports either container: a
.neo for a NeoSD, or a MAME romset. In between, the built ROM boots in an
emulator embedded in the same page, so the round trip from an edit to a running game is a
few seconds rather than a toolchain.
Enter the beta
How to make a Neo Geo game →