Skip to navigation

Elite on the BBC Micro

Different releases [Cassette version]

This site contains the source code for two different releases of the cassette version of Elite:

  • The version produced by the original source discs from Ian Bell's site
  • The version 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 two different releases.

See below for comprehensive details of the differences between the releases, 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 release is compiled. These IF statements check the values of the relevant source code variables (_SOURCE_DISC and _TEXT_SOURCES), which are themselves set by parameters to the build command (such as release=executive). See the associated repository for more about building different releases from the source.

To play Elite with an SSD disc image, load the disc image into drive 0 and press SHIFT-BREAK.

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

The source disc from Ian Bell's site produces an early version of the game. The binaries produced may match the very first Acornsoft release of cassette Elite but investigations in this area are ongoing.

Default build in repositoryYes
Official releaseAcornsoft SBG38 v1.0
Build command parameterrelease=source-disc
Source code variable_SOURCE_DISC
Download SSD disc imageOriginal, Flicker-free
Play this version onlineOriginal, Flicker-free

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 version contains some refinements that were retained in the other versions of Elite, so it looks like this might be a later version than the source disc version. Whether or not this version was ever released is not yet known.

Default build in repositoryNo
Official releaseAcornsoft SBG38 v1.1 (TBC)
Build command parameterrelease=text-sources
Source code variable_TEXT_SOURCES
Download SSD disc imageOriginal, Flicker-free
Play this version onlineOriginal, Flicker-free

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

  • 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 cassette version 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. All the other versions contain a fix for this bug that involves adding an extra JSR TT111 instruction just after the coordinates are set to (96, 96), which finds the nearest system to those coordinates and sets that as the current system. The cassette version on the original source disc doesn't contain this instruction, and although the text sources do, it's in the wrong place, as the fix only works if it's done after the new coordinates are set, not before. 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 version of the game than the source disc.