Star Wars Arcade

I have started disassembling the Star Wars arcade game. I will post my content as I produce it. The goal is to eventually put the game in an FPGA.

Disassembled audio firmware

Star Wars Arcade Game

Star Wars Arcade Game


Asteroids Arcade Game

Asteroids Arcade Game

Asteroids Arcade

I decided I wanted to learn about how old vector arcade games work and maybe make my own vector game one of these days.  I started my learning experience with Asteroids and completely disassembled it. I had three main goals for this project:

 

1- Disassemble the firmware and thoroughly comment it

2- Create an HDL simulation of the vector state machine

3 - Create schematic and PCB design files for the main board

 

Mad props to Arcade Jason for hooking me up with some old Asteroids hardware.  Check out his Youtube channel!


Metroid Disassembly

Metroid Box Art

Metroid Box Art

I grew up playing 8-bit Nintendo games and I have always been fascinated with how the games work.  Several years ago, I found a partial disassembly of the game engine for the original Metroid.  I studied it and greatly expanded it.  I was able to disassemble about 60% of the game.  This was my first attempt at a disassembly so it is a little rough around the edges.  Below are the 9 files that compose the disassembly.  The code has been tested to reassemble properly and make a working game.

Metroid Defines

Bank 0

Bank 1

Bank 2

Bank 3

Bank 4

Bank 5

Bank 6

Bank 7


Dragon Warrior Disassembly

Recently, I decided to disassemble another game.  I chose to work on Dragon Warrior 1.  It is a work in progress and I plan on completing the disassembly.  Currently, about 80% of the game is disassembled.  To the right is a completion map.  The four columns represent the four program banks in the game.  The hex numbers to the left of the banks represent the addresses of the instructions.  The green areas represent code that is fully disassembled.  The yellow represents areas where a significant amount of disassembly has been done.  The white areas have little or no work done.  Bank 0 (far left column) contains map data, graphical functions and end boss data.  Bank 1 contains the music functions, enemy graphics data, dialog functions and window functions among other things.  Bank 2 contains all the dialog in the game.  Bank 3 is the main game engine.  The disassembly files for this game can also be reassembled into a working game.

Dragon Warrior Defines

Bank 0

Bank 1

Bank 2

Bank 3

Dragon Warrior Completion Map

Dragon Warrior Completion Map