This site contains the source code for three different variants of the BBC Micro disc version of Elite:
- The variant from the Stairway to Hell archive
- The variant from the game disc on Ian Bell's website
- The sideways RAM variant from Ian Bell's website
See below for comprehensive details of the differences between the variants, along with links to the relevant bits of the source code.
All these differences are implemented within the source code using BeebAsm IF statements, which determine which variant is compiled. These IF statements check the values of the relevant source code variables (_STH_DISC, _IB_DISC and _SRAM_DISC), which are themselves set by parameters to the build command (such as variant=ib-disc). See the associated repository for more about building different variants from the source.
Note that in the first two variants below, I have only included differences that appear in the main game code, rather than those that appear in the loaders, as these files can differ extensively between variants without affecting the game itself. The variant on Ian Bell's site contains a whole load of copy protection differences when compared to the same code in the Stairway to Hell variant, and it also contains two more binary files (ELITE5 and ELITE6), plus a !BOOT file that contains even more copy protection code. I haven't disassembled the loader files from this variant as that's a whole different rabbit hole.
To play Elite with an SSD disc image, load the BBC Micro disc image into drive 0 and press SHIFT-BREAK.
The Stairway to Hell variant
----------------------------
The variant in the Stairway to Hell archive is a cracked version of the original Acornsoft release. It has all the known bugs fixed and the copy protection is disabled, so this looks like the second release of BBC Micro disc Elite. The same variant was later released as part of the multi-version SNG47 release.
Default build in repository | Yes |
Product details | Acornsoft SNG38 (bug fix) Acornsoft SNG47 |
Date | 1984 |
Build command parameter | variant=sth (optional) |
Source code variable | _STH_DISC |
Verification checksums (crc32) | See the GitHub repository |
Download SSD disc image | Original, Flicker-free, Music |
Play this variant online | Original, Flicker-free, Music |
It has the following features that differentiate it from the other variants:
- Bit 5 is set in the version number in the competition flags (see DFAULT).
The game disc on Ian Bell's site
--------------------------------
The variant on Ian Bell's site appears to be the very first release of BBC Micro disc Elite. The binaries match the very first Acornsoft release (with the refund and asteroid bugs), so this looks like the original disc variant.
Default build in repository | No |
Product details | Acornsoft SNG38 (original) |
Date | 1984 |
Build command parameter | variant=ib-disc |
Source code variable | _IB_DISC |
Verification checksums (crc32) | See the GitHub repository |
Download SSD disc image | Original, Flicker-free |
Play this variant online | Original, Flicker-free |
It has the following features that differentiate it from the other variants:
- The refund bug is present (see refund).
- Asteroids are never spawned (see Main game loop part 2).
- Bit 2 is set in the version number in the competition flags (see DFAULT).
- The docked code's workspace noise is different (see Checksum).
The sideways RAM variant
------------------------
The sideways RAM variant on Ian Bell's site is an enhanced variant of BBC Micro disc Elite, written by Stuart McConnachie, that loads all the ship blueprints into sideways RAM, thus removing the restrictions of the disc version's ship blueprint files (which you can read about in the deep dive on ship blueprints in the disc version). It needs 16K of sideways RAM in order to work.
Default build in repository | No |
Product details | - |
Date | 1988-9 |
Build command parameter | variant=sideways-ram |
Source code variable | _SRAM_DISC |
Verification checksums (crc32) | See the GitHub repository |
Download SSD disc image | Original, Flicker-free |
Play this variant online | Original, Flicker-free |
It has the following features that differentiate it from the other variants:
- All ship blueprints are available in sideways RAM at the same time, so all ship types can appear at any time without the restrictions of the disc version's blueprint files. Also, loading is quicker on launch and there is no disc access at all when hyperspacing (see the sideways RAM loader).
- The missile blueprint is the version from the non-disc versions (see SHIP_MISSILE).
- The scanner shows the space station, asteroids, escape pods and cargo in red, as opposed to the yellow/green of the original (see SCANCOL).
- Different parts of the copy protection are disabled compared to the other variants (see the sideways RAM loader).
- The main docked and flight binaries in T.CODE and D.CODE are not encrypted (see DEEOR (Docked), DEEOR (Flight)).
- The sideways RAM loader is a mod in the true sense, in that it works with the normal disc version, converting it to work with sideways RAM by hooking itself into the original game binaries. You can see this in action by doing the following:
- Copy the MENU, MNUCODE and SCREEN files from the sideways RAM variant onto the disc for standard disc Elite
- Enter CHAIN "MENU" and choose the sideways RAM version from the menu
- This will give an error when the menu tries to load the missing INTRO file, so instead type *RUN ELITE2 to run the standard disc version, which will now run in sideways RAM
You can read all about the genesis of this clever piece if hacking in this post by the author on Stardot.