Giter Club home page Giter Club logo

exile_disassembly's Introduction

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.

exile_disassembly's People

Contributors

tom-seddon avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.