Skip to content

Commented, buildable disassembly of the classic BBC Micro game

Notifications You must be signed in to change notification settings

tom-seddon/exile_disassembly

Repository files navigation

Exile disassembly

Buildable copy of Exile.

Based on the disassembly here: http://www.level7.org.uk/miscellany/exile-disassembly.txt

Use BeebAsm to build it. Unfortunately Exile isn’t really constructed in a BeebAsm-friendly way, so the build process is a bit Heath Robinson. But, if you manage to make it work, you should be rewarded with two files matching the originals:

./tmp/exileb.new, matching $.EXILEB, with SHA1: ede3f7bbe3bf6b001776ab53fbd7f8488c7489f1

./tmp/exilemc.new, matching $.EXILEMC, with SHA1: 7768adb6154f064a0ee413dab92c63c31236fae7

To build

With BeebAsm on OS X, just type make

The output will appear in a folder called ./tmp in your working copy.

The build process can check that the build results match the BBC originals exactly. To this, extract $.EXILEB and $.EXILEMC from the STH Exile disc and save them in the working copy as exileb.orig and exilemc.orig respectively. The build will then fail if there’s a mismatch, and you’ll get a hex dump diff.

Haven’t tried Linux or Windows but it shouldn’t be too much effort to get it working…

Disassembly notes

  • A few equb values had to change here and there compared to the disassembly, because they weren’t the same as the files on the STH disc
  • I made a stab, hopefully not too incorrectly, at deriving a few constants
  • There’s a lump of data in exilemc_data.dat that doesn’t seem to have any obvious purpose - it doesn’t look like code and nothing seems to use it
  • The source file was autogenerated, and as well as making a general mess of the layout the process also put some comment blocks in the wrong places. I’ve cleaned up the worst bits, but there may still be some discrepancies

Tools

$.EXSPRS2

Dependencies: shadow RAM/Tube (Tube recommended!)

BBC BASIC program that draws the Exile sprites on screen. You’ll need $.EXILEB from the Exile disc.

exile_sprites.png is the output.

samples.py

Dependencies: Python 2.7, sox

Python program that extracts the sample data from the enhanced version and saves them as WAV files. Run from the tools folder; it expects to find $.EXILESR as exilesr.orig in the root of the working copy.

0.wav to 6.wav is the output.

About

Commented, buildable disassembly of the classic BBC Micro game

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published