Arkanoid booteg emulator written in java

Arkanoid booteg arcade machine emulated in java


Arkanoid is one of my favourite arcade game I used to play in arcades around 1988. I was not very good at playing it, but I saw a couple of boys finishing the game at that time. Fast forward 30 years, I though I might try to write an FPGA implementation of the arcade machine - but wait! I had no idea how the machine actually worked internally. So I decided to write a java emulator first, which should be much simpler (for me at least) to write than a verilog code. That way I could get a better understanding of the machine internals.
But why not use Arkanoid MAME driver as a base for my FPGA implementation, you may ask? Well, MAME code is quite big and might be slightly harder to understand how the code pieces are plumbed all together. Also I wanted to physically write the emulator to have a hands-on experience. Never the less MAME emulator was very helpful in describing machine's memory areas, graphics and palette format etc. Also it was invaluable in finding out what was wrong with my copy of the Z80 processor java emulator, which at first didn't run the game's code correctly because of the bug in the handling of interrupts (now fixed - based on MAME code).

The emulated machine is relatively simple: just one Z80 processor and one sound generator chip (AY-8910). The original TAITO machine used another protection MCU chip, but for simplicity I emulated a bootleg machine where the chip was missing. Unlike my prevoious java emulator of Phoenix I also plumbed in the emulation of the AY-8910 sound chip, which I adapted from another emulation project called arcadeflex.

The emulator is playable via mouse or cursor keys and has sound as well. It was written for purely educational purposes.

Bellow is the java jar package with the compiled code and the source code. To run the emulator type the following command on the command line:
java -jar emu_arkatayt.jar arkatayt.zip


emu_arkatayt.jar.zip Executable binary with the source. Make sure you unzip the archive first.