- Introduction
- The Games
- Tempest 2000 (1994) by Jeff Minter
- Virtual Light Machine (1995) by Jeff Minter
- Iridis Alpha
- Gridrunner
- Matrix
- Psychedelia
- Hellgate
- Attack of the Mutant Camels
- Voidrunner
- Metagalactic Llamas: Battle at the Edge of Time
- Batalyx
- Sheep in Space
- Revenge of the Mutant Camels
- Hover Bovver
- Mama Llama
- Ancipital
- Return of the Mutant Camels
One by one I'm disassembling some games and programs published for the Commodore 64 and other platforms by Llamasoft (i.e. Jeff Minter).
For some games, such as Attack of the Mutant Camels on Konix and Tempest 2000 for the Atari Jaguar, the original source code is already available so all I have done is collect it in a form that allows you to compile and build the original game with modern Linux build toolchains.
In the cases where the source code has to be reverse engineered the process is often relatively straightforward. I can simply disassemble the code (with a tool such as Regenerator, split out the characterset and sprite data from the game logic, and recompile to a binary that matches exactly (byte for byte) the original game file. After that, I can start labelling and commenting the code to make explicit the workings of the game.
In other cases, the task isn't so trivial. Larger games such as Batalyx and
Iridis Alpha used compression and copy-protection software so it is much
harder, and may even be impossible, to produce a disassembled version that
compiles a target which will match the original prg
file. For these guys,
I've had to work from a snapshot of the game while it's running
and just accept that the binary I end up compiling will not be a bytewise
match, and may have bugs. If I don't find a way of reverse-engineering the
compression and copy-protection that's what I will end up doing, for now.
All of the disassembled games below are a work in progress. At a minimum all compile and run. They're listed in descending order of completeness so if you're looking for further reading start with Iridis Alpha and work your way down. The work that remains in all cases is to continue improving the comments in the code and figuring out the operation of the routines while assigning labels and variable names that are meaningful. For now, though, my focus is on completing a first pass on as many games as possible.
This is the source code for Tempest 2000 by Jeff Minter originally published in 1994 for the ill-fated Atari Jaguar.
This is the reconstructed source code for the Virtual Light Machine by Jeff Minter originally published in 1995 for the ill-fated Atari Jaguar.
Minter's magnum opus. This is the one I've spent most time on so far and the reverse-engineering is well advanced. There are 3 additional games in here apart from the main game: a breakneck-paced vertical-scrolling bonus phase, a pause-mode mini-game that is an interesting variation on 'Snakes', and a psychedelic light-machine where the player can manipulate a double helix of technicolor eye-balls (!).
- Links to a version you can try out in your browser.
- An overview of the structure of the source code. This gives you a good sense of how the different games are split out and what each file contains.
- An overview of the common patterns in Llamasoft C64 assembly. I'm trying to make this a good introduction to 'how things are done' in C64 assembly generally and in Llamasoft games in particular. If you are completely new to both, this should be readable and informative.
The page also contains disassemblies and playable versions of the numerous demos Minter wrote preparing Iridis Alpha.
- Contains a good overview of how to go about disassembling a C64 game.
- Check out Gridrunner: The Little Black Book, a work in progress discussion of the source code to the full Gridrunner series, including Gridrunner, Matrix, and Voidrunner.
- Links to a version you can try out in your browser.
- A good first pass at diassembling and documenting the source code.
The successor to Gridrunner. Faster, more enoyable. An underrated game.
- Links to a version you can try out in your browser.
- A good first pass at diassembling and documenting the source code.
Minter's first light synthesizer.
- Links to a version you can try out in your browser.
- Pretty complete. What remains is to dig into the internals of the pattern generation code and unpick how it works.
One of Minter's later Vic 20 games, this is not very well known and as you can see above is let down by some very mediocre box cover art. The most striking thing about Hellgate is its innovative gameplay and sheer frenetic pace.
- Links to a version you can try out in your browser.
- A good first pass at diassembling and documenting the source code.
- Contains the versions for C64, Atari 8-bit and the unreleased version made for Konix.
Written for the Commodore 16 in 1987, Voidrunner is a continuation of the Gridrunner series. It takes advantage of the extra colors available to the C16 and has rapid gameplay. The disassembly is very clean as there is no compression or copy protection used in the binary. It should be possible to arrive at a very coherent disassembled source file in future work.
More manically fast gameplay on the Vic 20. An extremely compact game.
- Links to a version you can try out in your browser.
- Mostly completely commented. Just some variables left over.
A compendium of 5 bizarre sub-games, Batalyx is full of original gameplay and extremely original gameplay ideas.
A sort-of-predecessor to Iridis Alpha with many of the gameplay components present. Overall not a very fun game to play as it feels comparatively slow compared to other Minger games.