Moved source code repo to GitHub. For some reason a while back, my remote SVN setup on GoogleCode stopped working. I didn't bother trying to fix it and looking for an excuse to try out GitHub.
Looks like the last update on GoogleCode was starting to implement the diving attack aliens. The red and yellow aliens are diving very nicely now and collisions are also handled with the fighter. Getting ready to start work on the green bosses.
Showing posts with label arcade. Show all posts
Showing posts with label arcade. Show all posts
Tuesday, March 4, 2014
Tuesday, July 30, 2013
arcade-game-source-code project update
I finally have enough of the movement engine implemented, so that all the enemies are able to make it successfully to their positions in the home formation. This includes the side-to-side and the "pulsing" components of the motion. Please see video below. I haven't shared many technical details about the project to this point (after all, the source code is there for all to see!). One comment I want to make about the video is that even though the title bar window has Mame32 on it, the game logic is not in emulated Z80 - it is all C-code. However, the program is linked to a cut-down version of MAME which takes care of the "machine" stuff, i.e. graphics and sound rendering.
Friday, February 8, 2013
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!
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!
Sunday, June 17, 2012
Definitive Galaga Disassembly Project Created
Finally got around to importing some files to an svn repository on Google Code. I could not get the authentication to go through using svn command line (in Cygwin). Eventually I got it to work in Tortoise SVN ... the winning recipe is copied here for my convenience:
Comment by nbutterworth1953@gmail.com, Jan 10, 2009
Here's how to import your project using TortoiseSVN, the most popular Windows SVN client.
I assume you have created your Google Code (GC) project and it is called PROJECT and that the local source you want import is in a directory tree rooted at SOURCE.
a) Go to your GC home page and select the "Profile" menu - this will give you your UID and then click the "Settings" tab to find your PASSWORD - this is not the same as your gmail password.
b) In Windows explorer, right click n your SOURCE directory to get the Tortoise context menu and choose "Import..." This will pop up a dialog asking for the repository url. Enter the following:
https://PROJECT.googlecode.com/svn/trunk
c) You will be prompted for a userid & password - enter UID and PASSWORD described above.
Your project should now be uploaded to the GC repository. From now on you can use the Tortoise repo-browser and other tools to access it via the url above.
We'll see if it generates any interest....
Comment by nbutterworth1953@gmail.com, Jan 10, 2009
Here's how to import your project using TortoiseSVN, the most popular Windows SVN client.
I assume you have created your Google Code (GC) project and it is called PROJECT and that the local source you want import is in a directory tree rooted at SOURCE.
a) Go to your GC home page and select the "Profile" menu - this will give you your UID and then click the "Settings" tab to find your PASSWORD - this is not the same as your gmail password.
b) In Windows explorer, right click n your SOURCE directory to get the Tortoise context menu and choose "Import..." This will pop up a dialog asking for the repository url. Enter the following:
https://PROJECT.googlecode.com/svn/trunk
c) You will be prompted for a userid & password - enter UID and PASSWORD described above.
Your project should now be uploaded to the GC repository. From now on you can use the Tortoise repo-browser and other tools to access it via the url above.
Tuesday, February 7, 2012
Invincibility in Galaga
It's simple.... just disable the periodic task at address 0x05EE in the "slave" CPU ('sub' Z80 in MAME). That routine handles the collision detection, so if it isn't executed, the evil-mongers can shoot and ram you till doomsday with no effect. Rebuild the code and voila...
Tuesday, April 5, 2011
Classic arcade (and console) game source code projects
For a while now I have been trying to create the Definitive Galaga Dis-assembly Listing. Naturally I took an interest as to whether anyone had attempted any such similarly pointless and futile endeavor. I posted the initial versions of the code some time ago, but it was very rough. However, I am gratified that it has been noticed by at least a few people.
My reference links for similar projects::
Atari 7800 Source Code and Tool Archives (straight from the dumpsters at Atari!)
Donkey Kong Source Code (for 8-bit Atari comp?) posted by Curt Vendel.
Tempest (found in AtariAge forum)
Commented dis-assemblies of Pacman/MsPacman (go to "Video Game Links")
Analysis of Galaga Sound CPU.
Computer Archeology - lots of info on Galaga and several others.
Pacman Galaga Donkey Kong and several others..
Porting Qbert to GameBoy - no source but interesting commentary.
Boulderdash info by Peter Broadribb now hosted by Maarten Egmond. Not so much source code as much as it is a technical specification (reverse-engineered of course!)
Pacman Documentation.
Bombjack... on Spritesmind, a great reference source for the Sega MegaDrive.
Even those works based on the lowly Atari 2600 VCS are worthy of honor... Here is the Definitive Combat Dis-assembly Listing on AtariAge.
Pac-Man a tribute project.
My reference links for similar projects::
Atari 7800 Source Code and Tool Archives (straight from the dumpsters at Atari!)
Donkey Kong Source Code (for 8-bit Atari comp?) posted by Curt Vendel.
Tempest (found in AtariAge forum)
Commented dis-assemblies of Pacman/MsPacman (go to "Video Game Links")
Analysis of Galaga Sound CPU.
Computer Archeology - lots of info on Galaga and several others.
Pacman Galaga Donkey Kong and several others..
Porting Qbert to GameBoy - no source but interesting commentary.
Boulderdash info by Peter Broadribb now hosted by Maarten Egmond. Not so much source code as much as it is a technical specification (reverse-engineered of course!)
Pacman Documentation.
Bombjack... on Spritesmind, a great reference source for the Sega MegaDrive.
Even those works based on the lowly Atari 2600 VCS are worthy of honor... Here is the Definitive Combat Dis-assembly Listing on AtariAge.
Pac-Man a tribute project.
Subscribe to:
Posts (Atom)