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.
- The feature comparison table summarises the main differences between the versions. This is useful for a quick introduction to the variations.
- The easiest way to view variations in the code itself is through the curated lists. Each of these will guide you through the most interesting differences between the versions, along with explanations and links to the code variations themselves. You can choose from the following:
- Explore variations in the standard version - for features that appear in the BBC Micro cassette version of Elite (and therefore in the BBC Micro disc, 6502 Second Processor and BBC Master versions, and mostly in the Electron version too)
- Explore variations in the enhanced versions - for the extra features that were introduced in the BBC Micro disc version (and therefore in the 6502 Second Processor and BBC Master versions)
- Explore variations in the advanced versions - for the extra features that were introduced in the 6502 Second Processor version (and therefore in the BBC Master version)
- Explore variations in the BBC Micro disc version - for features that are unique to the BBC Micro disc version
- Explore variations in the 6502 Second Processor version - for features that are unique to the 6502 Second Processor version
- Explore variations in the Master version - for features that are unique to the BBC Master version
- Explore variations in the Electron version - for features that are unique to the Electron version
- Other interesting areas - for noteworthy variations that aren't covered by the above pages
- Another way to explore all the code variations is via the source code itself. When browsing the source code, click the "Show more" links to see more information. If a routine has differing code between the different versions, there will be a "See code variations" link that you can click to explore those code variations. For example, the docking checks in the ISDK routine appear in the source code of the cassette, disc, 6502 Second Processor, BBC Master and Electron versions, and clicking the "See code variations" link in any of these will show you the code variations for the ISDK routine across all the different versions, side-by-side and all in one place.
- You can also find a comprehensive list of all code variations, broken down by category, in the "All code variations by category" section in the site navigation.
- The index section of the site contains indexes of variations and code usage, which can be useful in seeking out variations between the versions. The index of all shared code that contains variations is a good place to start.
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):
Category | Description |
---|---|
Standard feature | These 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 feature | These 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 feature | These 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. |
Disc | These variations are unique to the BBC Micro disc version of Elite. See this category's curated list for details of these variations. |
6502SP | These variations are unique to the 6502 Second Processor version of Elite. See this category's curated list for details of these variations. |
Master | These variations are unique to the BBC Master version of Elite. See this category's curated list for details of these variations. |
Electron | These variations are unique to the Acorn Electron version of Elite. See this category's curated list for details of these variations. |
Other | A 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-specific | There 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 mode | This 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-related | These 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. |
Minor | These 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-only | These 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-only | A 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. |