Fully documented source code for Elite on the BBC Micro, Acorn Electron, Commodore 64 and NES
This site contains the original 1980s source code for the classic space game Elite, with every single line documented and (for the most part) explained. It is literally the original 6502 assembly source code, just heavily commented.
As well as exploring the source, you can read over 100 deep dives into how Elite weaves its magic, play the game, or take things to a new level with the Elite hacks. There are more suggestions for your visit in the section below.
The following versions of Elite are covered:
- The original BBC Micro cassette version
- The enhanced BBC Micro disc version
- The cut-down Acorn Electron version
- The super-fast 6502 Second Processor version
- The musical Commodore 64 version
- The flicker-free BBC Master version
- The "impossible" Nintendo Entertainment System (NES) version
- Angus Duggan's Elite-A, the epic extended version of the original game
Elite was first released in 1984, for the BBC Micro. It was written by Ian Bell and David Braben, and was published by Acornsoft (for the Acorn market), Firebird (for the Commodore 64) and Imagineer (for the NES). The original sources were released some time ago by Ian Bell on his personal website.
Note that the source code has not been released for the BBC Micro disc, Acorn Electron or BBC Master versions, so where they differ from the released sources, the extra code has been reconstructed by hand from a disassembly of the original game binaries. The rest is all original 1980s source code.
My hope is that this site will be useful for those who want to learn more about Elite and what makes it tick. It is provided on an educational and non-profit basis, with the aim of helping people appreciate one of the most iconic games of the 8-bit era.
Suggestions for your visit
--------------------------
To start your journey into the secrets of Elite, you might like to try the following:
- See the quick start guide to find out how to use this site.
- Read more about this project and how it came to be.
- Check out the deep dive articles for lots of details about how Elite works under the hood.
- Explore Elite hacks like the Elite Compendium, the Elite Universe Editor, Elite 3D, flicker-free Elite, Teletext Elite and Elite over Econet.
- Dive straight into the source code, though you might want to read these notes first, which explain some of the terminology used in the commentary.
- Dig really deep and compare the code for the different versions of Acornsoft Elite.
- Play Elite in your browser or emulator, and discover why it is regarded as such a masterpiece.
- Jump straight to a random routine from the source code - who knows where you might end up? (Hopefully not in witchspace...) You can also click the ∞ at the top of the page to keep jumping through the source code; it's a good way to explore.
If you prefer a lighter theme for your Elite explorations, you can change the site's colour scheme by clicking the icons in the top-right corner.
If you want to play with the code
---------------------------------
If you are interested in building a working copy of Elite from the source, then you'll enjoy exploring the accompanying GitHub repositories, each of which contains fully commented and buildable source code for a specific version of Elite:
- BBC Micro cassette version
- BBC Micro disc version
- Acorn Electron version
- 6502 Second Processor version
- Commodore 64 version
- Apple II version
- BBC Master version
- NES version
- Elite-A
These repositories can be assembled on modern computers to produce working game discs that can be loaded into a BBC Micro, an Acorn Electron, a NES or an emulator. If you want to experiment with the code, this is the place to go.
Similar projects
----------------
And finally, you may also be interested in my other software archaeology projects:
- Fully documented source code for Revs on the BBC Micro
- Fully documented source code for Aviator on the BBC Micro
- Fully documented source code for Lander on the Acorn Archimedes
Right on, Commanders!