HN user

MarkMoxon

189 karma

BBC Micro Elite fan, ex-Acorn journalist

Posts0
Comments41
View on HN
No posts found.

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:

https://elite.bbcelite.com/about_site/useful_links.html

I hope that helps!

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!

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:

https://github.com/Kroc/elite-harmless/blob/kroc/src/boot/gm...

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!

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.

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.

Lots of information on the docking checks here:

https://elite.bbcelite.com/deep_dives/docking_checks.html

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. :-)

I love the BASIC assembler on the BBC Micro and Archimedes. It is a work of art.

Incidentally, the fully buildable Lander source code in the website's accompanying git repository is also in BBC BASIC format - as an attempt to imagine what the original source might have looked like.

A Python script converts it to vasm-compatible format for compiling, but you can also build it on a real Archimedes if you want to. See https://lander.bbcelite.com/about_site/building_lander.html for details.

OK, I guess if Braben says it's a demo, then it's a demo - fair point!

I still think it's a harsh term, especially when Lander has features that Zarch doesn't, and a really different atmosphere.

Ah well, me and Lander will be hovering here in the corner, throwing rocks at Zarch and all its fancy features. ;-)

I've always felt that calling Lander a "demo" was harsh. It's a fully featured game in itself, and has features that Zarch doesn't (such as falling rocks and hover mode). Yes, Zarch was the result of continued development of Lander, but Lander stands on its own, and to me, that makes it a game in its own right, not a demo.

It's also a lot more relaxing to play. There's nothing more chill than flying over the bucolic landscape of Lander - no aliens or viruses in this version!

Yeah, I’ve had to add the same disclaimer to all my analyses of old code (e.g. Elite, Revs, Aviator). I’m not sure there’s any other solution - the original copyright owners still hold the copyright, and that’s just how it is. You can’t grant a license if you don’t own the rights…

In terms of scale, there is the concept of the tile size, which is set to 0x01000000, and everything uses the same coordinate units, so it’s possible to extrapolate this to give some sense of scale.

You can see the configuration variables here:

https://lander.bbcelite.com/source/all/workspaces.html

I’ll probably add more scaling information as I do the deep dives.

And now I post that I see that I have failed to link to this file from the left nav, which won’t have helped! So I’ll sort that out…

The coordinates of the shadow are calculated here:

https://lander.bbcelite.com/source/main/subroutine/drawobjec...

and they are drawn here:

https://lander.bbcelite.com/source/main/subroutine/drawobjec...

The shadow is a very simple projection straight down onto the landscape, which isn’t totally accurate, but it’s quick and easy and looks good enough. The shadow doesn’t drape over the shape of the landscape, and the ship shadow appears on the ground beneath objects rather than on top of them, but you don’t really notice.

Lovely, simple, effective code. Much like the rest of Lander, really!

Technically, Lander was written for the ARM1, as it originated on an Acorn ARM Evaluation System. As a result there are no MUL instructions in Lander, as they only got added in the ARM2.

That makes Lander first ever ARM game, and probably the only game ever written for the ARM1.

It is indeed different on PAL vs NTSC. The code relies on the NMI being called at 50Hz - as a result a number of timings are wrong on the NTSC version, so the music is too fast, the combat demo auto-play doesn't work properly, the time reported for completing the combat demo is wrong, and so on. The NTSC version is unfinished, and this is just one area where it shows.

A shout-out is definitely due to Ian Bell and his website. This is where you can find the original source code for the BBC Micro version. Those original disks form the basis for all my Elite commentaries, including the NES project we're talking about here.

The core of the 1991 NES version (around 30% of the 128K ROM) is essentially the 1986 BBC Master version, which itself is a development of the original BBC Micro version from 1984. The Commodore 64 and Apple II versions are also cut from the same cloth (and they were developed on a BBC Micro, too).

Most of the code in banks 0, 1 and 2 is directly copied from the original BBC version, with a bit more in bank 7. There are new graphics, sound and controller routines bolted on the front, but the beating heart is still the Beeb version...

The quote is:

  My greatest published achievements technically would have to be fitting BBC Cassette "Elite" into 32K of RAM including the screen, and later the Nintendo Entertainment System conversion of "Elite" that used a character mapped display and a single NES controller. The NES is my favourite published conversion and was not thought technically feasible until we'd done it.
See http://www.elitehomepage.org/archive/b5081501.htm for the full interview

I interpret this as meaning his favourite version is the BBC Micro cassette version, while his favourite conversion is the NES one. But I'm a BBC fanboy, so that might just be me being hopeful. :-)

Indeed - "slaves" got changed to "robot slaves", while "narcotics" became "rare species" and "liquor/wines" became "beverages". You can still trade firearms, though, so its not entirely squeaky clean...