Neo Geo development - Neo Thunder
After wrapping up the Gameboy project, I set my sights on the Neogeo. Neo Thunder is a run of the mill space shooter. You move all over the screen shooting baddies and dodge the myriad of bullets headed your way. Programming the Neogeo was a breeze compared to the Gameboy. It really is a powerhouse, handling a crazy amount of sprites. The game is cool; I play it every now and then, but it's difficult.

The game is available in two formats: cartridge/arcade and Neo Geo CD.

My approach was a bit different with this game. Instead of working out a nice engine and then deciding to move on to a different console without balancing it (like I did with Burly Bear vs. The Mean Foxes), I've written this one as quickly as I could and then spent time to polish the gameplay.

Make sure you read some of the notes below, in order to get the game running, or to download a package that will quickly get you developing your own Neogeo game. Part of the reason I created this game was for others to pick it up, modify it, or use the dev kit to create original games.
If you just want to play it, I still recommend reading the "How it works" section below.


The game (cartridge/arcade version, works on Neo Geo AES, MAME, etc.)
- compiled rom (MAME) - grab this to play the game (MAME)
- Neo Geo bios - emulators (MAME) usually need this in order to run Neogeo roms
- compiled rom (FinalBurn Alpha) - FBA version of the rom

The game (Neo Geo CD version)
- Neo Thunder ISO - use this either with a virtual CD emulator such as Daemon Tools, or burn it on a CD and play it on a Neo Geo CD console
- Neo Geo CD bios - Neo Geo CD emulators usually need this

Source and dev kit
- complete dev kit - (updated March 2012) this one includes the development environment, along with the Neo Thunder source directory (found in the src subdirectory), so you can build and modify it yourself! This updated version has much cleaner build scripts, and includes two build scripts: one for cartridge output, and one for Neo Geo CD output. I have also included MameUI32 and NeoCD emulators. This dev kit is based on the NeoBitz dev tools by Jeff Kurtz
- source - the Neo Thunder source code directory.

- Puzzle De Pon! - this is the original "host" rom; can be useful if you're developing. Of course, you'll have to rename it to puzzledp.zip in order for it to be recognized by MAME
- MAME emulator - a solid emulator. I used it as a run-time environment to try out my code (will run the game in cartridge format)
- NeoCD emulator - a solid Neo Geo CD emulator. Works with the game in CD format

How to play it (cartridge/arcade version)

  • Download the compiled rom, MAME, and the Neogeo bios
  • Unpack MAME
  • Place puzzledp.zip and neogeo.zip inside MAME/roms/
  • Start up MAME and locate Puzzle De Pon! in the list, and start it
  • Ignore all the warnings about the rom being corrupted. It will play just fine
If you're using an emulator other than MAME, you're on your own for rom directories, etc.!

How to play it (Neo Geo CD version)

  • Download the Neo Thunder ISO, NeoCD emulator, and the Neo Geo CD bios
  • Burn NeoThunder.iso, or load it in a virtual CD (using something like Daemon Tools)
  • Place the Neo Geo CD bios inside the emulator directory/
  • Start emulator
  • Ignore all the warnings about the rom being corrupted. It will play just fine

How it works (cartridge/arcade version)

A real Neogeo game, Puzzle De Pon! is used as a "host". Source code is compiled into .bin files, which replace some of Puzzle De Pon!'s original .bin files. The result is that Neogeo emulators such as MAME believe they are starting up Puzzle De Pon!, when instead they are starting up just a shell of the game, but with the innards made up of the homebrew code that was just compiled.

As a result, the emulators will report some checksum errors when running the game, but it should still function normally, after displaying some seemingly corrupted screens. Just be patient and it will start.

How it works (Neo Geo CD version)

This version uses Puzzle Bobble files as a "host". Compiled files are inserted, replacing some of the original Puzzle Bobble files, and then the entire directory is burned to an ISO (which you download).

Developing your own

Make sure to read all readmes inside the dev kit. The Neo Thunder directory should contain additional information on exactly which .bins are kept from Puzzle De Pon!, and which .bins are generated from the source code. I used two .bat scripts: one compiles the C code, and the other compiles and deploys to the MAME roms directory.

You can immediately go into the neothunder directory, and run build_Cartridge.bat, which will compile, build, and deploy the game roms to the MameUI32 directory. You can then start MameUI32 and play the game (find it in the Favorites).
Run the build_CD.bat to get a Neo Geo CD output. All compilation output is found in the output directory.


Here is the AES cartridge version!

And here is the cartridge running on Neo Geo AES real hardware!

Here is the CD version on a Neo Geo CDZ console:

I was surprised how well Neo Thunder looked on an old-school tube tv. It looked and felt much better than when running in MAME on my PC.

Here it is running in MAMEoX (a version of MAME for Xbox) on the above-mentioned tv:

FinalBurn Alpha support

NeoThunder is now supported by the FBA emulator!