Guide
Getting started with ngdevkit
ngdevkit
is the open-source SDK for the Neo Geo, written by Damien Ciabrini and maintained since
2015. It is a large part of why homebrew for this machine is a normal thing to attempt in
2026 rather than a reverse-engineering project, and a great deal of what gets built for the
console today passes through it — including Neo Studio.
What is in it
-
A 68000 cross-compiler. A full GNU toolchain targeting m68k, so the
game itself is written in C rather than assembly.
-
Hardware headers. Named access to the video registers, the sprite
control blocks, palette RAM, inputs and interrupts — the difference between
writing a game and writing pokes to magic addresses.
-
A sound side. A C and assembler toolchain for the Z80 plus nullsound,
so music and sound effects are part of the same project rather than a separate craft.
-
Graphics tools. Packers that turn your images into C-ROM sprite data
and S-ROM fix tiles in the layouts the hardware expects.
-
nullbios. An open replacement for the system BIOS, so a homebrew ROM
can boot without redistributing anything owned by SNK.
-
Debugging that works. A build of GnGeo with remote GDB support, which
means breakpoints and source-level stepping instead of printf archaeology.
How to start
Install the toolchain, then build
ngdevkit-examples
— nineteen small programs that go from hello world through sprites and animation,
palettes and scrolling, ADPCM-A and ADPCM-B sound, music, software DIP switches, raster
interrupts, backup RAM, P-ROM bankswitching, C++ and the memory card. Getting every one to
compile and run is the real onboarding: it proves your toolchain is sound and walks you
through the hardware one concept at a time.
Expect the setup to take an evening. It is a cross-compiler, an emulator and a debugger
being assembled on your machine, and that has never been a one-click affair on any
platform. The project is actively maintained — it was presented at FOSDEM in 2026
— and the issue tracker is the right place when something does not build.
What it is not
ngdevkit is an SDK, not an editor. It hands you a compiler, headers and packers; it does
not give you a place to paint a level, arrange animations, or hear a patch while you write
it. That is not a gap in the project — it is what an SDK is. But it does mean the
content side of a game is yours to organise, in whatever combination of Aseprite, a
tracker, custom scripts and makefiles you assemble.
It is open source, under the LGPL. If you intend to sell cartridges, read the licence
rather than a summary of it — ours included.
Where Neo Studio sits
Neo Studio is built on ngdevkit rather than beside it. The visual editor produces C
against the ngdevkit headers — the same code a hand-written homebrew would compile
— and a build server runs the same gcc-m68k toolchain to turn it into a ROM. The
difference is where you spend your attention: the editor takes care of packing sprites,
planning palettes and driving the sound chip, and the compiler underneath is the one the
scene already trusts.
If you want to understand the machine, start with ngdevkit and its examples. If you want
to make a game this week, start with the editor. Neither closes the other off.
Enter the beta
How to make a Neo Geo game →