Skip to navigation

Elite on the BBC Micro and NES

How to compare the Acornsoft versions of Elite

Elite was released for a number of different 8-bit Acorn machines, from the 1984 entry-level BBC Micro cassette version to the all-singing, all-dancing 1986 BBC Master version - see the versions of Elite for a quick run-down. (It was, of course, released for a number of non-Acorn machines as well, but this section is only about the original Acornsoft versions.)

Each version has its own unique twist on the game's feature set, from extra colours to extra ships, so it's no surprise that there are lots of code differences between the versions. This section lets you explore these variations in a number of different ways.

Note that Elite-A is not included in this section, as it is a modification of the BBC Micro disc version and lists all its variations within the source code itself. NES Elite is also not covered by this section.

Code variation categories
-------------------------

Because there are so many variations between the different versions, I have categorised them all to make it easier to separate the important ones from those that have no effect in-game. When looking at code differences, each one will have one of the following categories (shown broadly in order of impact, with the most important first):

CategoryDescription
Standard featureThese variations concern features that appear in the BBC Micro cassette version of Elite (and, by extension, the BBC Micro disc, 6502 Second Processor and Master versions, though not necessarily in the cut-down Electron version). See this category's curated list for details of these variations.
Enhanced featureThese variations concern the extra features that were introduced in the BBC Micro disc version of Elite (and which, by extension, are mostly present in the 6502 Second Processor and Master versions). See this category's curated list for details of these variations.
Advanced featureThese variations concern the extra features that were introduced in the 6502 Second Processor version of Elite (and which, by extension, are mostly present in the BBC Master version). Note that this category doesn't include variations that are solely concerned with the additional colours in these versions; those are covered by the screen mode category. See this category's curated list for details of these variations.
DiscThese variations are unique to the BBC Micro disc version of Elite. See this category's curated list for details of these variations.
6502SPThese variations are unique to the 6502 Second Processor version of Elite. See this category's curated list for details of these variations.
MasterThese variations are unique to the BBC Master version of Elite. See this category's curated list for details of these variations.
ElectronThese variations are unique to the Acorn Electron version of Elite. See this category's curated list for details of these variations.
OtherA catch-all category for notable code variations that don't fall into one of the other categories, such as bug fixes, improvements to the arithmetic routines, optimisations and so on. See this category's curated list for details of these variations.
Platform-specificThere are lots of code variations that aren't related to differences in features, but are more to do with the way the game code is structured on the different platforms (for example, there are quite a few differences between the docked and flight code in the BBC Micro disc version that only exist because of their different code structures). These don't really impact the game; they're effectively implementation details. See the list of minor variations for details.
Screen modeThis category includes code variations that exist solely because of the different screen modes used in the advanced versions of Elite (i.e. modes 1/2 vs modes 4/5). This includes code to set colours in the space view, as well as the differences in the drawing routines that are due to the difference in screen memory. See the list of minor variations for details.
Tube-relatedThese differences exist because of communication across the Tube in the 6502 Second Processor version, and are caused by the code split between the parasite and I/O processor. For example, moving the text cursor by calling the DOXC routine instead of updating the XC variable would come under this category, as this has the same effect (moving the text cursor) but has to be done differently because of the way the 6502 Second Processor version is structured. See the list of minor variations for details.
MinorThese differences have the same functionality between versions but different implementations, and include things like using a JMP instead of a branch, jumping to a routine rather than falling through into it, having instructions in a different order when it makes no difference, different text token IDs that produce the same text, using CPU-specific instructions like STZ, and so on. See the list of minor variations for details.
Labels-onlyThese concern different label names, or differences in branches to locations containing RTS instructions. They jave mo effect on the functionality of the game at all. See the list of minor variations for details.
Comments-onlyA variation in the comments only, so these have no effect on the game at all and are purely differences in the documentation. See the list of minor variations for details.