This site contains the source code for five different variants of the Apple II version of Elite:
- The 4am crack of the official Firebird release, which is the most authentic version of the original Firebird game (only the disk protection has been removed)
- The variant from the game disk on Ian Bell's website, which is the original Firebird game, but this time cracked by The Student
- The variant produced by the source disk from Ian Bell's site, which was never released
- The variant built from the CODE* binary files already on the source disk, which is subtly different to the variant produced by the build process
- The variant built from the ELT* binary files already on the source disk, which is slightly different again
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 (_4AM_CRACK, _IB_DISK, _SOURCE_DISK_BUILD, _SOURCE_DISK_CODE_FILES and _SOURCE_DISK_ELT_FILES), which are themselves set by parameters to the build command (such as variant=ib-disk). See the associated repository for more about building different variants from the source.
To play Elite with a DSK disk image, simply load the image into drive 1 and the game should run automatically.
The official Firebird release (4am crack)
-----------------------------------------
There is only one official release of Apple II Elite. This variant is the 4am crack of the Firebird release, which is the exact same game but with the disk protection removed. I have also removed the CTRL-E characters from the filenames on the original disk as the modern build process doesn't support shenanigans like that.
Default build in repository | Yes |
Product details | Firebird (4am crack) |
Date | 1986 |
Build command parameter | variant=4am-crack (optional) |
Source code variable | _4AM_CRACK |
Verification checksums (crc32) | See the GitHub repository |
Download DSK disk image | Original |
The game disk on Ian Bell's site
--------------------------------
The variant on Ian Bell's site is the same game as the official Firebird release, but this one was cracked by The Student, who simplified the loading process and removed the encryption. This is therefore a good version for those who want to experiment with the code.
Default build in repository | No |
Product details | Firebird (The Student crack) |
Date | 1986 |
Build command parameter | variant=ib-disk |
Source code variable | _IB_DISK |
Verification checksums (crc32) | See the GitHub repository |
Download DSK disk image | Original |
As part of the cracking process, the game binary was extracted from memory while the game was running, so the values of some of the variables have been changed from the placeholder values in the source code. Here are all the features that differentiate this variant from the 4am crack variant:
- The loading screen is different, showing "Cracked by The Student" instead of the Firebird logo.
- JSTGY has been set to $FF.
- The instruction at DTM has already been modified to JSR DASC.
- The commander file at NA% has a capitalised name of JAMESON, the file contains various non-zero values, and the checksums at CHK, CHK2 and CHK3 have been calculated.
- DTW2 has been set to 0.
- spasto has been set to SHIP_CORIOLIS.
- The joystick modification appled at the end of S% has already been applied to nokeys2.
Ian Bell's source disk build process
------------------------------------
The source disk from Ian Bell's site produces an early version of the game that is missing a few minor features from the released version.
The source disk does not build a working game, so there are no disk images available for this variant. Instead it is designed to be transmitted to an Apple II that's attached to the BBC Micro development machine, and there are differences in the code to accommodate this approach.
Default build in repository | No |
Product details | - |
Date | 1986 |
Build command parameter | variant=source-disk-build |
Source code variable | _SOURCE_DISK_BUILD |
Verification checksums (crc32) | See the GitHub repository |
All of the source disk variants have the following features that differentiate them from the 4am crack variant:
- The values of the STORE and CODE2 configuration variables are different, so the game copies CODE2 out of bank-switched RAM when it starts (S%).
- There is an extra CLD instruction on starting the game (S%).
- The game uses JSR DOXC to move the text cursor to a specified column, while the released game uses STA XC (BRIEF, crlf, EQSHP, MT8, plf2, qv, STATUS, TT151, TT163).
- The game uses JSR DOYC to move the text cursor to a specified row, while the released game uses STA YC (qv).
- The game uses JSR INCYC to move the text cursor to the next row, while the released game uses INC YC (EQSHP, qv).
- The "J", "K", "M" and "I" key presses for moving the chart crosshairs are not supported (TT17).
- The game waits for the vertical sync to implement pauses, while the released game just performs loop iterations (WSCAN).
- The default setting is to display both upper and lower case letters, while the default for the released game is upper case only (RR5, UPTOG).
- The joystick modification is missing, so the game will still scan the joystick fire button, even if joysticks are not configured (S%).
- "M" and "J" can still be pressed when the charts are showing (TT17).
- The joystick fire button can be used to configure joysticks from the title screen (TITLE).
- If the energy bomb is already going off and we press "B", the effect restarts (part 3 of the main flight loop).
This variant also has the following features that differentiate it from the 4am crack variant:
- The dashboard has a blue rim and different coloured labels to the released version, and the loading screen has the date "23 SEPT 1985" printed in the space view.
- The font is the same as the BBC Micro and Commodore 64 versions (the other Apple versions have an Apple-specific font).
Ian Bell's source disk CODE files variant
-----------------------------------------
The source disk from Ian Bell's site contains assembled binary files that differ slightly from those produced by the source disk build process. This variant has differences in the CODE* files.
The source disk does not build a working game, so there are no disk images available for this variant.
Default build in repository | No |
Product details | - |
Date | 1986 |
Build command parameter | variant=source-disk-code-files |
Source code variable | _SOURCE_DISK_CODE_FILES |
Verification checksums (crc32) | See the GitHub repository |
This variant has the features listed above that apply to all the source disk variants, and it also has the following features that differentiate it from the 4am crack variant:
- The dashboard has a blue rim and different coloured labels to the released version, and the loading screen has the date "7 SEPT 1985" printed in the space view.
- It contains the code to cope with phantom key presses from the Commodore 64 version (part 3 of the main flight loop).
- The Thargoid spawning logic is different (MJP).
- There's some unused code that would speed up chart crosshair movement when fire is pressed (TT17).
- The joystick is not disabled while the docking computer is activated (RDKEY).
Ian Bell's source disk ELT files variant
----------------------------------------
The source disk from Ian Bell's site contains assembled binary files that differ slightly from those produced by the source disk build process. This variant has differences in the ELT* files.
The source disk does not build a working game, so there are no disk images available for this variant.
Default build in repository | No |
Product details | - |
Date | 1986 |
Build command parameter | variant=source-disk-elt-files |
Source code variable | _SOURCE_DISK_ELT_FILES |
Verification checksums (crc32) | See the GitHub repository |
This variant has the features listed above that apply to all the source disk variants, and it also has the following features that differentiate it from the 4am crack variant:
- The dashboard has a blue rim and different coloured labels to the released version, and the loading screen has the date "7 SEPT 1985" printed in the space view.