Thank you, that's a good point. The site started off with just the BBC Micro version, and I never expanded the book references to be clearer.
Anyway, I have reworded every reference to books in the commentary so they now contain the full title and author list, so hopefully people will be able to find the relevant tomes. I've also linked to the books from my "useful links" page in a more prominent manner:
Glad you like it! I’ve been working on this for nearly five years, along with my other software archaeology projects - I started in May 2020, back in lockdown. It’s a true labour of love.
This is not a big list, and these are all pretty subtle aspects of the game. After 4 years of analysis, I think we’re pretty close to understanding pretty much everything, which is nice.
Some parts of Elite were documented prior to my project, particularly the procedural generation and ship data blocks. But none of it was documented to this level; it's taken time, lots of it!
I love this game, and I figured it deserved a proper homage. Or, to put it another way, this is a labour of love. :-)
Yeah, it's a bit tricky when the code you are documenting is copyright, and you aren't the copyright owner. Website is one thing, but publishing a book? I suspect that is asking for trouble.
Also, books can't be updated, and I update this stuff all the time...
Thank you! I came at it from the BBC Micro angle, which was the system I grew up with, and I have to say that analysing Elite been a brilliant way to learn about other 8-bit platforms. I’ve documented the NES version and now the Commodore 64, and the Apple II is next.
It’s the retro equivalent of discovering that if you like the Beatles, you’ll probably like the Stones, The Who and Pink Floyd. :-)
Honestly, for me personally and on this specific project with its specific history of copyright issues (look it up!), that would be crossing the line into disrespecting the copyright situation.
Websites are ethereal, in a sense, as they are easy to switch off and hard to copy and distribute. PDFs and books are the opposite. Sure, websites get archived and repos get forked, but I think PDFs and books fall into a different area.
I run these projects very cautiously and very carefully. I don't think publishing a book or PDF containing copyright material is a good idea in this instance, to be honest!
You don't need to be the copyright owner. All you need is a license from the copyright owner. It can't hurt to contact Ian Bell and see what you can negotiate. http://www.iancgbell.clara.net/
Well, exactly. This project is a hobby, and I’d like to try to keep it as my happy place!
Besides, I’ve published PDFs of my travel writing sites, and the thought of trying to keep a code repository, a website and a PDF in sync fills me with dread…
Interesting that, Chris Jordan was part of Acornsoft when the original game was being developed and is also well known for his Hybrid Music System for the BBC Micro, way ahead of its time.
I understand and respect your opinion there. In the spectrum of copyright violation, I might be willing to let my kid install a copy of a game I bought on their own computer, but I would definitely not sell copies of it.
But it’s a massive bummer to me that copyright is preventing someone from publishing their research on a 40 year old game that hasn’t been available for sale in decades. I don’t know exactly where that lands on my moral spectrum, but I put it far closer to the left than to the right, legalities aside.
If you are able to get permission for a game code and then do this sort of analysis as a Literate Program and publish that as a book, you'd be in rather rarified company, and I'd certainly buy a copy.
Seriously, thanks for the details. This was a bit of a pivotal game for me in ... '86 IIRC. It's been interesting to see so much of a following over the decades. Just confirms that whatever was intriguing to me connected with so many other people too!
The original Elite was reverse-engineered into C by Christian Pinder as part of the Elite: The New Kind project. The source is out there. It's a brilliant bit of work.
Yes. The original Elite was reverse-engineered into C by Christian Pinder as part of the Elite: The New Kind project. The source is out there. It's a brilliant bit of work.
Would you have any objection to your version being used as an AI test?
It seems plausible that AIs could port this code to other architecures. It seems like a good large scale task that most systems probably can't manage right now, but perhaps soon.
Although C probably counted as a modern language back then (after all it's not B) today I think "modern" probably means at least Java and likely something from this century like Rust or Typescript.
"Modern" means "we fixed the deficiencies of the old project and introduced our own". When I read "modern" I understand it's likely to be a variation of the second system effect [1]. When it's not just advertisement/PR BS.
When it's part of a request, it generally means "I don't know tech XYZ but I'm pretty sure I could enjoy it and contribute if it was using a tech I know". Which is generally a form of procrastination.
I dislike Javascript and I don't know Objective-C, and it didn't prevent me to tinker with Oolite, which uses both, because I like the game (now, tbh assembly is "hardcore" so OP's request is legitimate).
All NOPs should be explained in the commentary, apart from the ones in the fast loader routine in the elite-gma1.asm file. Are these the ones you mean?
If so, I haven't documented the fast loader as it's not really a feature of Elite, but I think the NOPs there are for timing when talking to the CIA1. The fast loader is documented in the Elite Harmless project, here, which might help:
The long string of NOPs in the elite-firebird.asm source are padding to ensure the vector overrides align with the correct addresses, as described in the commentary.
Most other NOPs are commenting out the checksums if that feature is disabled by the build; again, they should be explained in situ.
If you're wondering about any others, I'd be happy to explain!
It is in-game, but it is astonishingly rare. Specifically, there is a 0.011% chance of spawning a Cougar during each ship spawning routine, which is around 1 in 9000 ship spawnings
And it's got a cloaking device so it doesn't appear on your scanner.
Anyone who has genuinely seen one of these in-game is a really lucky commander!
Hmm, I wonder if that's what the second mission was to find?
I played it on the CBM64, and seem to remember being given a mission to find a stealth ship. Flew around loads, but never found it as far as I can remember.
No, the Cougar is nothing to do with missions (in the 6502 versions, anyway - the other platforms have different mission code). It's just a rarely called part of the random spawning routine. Very rarely called.
The mission-related ship is the Constrictor, which you only bump into at the end of that mission.
That's not fear, it's an indication of the respect in which I hold the original authors (whom I believe are still the copyright holders). If Bell or Braben asked me to take it this down, I'd roll with it. Same if Geoff Crammond asked me to take down my Aviator and Revs analyses; of course I'd comply. It's their code.
I have copyright content out there in the world (including the commentary aspects of this project), and I'd want to be able to control what happens to that too. Seems fair to me.
I admire your integrity. At the same time, these "rights" come from flawed laws. The code should no longer be "theirs".
I won't write a long and boring critique of the current copyright length, but this work should be in the public domain at this point - nobody should be entitled to ask you to take it down. It should belong to you as much as it does to them. Like Algebra and Hamlet.
It in fact belongs to humanity, as the creation of the work itself was built on top of everything that came before it.
Unfortunately it isn't that simple. Check 3 only looks to see if we are moving backwards into the station slot. This is a bit pointless to calculate as falling backwards would mean that a number of the other checks (e.g. angle of approach) will already be failing.
This is why check 3 is omitted from later versions of Elite, including the C64 version; it isn't needed.
Besides, is this a bug or a feature? Elite lore says that machine intelligence is banned in the galaxy, so I like to think of this as fitting in with that. Docking computers can kill you in Elite - and it's the same in Elite Dangerous. :-)
Pretty much the first time I ever tried to dock, the docking computer set me down squarely on top of another player's ship. After trying my best to cancel the docking, I ended up losing my docking request, which meant I wasn't allowed to be there, and got the space police after me. I've not really played it much since
Anyway, I have reworded every reference to books in the commentary so they now contain the full title and author list, so hopefully people will be able to find the relevant tomes. I've also linked to the books from my "useful links" page in a more prominent manner:
https://elite.bbcelite.com/about_site/useful_links.html
I hope that helps!