Thursday, August 9, 2012

Galaga Z80 Disassembly Uploaded

I've been pretty sidetracked lately but I finally got around to uploading the code for the Galaga Disassembly Project.

In order to rebuild the code and generate the ROM images for the program, you need to have a build environment with the asz80 assembler and sdcc compiler tools installed.

I've been working on and off on this project since 2001 (mostly off!). In 2001 I disassembled most of the code, primarily using MAME to analyze the code in the emulator and dump it to dis-assembly files. At the time I was building the resulting assembly code with a Z80 assembler that I had modified to support some of the undocumented opcodes. After a few months I moved on to other projects, and the project was not touched for some time.

In 2010 I got interested again after learning about the sdcc compiler. SDCC is interesting in that it targets the C language to many 8-bit micros. It is based on the asz80, which is a very advanced assembler and fairly unique in that it incorporates a linker. With this kind of compiler capability, I entertained the idea of porting the Galaga code to C on the original hardware Z80 architecture, but dropped that plan when I got interested in building C programs in gcc-m68k on the Genesis. I did a little work re-writing the Galaga code on the Genesis, but I doubt that will ever get completed. I've been looking a bit at SDL lately so maybe that's the direction I'll go.

The Galaga code is pretty fascinating in my opinion. Ideally I would have it translated to C, while preserving the structure and data organization as much as possible. We'll see what happens!

5 comments:

  1. Here is some additional helpful info on SVN:
    http://devwatch.wordpress.com/2008/10/25/how-to-access-google-code-svn/

    ReplyDelete
  2. The URL for the project is:
    https://arcade-game-source-code.googlecode.com/svn/trunk/galagao_ASxxx

    ReplyDelete
  3. This comment has been removed by the author.

    ReplyDelete
  4. https://github.com/neiderm/arcade

    ReplyDelete