Blitzmax arcade emulator tutorial


 

Welcome to this humble tutorial. The ultimate goal of these chapters will be to create a fully working arcade game emulation coded entirely in Blitzmax. Why Blitzmax? Because it's:

  • Fast
  • Portable (Windows, Mac OS, Linux)
  • And most of all, fun!

For those of you who don't know Blitzmax, you can go take it a spin by downloading a free 30 days demo. You can find related info here: http://www.blitzbasic.com/Products/blitzmax.php. It is a 'Basic' language that incorporates advanced 2D graphics capabilities along with sound, input, etc. all you need to code games and apps. There is even a separate GUI module allowing the creation of just about any windowed applications you can think of.

Enough about Blitzmax, let's head right into our first chapter!

Chapter 1: The beginning

Chapter 2: The project setup

Chapter 3: The modules

Chapter 4: The cpu emulation

Chapter 5: The cpu emulation, continued

Chapter 6: Finishing touch

Here's a complete package including source code and data of the finished project:
Complete Emulator source code

If you don't have Blitzmax or just want to see the end result in action, I have packaged all-in-one compiled version, ready-to-run.
For Windows XP / Vista: Win32_spaceinvader.zip
For Mac OS: MacOS_spaceinvader.app.zip

Credits

An enormous thanks goes to Alessandro Scotti, author of SIDE: Space Invaders Didactic Emulator. He has an extremely useful website covering all aspects of emulating Space Invaders: http://www.ascotti.org/programming/side/side.htm. This project wouldn't exist without his help.