Tools – Neo-Geo Programming Guide
Development Tools
In order to program for the Neo-Geo, you're going to require a few tools. Since I'm extremely lazy, not everything mentioned here is linked, meaning you'll have to actually search the Internet for it. In addition, there's also the chance that the program won't run on your OS, which means you have to work even harder. OOPS!
Emulators
Unless you have a way of running code on real hardware (e.g. a flashcart, burning a CD, etc.), a lot of your testing is going to be done on emulators.
- MAME – The Multiple Arcade Machine Emulator (Neo-Geo MVS/Arcade)
- MESS – Multi Emulator Super System (Neo-Geo AES/Home, CD/CDZ)
- UME – MAME and MESS in the same binary.
- Final Burn Alpha – Neo-Geo (MVS, AES, CD/CDZ) emulator with multi-slot support for MVS systems.
- NeoCD/SDL – Neo-Geo CD emulator.
- Kawaks – Neo-Geo emulator with tools like Sprite Factory and Tile Viewer. Emulation is inaccurate.
Also, tell me to stop being lazy and assemble a NeoShock release.
Assemblers
Assemblers do the dirty work of converting your source code to a binary.
- ASM68k (Windows-only) – ASM68k is the 68000 assembler I have had the most luck with when it comes to compiling a working P ROM.
- vasm (cross-platform) – A cross-platform assembler that can be compiled to target multiple architectures and syntaxes, including 68000 and Z80.
- asmx (cross-platform) – A cross-platform assembler that supports multiple architectures, including 68000 and Z80.
By no means are these your only options. These are just merely the ones I have tested. The developers who modified MVSTracker changed its driver to compile with WLA-DX, so that might be worth checking out for your Z80 needs.
My overall recommendations (as far as P ROMS are concerned) are ASM68k, then vasm, in that order. I'm leaning towards using vasm for my projects, however, due to cross-platform availability.
Graphics
Neo-Geo graphics are stored in "odd" formats, whether they're sprites or fix layer tiles. In order to work with Neo-Geo graphics, you're going to need to find ways to convert the files to workable formats.
- YY-CHR.NET – Graphics editor that works with native retro game console formats.
- NeoFixFormat – A plugin for YY-CHR.NET that allows it to read the Neo-Geo Fix format tiles.
- Neo-Geo Graphic Tool Suite (nggts) – A set of tools for decoding and encoding both Fix (
*code8
) and Sprite (*code16
) graphics.
Warning:recode8
swaps some of the palette entries around.
Sound
Personally, I do not know much about getting sound out of the Neo-Geo, so you might want to ask around the Neo-Geo development community...
- Modified MVSTracker (Windows-only) – A modified version of MVSTracker with a new driver (supporting PSG and DAC).
- AYFxEdit and AFMix – (see above link) Tools for creating PSG sound effects and converting up to 3 PSG effects in 1 for the new driver.
- A future version of DefleMask will support Neo-Geo. For now, try playing along in the Genesis/Mega Drive section.
It's known that the MVSTracker player (M1 ROM) does not work on hardware. It seems like the fix is simple, but I have not looked into it yet.
Other Tools
There are a number of other tools you'll want to have lying around when making Neo-Geo software.
- Byteswap (Windows binary) – A tool for byteswapping a file. This version has been modified to swap 2 bytes by default instead of 4.
- ROMWak – A multi-function tool that can handle various tasks for Neo-Geo files.