The Neo Geo, the classic cartridge-based arcade and home video game system turned 35 in 2025. By now, it has been thoroughly reverse-engineered and documented online. Recently, there has been a surge in homebrew demos and newly published homebrew games for the Neo Geo. And although development in 2026 is way easier than it was in the 90's, too many available tools are still GUI-only, closed-source or Windows-only binaries, which leaves a lot to be desired. ngdevkit [1] was born out of this observation. The ambition of this project is twofold: first, to be a fully open source, easy to use development kit; second, to prove that your entire game development workflow can rely exclusively on open source software for compiling code, creating graphics, composing chiptunes, designing sound FX...
This talk will give an overview of C programming for the Neo Geo with ngdevkit, and will discuss the main components of this open source development kit. ngdevkit provides a toolchain that leverages binutils, GCC, newlib and SDCC for code compilation, GnGeo or Mame for code execution, and GDB for source-level debugging. It also comes with an open source reimplementation of the original Neo Geo BIOS, with full ABI compatibility. In addition, this development kit provides the necessary crt0 and runtime to boot the game processor (68k) and the sound processor (Z80), and uses a custom linkscript to expose hardware features (video RAM, backup RAM, memory mapped registers, I/O state) as regular C variables. At last, it provides the first fully open source sound driver and chiptune player on the Neo Geo hardware. Throughout the talk, we will discuss how ngdevkit was made possible thanks to a vast trove of public domain documentation and a vast collection of open source software.
[1] https://ngdevkit.dev