llamaSource icon indicating copy to clipboard operation
llamaSource copied to clipboard

The Llamasoft Source Code Project

The Llamasoft Source Code Project

An archive of the source code for Llamasoft software

  • 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

Introduction

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.

The Games

Tempest 2000 (1994) by Jeff Minter

This is the source code for Tempest 2000 by Jeff Minter originally published in 1994 for the ill-fated Atari Jaguar.



Virtual Light Machine (1995) by Jeff Minter

This is the reconstructed source code for the Virtual Light Machine by Jeff Minter originally published in 1995 for the ill-fated Atari Jaguar.



Iridis Alpha

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.



Gridrunner



Matrix

The successor to Gridrunner. Faster, more enoyable. An underrated game.



Psychedelia

Minter's first light synthesizer.



Hellgate

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.



Attack of the Mutant Camels

  • Contains the versions for C64, Atari 8-bit and the unreleased version made for Konix.


Voidrunner

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.



Metagalactic Llamas: Battle at the Edge of Time

More manically fast gameplay on the Vic 20. An extremely compact game.



Batalyx

A compendium of 5 bizarre sub-games, Batalyx is full of original gameplay and extremely original gameplay ideas.



Sheep in Space

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.



Revenge of the Mutant Camels



Hover Bovver



Mama Llama



Ancipital



Return of the Mutant Camels