I have fond memories of playing the classic space trading and combat computer game of Elite for many, many hours on my MSX1. Loading from tapes would take a long time. The game was pretty large for the time, needing 64K of RAM, which my Philips VG8020 provided. When I got my MSX2 (Sony HB F700D) I also played it from disk. I never reached the Elite rank, and always wondered how the ranking system worked internally. Here I present some investigation I’ve done into the Elite binaries, using Claude Code as a tool.
I’ve looked at how the rank system works, how missions are triggered, how the 3D models work, and at exploits. Both the hyperspace jump + find exploit and the save game exploit I found back in the day myself.
Everything below here and the sub-pages is authored via Claude.
Everything below was reverse-engineered from the MSX1 build’s own binaries (CODE.COM
and SHAPES.DAT), cross-checked against live memory dumps from
openMSX. Four chapters, four rabbit holes. Each one has a
companion page with the full, nitty-gritty detail.
SHAPES.DAT. Drag to rotate.Elite’s combat ladder has nine ranks, from Harmless to E-L-I-T-E. What the game actually tracks is a single running total of kill-points, and every kill you make adds that ship’s own value to it, not a flat +1. Cross the next threshold and you’re promoted on the spot, one rank at a time. You can never skip a rank.
| Rank | Kill-points to reach |
|---|---|
| Harmless | 0 (start) |
| Mostly Harmless | 2,048 |
| Poor | 4,096 |
| Average | 8,192 |
| Above Average | 16,384 |
| Competent | 32,768 |
| Dangerous | 131,072 |
| Deadly | 655,360 |
| E-L-I-T-E | 1,638,400 |
The totals roughly double up to Competent, then jump hard, which is why the last stretch feels endless. The famous “8 / 16 / … / 6400 kills to Elite” legend is just these numbers divided by 256; it assumes an imaginary “standard kill” worth 256 points that no real ship matches.
Because each kill is weighted, “how many kills to rank up” depends entirely on what you shoot. Ship values run from 3 (a peaceful Orbit Shuttle) to 5000 (the unique Constrictor from mission 1, the single biggest jump in the game). Cargo, asteroids, missiles and debris are worth 0, and so are most peaceful traders, so you can’t grind Elite on soft targets. The richest farmable enemy is the Thargoid at 150 points, and even so, Elite is roughly 11,000 Thargoid kills away.
Two myths, settled by the code:
The thresholds are identical to the original BBC Micro Elite; the MSX port just stores them in a lookup table instead of inline comparisons.
Full breakdown, the complete ship-value roster, and which targets are actually worth your time: the kill-points machine.
The engine has room for six missions but ships with four fully authored ones. Slot four is empty, so in play they arrive as No. 1, No. 2, No. 3, No. 5. Crucially, missions here are paced purely by hyperspace jumps, a new one offered roughly every 64 jumps after you finish the last, with no combat-rank requirement, unlike the BBC original.
| # | Mission | The job | Reward |
|---|---|---|---|
| 1 | The Constrictor | Hunt down and destroy a stolen navy prototype ship across the galaxy | 10,000 credits |
| 2 | Thargoid documents | Courier captured Thargoid blueprints to the main naval base | A naval energy unit, fitted to your Cobra |
| 3 | Supernova rescue | Evacuate refugees before a system’s sun goes nova (you must dump cargo) | Precious gems |
| 5 | Thargoid invasion | A station is under Thargoid attack, destroy it, don’t dock | A salvaged Thargoid device that jams ECM |
The writing still has bite. Refuse the supernova rescue and the game replies: “We hope you die a horribly long lingering death at the hands of a slimey green lobstoid if you’re not blown to bits by our sun!”
The cloaking device is not a mission reward. It’s a secret pickup. Destroy the unique Constrictor and it leaves a scoopable drop; fuel-scoop that, and the cloak is granted. None of the four briefing rewards is the cloak, which is why it feels like folklore. But the mechanic is right there in the code.
Versus the BBC original: the BBC game shipped with essentially two missions, the Constrictor hunt and the Thargoid-documents courier. This MSX build keeps both, in the same order, then adds the supernova rescue, the Thargoid invasion, and the scoopable cloaking device, an expanded set closer to the later console-era Elite ports.
Every mission step by step, the flavour text, and how the cloaking device is really earned: every mission in full.
Four ways to break the game, and, notably, none of them is in combat. The whole combat loop was audited for free kills, double-scoring and god-mode and came up clean; it’s the most tightly guarded subsystem in the game. The cracks are all in navigation, the economy, and the save file.
1. Cross the galaxy for pocket change. Select a legal, in-range neighbour and press
H to start the hyperspace countdown. While it ticks, switch to the galactic chart, hit
F (Find), and type the name of any system, however far. When the countdown hits zero
you jump there, and your fuel gauge only drops by the cost of the original short hop. The
range check runs once, the instant you press H; Find quietly repoints the
destination behind it, and nothing re-validates before the jump fires.
2. Launder your record by jumping. Every hyperspace arrival halves your bounty. A wanted commander is washed back to Clean in at most eight empty jumps: no fine, no jail, no cost. This isn’t cosmetic: police Vipers really do spawn, and the size of the ambush waiting at each arrival scales with your bounty, so a few hops call off the pursuit and shrink the welcome party.
3. The edited-save “trainer.” The commander loader copies bytes straight from disk into live game variables with no checksum and no bounds check. Edit the save file and you can hand yourself arbitrary cash, any combat rank (including E-L-I-T-E), every piece of equipment, and a clean record, all trusted verbatim.
4. The escape-capsule wipe. Buy a cheap escape capsule, eject, and your bounty is zeroed to Clean instantly. It’s a paid one-shot (the capsule is consumed), but a capsule costs far less than the fines it erases.
Each exploit in full, plus the long list of things that turned out to be watertight: the four exploits, in detail.
Every ship you see is a wireframe stored in its blueprint as three lists: vertices, edges, and faces. Both the coordinates and the edge topology are fully decoded and verified against the actual renderer, 20 ships in all, exported to render-ready data with a dependency-free viewer for eyeballing them.
The format is compact. Each vertex is six bytes, three 16-bit coordinates (x, y, z), with the sign tucked into a single bit. Each edge is just two bytes, a pair of
vertex indices; that list alone is the whole wireframe. Faces carry normals the game uses
to hide the edges pointing away from you.
| ship | v | e | f | ship | v | e | f | |
|---|---|---|---|---|---|---|---|---|
| Sidewinder | 9 | 15 | 7 | Cobra MkIII | 27 | 38 | 15 | |
| Viper | 13 | 20 | 7 | Anaconda | 13 | 25 | 12 | |
| Mamba | 23 | 28 | 5 | Thargoid | 19 | 26 | 10 | |
| Krait | 17 | 21 | 6 | Constrictor | 15 | 24 | 10 |
The most interesting find is that the projection is orthographic: there is no divide-by-z anywhere in the render path. Ships shrink with distance because the whole model is scaled by one factor per object, but a single ship is drawn with no internal perspective. This matters for anyone rebuilding the models: add a “realistic” perspective divide and the geometry visibly warps as it rotates, pulsing and stretching as the hull turns. Drawn the game’s way, the proportions come out true: the Cobra MkIII is 1.18:1 wider than it is deep, and every ship is flatter than it is wide.
The blueprint format byte by byte, all 20 ships, and why orthographic projection settles an old argument: how a ship becomes pixels.