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
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…
- 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
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.
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.