Neo Geo development - Neo Thunder
Last updated on March 31, 2012, 7:59 by Sebastian Mihai
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.



Downloads



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.

Other
- 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.

Screenshots




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!
If you use the materials on this page, or any other page on this web site, you do so at your own risk. They are provided "as is". No warranty is provided or implied. I neither guarantee that the materials will work, nor that they will not be harmful in any way.

RGB Overdose (my entry at the GMD game programming competition)

Gameboy development - Burly Bear vs. The Mean Foxes

Project One - An action RPG engine

Neo Geo development - Neo Thunder

Sega Genesis development - Gen Poker

Airplane Vegas slot machine

Animal Keeper - a JavaScript and HTML5 Canvas game

Gameboy Advance development - smgbalib library

Gameboy Advance development - Balanced Diet

Super Nintendo development - Bucket

Atari 2600 development - Snappy (batari basic)

Nintendo NES development - Invaders must die!

Atari Lynx development - Catkanoid

TurboGrafx-16/PC Engine development - Alddee

Colecovision development - Mowleco

Sega Master System development - Burgers of Hanoi

Gameboy Color development - Burly Bear vs. The Mean Foxes (GBC version)

Nintendo Virtual Boy development - Real Danger

Vectrex development - Scalar Ownage

ZX Spectrum development - simple input/graphics example

Atari 5200 development - Shooting Gallery

Neo Geo Pocket Color development - NGCollector

My homebrew cartridges

Mowleco (ColecoVision) featured in Retro Gamer issue 106

BlackBerry PlayBook development - Sheepish Bearings (Native SDK, OpenGL)

Capacitor study circuit

Catch That LED! - an electronic game circuit

555 timer and 4017 decade counter - traffic lights circuit

A simple Atari 2600 joystick tester circuit

Seven segment display circuit with the 4511 decoder and the 4029 counter

Video compilation of my classic console homebrew games

Novice calligraphy - Gothic hand, with letter guide

Angry Video Game Nerd (AVGN) theme song on the Gameboy Advance

Fractals in JavaScript and HTML5 Canvas

Blue Elf 2 309-in-1 JAMMA PCB - troubleshoot controls not working

Gold of the Kingdoms - an XNA/C# homebrew game

aSMtris - Tetris in assembly language (x86, 16-bit)

Nintendo DS development - Geoincursion