Skip to navigation

Elite on the BBC Micro and NES

Different variants of the BBC Micro cassette version

This site contains the source code for three different variants of the BBC Micro cassette version of Elite:

  • The variant from the Stairway to Hell archive
  • The variant produced by the original source discs from Ian Bell's site
  • The variant built from the text sources from the same site

It turns out that the BASIC source files found on the original source disc on Ian Bell's site are slightly different to the text source files on the same site, hence the first two different variants.

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 (_SOURCE_DISC, _TEXT_SOURCES and _STH_CASSETTE), which are themselves set by parameters to the build command (such as variant=executive). See the associated repository for more about building different variants from the source.

To play Elite with an SSD disc image, load the disc image into drive 0 and press SHIFT-BREAK. To play Elite with a UEF tape image, load the image into the cassette player and enter CHAIN "ELITE".

The Stairway to Hell variant
----------------------------

The variant in the Stairway to Hell archive appears to be the original Acornsoft cassette release, with the full galactic hyperspace bug fix.

Default build in repositoryYes
Product detailsAcornsoft SBG38
Date1984
Build command parametervariant=sth
Source code variable_STH_CASSETTE
Verification checksums (crc32)See the GitHub repository
Download SSD disc imageOriginal, Flicker-free
Download UEF tape imageOriginal, Flicker-free
Play this variant onlineOriginal, Flicker-free

It has the following features that differentiate it from the other variants:

  • The galactic hyperdrive routine contains an extra JSR TT111 instruction in the Ghy routine, just after the coordinates are set to (96, 96), which finds the nearest system to those coordinates and sets that as the current system. It also contains instructions to set the distance to the selected system in QQ8(1 0) to 0. This means that the Stairway to hell variant contains the full bug fix that appears in other versions, rather than the incomplete JSR TT111 fix in the text sources. See the code variations for Ghy for details.
  • This variant is otherwise identical to the text sources variant.

Ian Bell's source disc
----------------------

The source disc from Ian Bell's site produces an early version of the game that contains a minor bug in the galactic hyperspace. The binaries produced may match the very first Acornsoft release of BBC Micro cassette Elite but investigations in this area are ongoing.

Default build in repositoryNo
Product detailsTBC
Date1984
Build command parametervariant=source-disc
Source code variable_SOURCE_DISC
Verification checksums (crc32)See the GitHub repository
Download SSD disc imageOriginal, Flicker-free
Play this variant onlineOriginal, Flicker-free

It has the following features that differentiate it from the other variants:

  • There is a bug in the galactic hyperdrive routine where the galactic hyperdrive will take us to coordinates (96, 96) in the new galaxy, even if there isn't actually a system there, so if we jump when we are low on fuel, it is possible to get stuck in the middle of nowhere when changing galaxy (see Ghy).
  • In later variants, some efficiencies were made to enable a bug fix to be added, which are missing from this early version (see WARP and KILLSHP).
  • The TTX66 routine, which is called when we change space view, stops laser pulsing by setting LASCT to 0, rather than resetting LAS2 as in later variants (see TTX66).

Ian Bell's text sources
-----------------------

The text files containing the source, also from Ian Bell's site, produce a different binary to the original source disc. This variant contains some refinements that were retained in the other versions of Elite, so it looks like this might be a later development than the source disc variant. Whether or not it was ever released is not yet known.

Default build in repositoryNo
Product detailsTBC
Date1984
Build command parametervariant=text-sources
Source code variable_TEXT_SOURCES
Verification checksums (crc32)See the GitHub repository
Download SSD disc imageOriginal, Flicker-free
Play this variant onlineOriginal, Flicker-free

It has the following features that differentiate it from the other variants:

  • The galactic hyperdrive routine contains an extra JSR TT111 instruction at the start of the Ghy routine, which sets the current system to the nearest system. There is a bug in the source disc variant where the galactic hyperdrive will take us to coordinates (96, 96) in the new galaxy, even if there isn't actually a system there, so if we jump when we are low on fuel, it is possible to get stuck in the middle of nowhere when changing galaxy. The Stairway to Hell variant contains a fix for this bug that involves adding an extra JSR TT111 instruction just after the coordinates are set to (96, 96), and then setting the distance to the selected system in QQ8(1 0) to 0; this fix finds the nearest system to those coordinates and sets that as the current system, making sure the distances are correctly wet. The original source discs don't contain this fix at all, and the text sources contain only part of this fix; the extra JSR TT111 instruction is there, but it's in the wrong place, as the fix only works if it's done after the new coordinates are set, not before. So this variant appears to contain an early stab at fixing the bug, which was then finished off in the Stairway to Hell variant. See the code variations for Ghy for details.
  • In order to fit this extra call in (which takes three extra bytes), the text sources also contain four modifications that create space for the call, which together save five bytes (see WARP and KILLSHP).
  • The TTX66 routine, which is called when we change space view, stops laser pulsing by setting LAS2 to 0 instead of LASCT, which is slightly more efficient (see TTX66).

All these changes are carried through to all other versions of the game (although the Ghy modification moves to later in the routine in the other versions), so it looks like the text sources contain a slightly later variant of the game than the source disc, with the Stairway to Hell variant following on after the test sources.