A definitive comparison of Elite versions

reminisce about classic bbc micro and acorn electron games here
Related forum: adventures


User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

A definitive comparison of Elite versions

Post by MarkMoxon »

Hi.

One of the most frequent questions following my ABug presentations on Elite has been, "How do the various versions differ?"

To try to answer this in a comprehensive manner, I've just added a new section to my Elite site that you might find interesting. It contains instruction-level side-by-side comparisons of routines that are shared across the different versions, along with curated guides to the most important variations. I've also detailed the effects that these differences have in-game, and there's an updated and pretty thorough comparison table as well.

As this section is mostly auto-generated from the source code, it is 100% definitive, and lists every single variation in the code as it appears across the multiple versions. It turns out there are literally hundreds of differences - way more than I expected to find. Lots are trivial or not visible to the player, but there are loads of differences that are obvious in-game once you know where to look for them.

If you're interested, the feature comparison table will give you an idea of the kind of thing I'm talking about. I'm pretty sure there are features in this table that haven't been documented before.

If you like what you see, then you can dive deeper by reading about how to compare the different versions of Elite. The curated lists are particularly interesting.

Currently the new section covers the cassette, disc and 6502 Second Processor versions, but it does also contain some variations from the BBC Master version (though I am still working through the Master source, so this aspect is not yet complete). I'm hoping to finish off the Master version next and then look at adding the Electron version, so we can finally compare all the Acornsoft variants, and definitively answer the question about which version does what.

Hope you like it!

Mark
Last edited by MarkMoxon on Thu Mar 11, 2021 11:41 pm, edited 1 time in total.
User avatar
tricky
Posts: 5524
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: A definitive comparison of Elite versions

Post by tricky »

Thanks, but I was wondering if there were any versions that draw and erase one line at a time (less flicker) or double buffer (no flicker) and which platforms they run on ;)
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

tricky wrote:
Thu Mar 11, 2021 5:04 pm
Thanks, but I was wondering if there were any versions that draw and erase one line at a time (less flicker) or double buffer (no flicker) and which platforms they run on ;)
I know, that's the question everyone always asks. It's why I built a diff engine in the first place... and now I get to use it to find the answer. Just not quite yet! :-)

As I mentioned, I haven't finished documenting the Master version yet, but I strongly suspect it draws and erases the lines one at a time to get the smoother animation. It doesn't double-buffer, I am sure of it having looked at the memory map, but when I've finally documented that part of the code, we'll know for sure. The Electron version surely uses the same system as all the BBC Micro versions - erase whole ship, draw whole ship - and the same should be true of the Executive Tube edition, so I'm pretty sure the Master version is the only one that does this differently (and the Master Compact version, I guess). For my next party trick, I intend to prove it one way or the other.

As for any others... well, they aren't on Acorn platforms, so I'm afraid they're out of scope. :-)

Mark
User avatar
tricky
Posts: 5524
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: A definitive comparison of Elite versions

Post by tricky »

But can you answer why use MODE 2 for the bottom, when they already had a working four colour system and the extra RES would have looked good on the status area?
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

tricky wrote:
Thu Mar 11, 2021 5:34 pm
But can you answer why use MODE 2 for the bottom, when they already had a working four colour system and the extra RES would have looked good on the status area?
I'm not sure the code contains the answer, though I suspect it was probably easier just to ramp up the number of colours in each mode than redesign the dashboard in a higher resolution. Perhaps they liked the idea of having six different ship colours on the scanner? And would it really be BBC Elite without the famous split-screen mode? Who knows.

That mode 2 dashboard does look pretty garish, though...

Mark
SteveF
Posts: 959
Joined: Fri Aug 28, 2015 9:34 pm
Contact:

Re: A definitive comparison of Elite versions

Post by SteveF »

This is very cool, thanks Mark! I only noticed your post last night and have been browsing around the differences, it's amazing how many there are really. (You must also have incredible patience to document all this...)

I note in at least one place there's mention of galaxies 16 and 17 - https://www.bbcelite.com/compare/main/v ... advanced-1 says:

"The source disc release of the 6502SP version overrides the extended system description for Lave. The Master version also has an override for Lave, but this time it's only for Lave in galaxy 16 (i.e. the 17th galaxy)."

This doesn't look like a typo, but there are only eight galaxies, aren't there? I suspect I'm missing some other write up which explains this, but I can't find it and it's intriguing me. Can you shed any light please?

Edit: And on an unrelated note, I have a suggestion which is probably neither novel nor easy - it would be nice to have a few images on each of the ship blueprint pages showing the 3D model from a couple of interesting angles. Edit edit: I suppose it would be tedious but not technically difficult to grab some in-game images of each of the different models. What would be harder and perhaps more cool than useful would be to allow the 3D ship to be displayed in the browser and rotated live on the page using the mouse.
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

SteveF wrote:
Mon Mar 15, 2021 1:18 am
This is very cool, thanks Mark! I only noticed your post last night and have been browsing around the differences, it's amazing how many there are really. (You must also have incredible patience to document all this...)
Thanks, glad you like it. I've found it a very relaxing way to get through lockdown, really! It gets quite addictive, analysing code like this. :-)
SteveF wrote:
Mon Mar 15, 2021 1:18 am
I note in at least one place there's mention of galaxies 16 and 17 - https://www.bbcelite.com/compare/main/v ... advanced-1 says:

"The source disc release of the 6502SP version overrides the extended system description for Lave. The Master version also has an override for Lave, but this time it's only for Lave in galaxy 16 (i.e. the 17th galaxy)."

This doesn't look like a typo, but there are only eight galaxies, aren't there? I suspect I'm missing some other write up which explains this, but I can't find it and it's intriguing me. Can you shed any light please?
There is no write-up as the Master version is in-progress, so you didn't miss anything - and yes, there are only 8 galaxies, so I have no idea when this message would be shown. It isn't a typo, though; this message is shown for Lave in galaxy 16 (counting from 0), though how you get there is a mystery.

I haven't gone through the Master version in complete detail yet, but in the other versions, the current current galaxy number in GCNT never gets above 7, so if you go through all 8 galaxies, you wrap around. The same is true in the Master version... except it keeps the top nibble of GCNT (bits 4-7) when incrementing the galaxy number, so if bit 4 is set when you are in galaxy 1, Lave will display the "welcome to galaxy 17" message.

The problem is that the code doesn't seem to set this bit anywhere, so I'm not sure how to trigger this message, apart from manually hacking the commander save file... so there is still a bit of a mystery here, though I could easily have missed the code that does this.

The alt.fan FAQ at http://bbc.nvg.org/doc/games/EliteFAQ.htm has this to say about something similar in Elite Plus (though this time it's the ninth galaxy):
Note: In Elite Plus, there is also a message in the code welcoming you
to the 9th Galaxy. No-one has yet found out how to get there. I have
some pet ideas:
1) Galhyp from witchspace
2) Something to do with your galhyp and the hyperspace jammer...
So, still a bit of a mystery, but it will get answered definitively when I've finished documenting the Master version, I hope!
SteveF wrote:
Mon Mar 15, 2021 1:18 am
Edit: And on an unrelated note, I have a suggestion which is probably neither novel nor easy - it would be nice to have a few images on each of the ship blueprint pages showing the 3D model from a couple of interesting angles. Edit edit: I suppose it would be tedious but not technically difficult to grab some in-game images of each of the different models. What would be harder and perhaps more cool than useful would be to allow the 3D ship to be displayed in the browser and rotated live on the page using the mouse.
I've been playing with Python and some 3D libraries to try to do exactly this, but it's not really suitable for running in a browser. I would like to put some 3D models onto the site at some point, but they might just have to be animated GIFs. It's pretty easy to hack the game to display different ships on the startup screen (and there's a *VIEW utility tool on one of the discs somewhere that does the same thing), so I can always use them to produce GIFs of the ships rotating away - that's my current thinking, anyway. It would definitely be a worthwhile addition, and I'm working on it... but it's on an incredibly long list, and I'm going to tackle the Master and Electron sources first (particularly the Master, which is progressing well).

Thanks for the suggestion, it's something I'd really like to do.

Mark
SteveF
Posts: 959
Joined: Fri Aug 28, 2015 9:34 pm
Contact:

Re: A definitive comparison of Elite versions

Post by SteveF »

Thanks for such a detailed response Mark, much appreciated. I look forward to further updates!

I couldn't resist having a bit of a play around with the 3D-in-the-browser idea. I've got a rather hacky Python script which can transform the ship blueprints into web pages using babylon.js. You can see the results on the ultra-primitive site I've set up temporarily: https://zornslemma.github.io/bbc-elite-3d/ In case it's not obvious, you can use the zoom wheel on the mouse to zoom in/out and drag the 3D model to rotate.

(The thargoid model does dramatically illustrate the point you make in the annotated disassembly about it being on its side!)

A few ships are missing as they broke my script and I haven't had a look into it yet. The Python seems to have some missing faces but I am not entirely sure if that's my script's fault or not. (There are 13 faces defined, and I can count 13 filled faces on web page generated by my script, including the slightly dubiously visible rearmost face. But I'm not all that confident my script is right all the same.)

The wireframe outline is a hack - this isn't something which seems to be well-supported by modern 3D libraries, which want to work with triangles and generate fancy-schmancy shading, rather than treating larger polygons as first-class objects. (I think it would be easy to show a wireframe triangle mesh, but that wouldn't look like the game does.) So we generate a 3D mesh, and then draw a set of lines *slightly* larger than the mesh (to try to avoid Z-buffer fighting) which represents the actual 3D wireframe, with the inner mesh effectively performing hidden line removal for us.

It would probably be easier to generate moderately flash-looking solid shaded ships than to wireframe them, but that wouldn't be so BBC Elite-ish. I haven't played around with the lighting either way; a "proper" version would probably go for a non-wireframe aesthetic and use better lighting, while a more BBC-style version would probably try to have the 3D solid inside the wireframe mesh as solid black (and have the page background black too).

I know virtually nothing about 3D (though I have an ex-game developer mate who has intermittently lectured me on things like meshes and surface normals over coffee, which suddenly turned out to be useful information after all :-) ) so advice from anyone more familiar with this stuff is welcome. I'll attach my super-hacky Python script for reference anyway. It takes a single argument which is a text file containing the VERTEX, EDGE and FACE macro lines from a ship blueprint. Error checking is virtually non-existent...

Edit: I guess the wireframe hack is probably why the Python seems to have "missing" faces. Those faces are (I think) really missing, but since in the real code the faces visible through the holes are facing away, they'd be invisible, whereas the wireframe hack makes the lines outlining those invisible faces visible. If I'm thinking this through correctly, on the real code you would be able to see through a Python because of those missing faces from the right angle, but (from memory) the hidden line removal is on a per-ship basis not the whole display, so you can see through any face to another ship anyway.

I think there's also maybe an argument that something along these lines (but not necessarily precisely this) is good, because while looking cool is obviously a plus :-), what we're really trying to illustrate here is "what the 3D model looks like", so showing this kind of quirk is useful. If we wanted to draw the best possible image of a BBC Elite Python for some kind of remake we could add missing faces to tweak this kind of thing, but that's not what we're doing here.
Attachments
from-elite.py.zip
(2.66 KiB) Downloaded 11 times
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

SteveF wrote:
Tue Mar 16, 2021 2:54 am
I couldn't resist having a bit of a play around with the 3D-in-the-browser idea. I've got a rather hacky Python script which can transform the ship blueprints into web pages using babylon.js. You can see the results on the ultra-primitive site I've set up temporarily: https://zornslemma.github.io/bbc-elite-3d/ In case it's not obvious, you can use the zoom wheel on the mouse to zoom in/out and drag the 3D model to rotate.
Well, this is pretty epic! Great job, Steve. =D>
SteveF wrote:
Tue Mar 16, 2021 2:54 am
(The thargoid model does dramatically illustrate the point you make in the annotated disassembly about it being on its side!)
It does, and it really brings home the scale, too. The tiny escape pod vs the huge space station is particularly interesting!
SteveF wrote:
Tue Mar 16, 2021 2:54 am
I know virtually nothing about 3D (though I have an ex-game developer mate who has intermittently lectured me on things like meshes and surface normals over coffee, which suddenly turned out to be useful information after all :-) ) so advice from anyone more familiar with this stuff is welcome. I'll attach my super-hacky Python script for reference anyway. It takes a single argument which is a text file containing the VERTEX, EDGE and FACE macro lines from a ship blueprint. Error checking is virtually non-existent...
That is so neat. To create my annotated source, I wrote a Python script to convert the EQUBs from the original binaries into the macro calls, so there's a pleasing symmetry here! As for me, I know absolutely nothing about 3D JS libraries, and I had no idea they were so mature (then again, I'm always surprised by what's available in JS these days - I'm more of a backend dev, and it shows). I'm really going to have to look into them, as being able to do this in a web page is just so cool, and would really improve my slightly dry code-heavy sections on ship blueprints and designs.
SteveF wrote:
Tue Mar 16, 2021 2:54 am
Edit: I guess the wireframe hack is probably why the Python seems to have "missing" faces. Those faces are (I think) really missing, but since in the real code the faces visible through the holes are facing away, they'd be invisible, whereas the wireframe hack makes the lines outlining those invisible faces visible. If I'm thinking this through correctly, on the real code you would be able to see through a Python because of those missing faces from the right angle, but (from memory) the hidden line removal is on a per-ship basis not the whole display, so you can see through any face to another ship anyway.
I think you are right, and I suspect this is down to constraints in the number of faces allowed. Each blueprint can support up to 16 faces, and there are already 13 in the current definition. There are four faces missing, which would take it up to 17... and that's one too many, so presumably they decided to drop all the back faces as they aren't needed. Not only that, but in the cassette version, the Python blueprint lives above screen memory, and there are only 11 free bytes with no option to have more. Four more faces would take 16 bytes, so even if models could support more than 16 faces, there isn't room for all of them anyway.

Fascinating stuff - it really brings all those dry data blocks to life!

Mark
SteveF
Posts: 959
Joined: Fri Aug 28, 2015 9:34 pm
Contact:

Re: A definitive comparison of Elite versions

Post by SteveF »

Thanks Mark! I was quite impressed with how relatively easy the web 3D stuff was. And I was - perhaps oddly - deeply impressed that it "just worked" in Firefox on my Android phone too. :-)

I've been tinkering with the script a little more. I've got it to handle the Elite logo (although it isn't uploaded). The Cougar is a real beast, the faces don't seem to be simple polygons. I suspect the best way to handle it in practice would just be to manually hard-code the faces so it looks right, although someone with the right 3D mathematical chops could probably come up with a purely automated solution. (Then again, lacking any other "complex" ships, how could they ever really give their automated solution a proper workout? :-) )

(The other missing blueprints are - I think - just ones which have negative indexes in and which I didn't get round to manually fixing up.)

It occurs to me with the missing faces on the Python that if they'd added one more face on both the left and right side, that would not exceed the maximum number of faces and it would mean there'd be no missing *lines*, so it would look perfect. (I think.) So just maybe there's an argument to be made that there are two missing faces instead of four, and the rear panel is meant to "stick out" in an interesting way. Then again, the rear panel is not visible from the front of the ship because its normal points the wrong way, so I think an argument that it's designed to "stick out" is a bit weak and it is probably correct so there are four missing faces, giving a nice convex shape. Edit: Playing around with the script further I think I am losing some lines, so ignore those speculations. :-)
SteveF
Posts: 959
Joined: Fri Aug 28, 2015 9:34 pm
Contact:

Re: A definitive comparison of Elite versions

Post by SteveF »

OK, so I've updated the script and the temporary site at https://zornslemma.github.io/bbc-elite-3d/. The updated script is attached.

This still isn't perfect but it's definitely better. The "decorations" on many of the ships (e.g. the docking slot on the space stations, the engines on the rear of the Cobra MkIII) are now visible. I thought I remembered those engines so I'm glad they've now reappeared!

I was talking nonsense about the Python having missing faces. I think the key thing is that a "face" as far as BBC Elite is concerned is a normal vector which is shared by a number of lines that (in some not formally defined way) form one or more polygons with roughly the same 3D orientation. In my babylon.js 3D model, a face is an actual polygon (subsequently decomposed into triangles). There's therefore only a loose connection between the two and it's not sensible (as I was doing) to compare the face count in the BBC Elite definition with the number of filled polygons in the model generated by my script.

The wireframe is no longer being generated by the same hack as before; instead I'm generating 3D tubes to represent it. This makes the models slightly more computationally intensive to display but I don't think this is likely to be a big problem.

I may be making excuses for my poor 3D programming skills, but I think I am approaching the limits of what can reasonably be done in a purely "automatic" way. Looking at the Fer-de-lance and Transporter, for example, you can see that some of the decorative lines are only faintly visible in places, and only then because I've given the faces a 95% alpha so they are slightly translucent.

There's some code to attempt to thicken up the tubes on these decorations automatically to make them "stick out" of the surface more, but it's not completely reliable. On BBC Elite the surface is not really solid, so it doesn't matter if these decorations fall partly under it. Another way of looking at it might be to say that these decorations define a more complex shape for the surface than the flat polygon that might superficially seem to be there; it would probably be possible to manually tweak the faces to reflect this. The decorations could potentially be handled as textures, although they'd still probably need to be identified as decorations somehow, either manually or by some cleverer code than I currently have.

(A side effect of the 95% alpha on the faces is that if you look closely you can see the wireframe faintly "through" the notionally solid model. Arguably this, perhaps even ramped up a notch, is helpful in viewing the model structure.)

The Adder has a missing back face; this may be a bug in my script or it may just be artefact of the conversion process between the two styles of 3D modelling, which is arguably just a fancy way of saying there's a bug in my script.

I suppose the properly hardcore way to do this would be to ditch the modern 3D library and implement BBC Elite's own 3D mathematics and plotting code in Javascript. :-) That's probably above my pay grade though...
Attachments
from-elite.py-2.zip
(4.02 KiB) Downloaded 7 times
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

SteveF wrote:
Wed Mar 17, 2021 10:35 pm
This still isn't perfect but it's definitely better.
It's much better! Pretty close to perfect, I'd say - even the logo looks spot on. Nice work, no doubt about it! Adding the decorations makes a big difference.
SteveF wrote:
Wed Mar 17, 2021 10:35 pm
I was talking nonsense about the Python having missing faces.
Whoops, so was I in my response! Of course, faces aren't actually faces, are they? Good point... I must have got distracted by reading up about 3D libraries before posting. #-o
SteveF wrote:
Wed Mar 17, 2021 10:35 pm
I suppose the properly hardcore way to do this would be to ditch the modern 3D library and implement BBC Elite's own 3D mathematics and plotting code in Javascript. :-) That's probably above my pay grade though...
That's the approach I started taking, before getting distracted by the disassembly of the Master version. I managed to get a very basic bit of code to draw non-hidden lines for a non-moving ship into an HTML canvas, but the maths wasn't quite right and I broke it terribly when I tried to add rotation, so yeah, that got parked. The Elite algorithms are pretty easy to implement in JS though, as most of the code is spent implementing maths operations that are trivial in a modern language, so I'd like to have another go at some point. Though having seen how good your version is using a library, I'm not sure it's worth the time!

Hat definitely doffed. =D>

Mark
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

tricky wrote:
Thu Mar 11, 2021 5:04 pm
Thanks, but I was wondering if there were any versions that draw and erase one line at a time (less flicker) or double buffer (no flicker) and which platforms they run on ;)
When Ian did the Apple II port he changed the ship plotting code to do a line-by-line erase and draw so there is a lot less flicker. The Apple II code was then used for the NES and BBC Master ports.

Thanks,
Christian.
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

One of the differences which is noticeable on Master Elite is that the Short Range Chart looks 'wrong'. I've attached a comparison of 2nd Pro Elite (which looks like every other version) and Master Elite. There are some systems missing off the chart and a stray unlabelled system on the right-hand side.

Digging back through the versions it looks like this is because Master Elite is a port of Apple II Elite, not a modified 2nd Pro Elite as you might expect.

The Apple II code adds a check into the short range chart to only display systems within a certain distance (I think it is supposed to be 7 Light Years). That's why Orrere, Uszaa and Tionisla don't appear. But, the code seems to be bugged and so the unlabelled star Qutiri which is 9.6 LYs away appears.

The other oddity is that the fuel circle on the Master is drawn less circular (only 12 line segments). I'm not sure why this is but I suspect it might be a side effect of code added to compensate for the Apple II screen resolution.

This is probably only of interest to about 3 people but I found it interesting so I thought I would pass it on. :D

Christian.
Attachments
shortrange.png
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

Mark, I've been reading through your work-in-progress Master Elite disassembly and annotation. It's looking good.

L1264 should be TRIBBLE and L1265 is TRIBBLE+1. That might help you make sense of what appears to be sections of random code that don't do anything.

Tribbles (or Trumbles to avoid copyright) were added into C64 Elite and then removed in later versions but some bits of code got left in.

Christian.
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

cjpinder wrote:
Sat Mar 27, 2021 12:38 pm
Mark, I've been reading through your work-in-progress Master Elite disassembly and annotation. It's looking good.

L1264 should be TRIBBLE and L1265 is TRIBBLE+1. That might help you make sense of what appears to be sections of random code that don't do anything.

Tribbles (or Trumbles to avoid copyright) were added into C64 Elite and then removed in later versions but some bits of code got left in.

Christian.
Thanks Christian. You must be psychic, as I commited comments along those exact lines yesterday afternoon! The penny dropped that this was Trumble code when I realised that L1264/5 take up cargo space, grow exponentially, and eat all the food and narcotics in the hold :-) Just got to change the label name now and fill in the blanks.

Though is the label in the original source TRIBBLE rather than TRUMBLE? If so, that's interesting.

I'm also having fun with the strange LSR routines (currently labelled LSR1 through 3 in my repo) as it looks like you can scale the charts with a simple RTS change to LSR A in, say, LSR2. I'm guessing this one is left over from the other versions' code too, as it makes no sense otherwise. Though I've tried changing it and it didn't seem to make any difference, so perhaps there's more investigation needed there.

I'm hoping to have documented all the differences and marked them up for inclusion in my comparison tool in the next couple of weeks, at which point we'll have a definitive list of feature variations with the Master version. It should be interesting to see the results...
cjpinder wrote:
Sat Mar 27, 2021 12:12 am
This is probably only of interest to about 3 people but I found it interesting so I thought I would pass it on. :D
I'm one of those 3 people! I'm really enjoying this code-level comparison aspect, though I'm not sure why. I suspect it's because it sheds more light on the development process - that Trumble code being a great example. It's addictive, uncovering all these little variations.

Mark
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

MarkMoxon wrote:
Sat Mar 27, 2021 1:12 pm
Though is the label in the original source TRIBBLE rather than TRUMBLE? If so, that's interesting.
Yes, the original label is TRIBBLE. The original intention was to call them Tribbles but their agent (Jacqui Lyons) told IB & DB they would be personally liable if Paramount sued, so they went with Trumbles instead.
MarkMoxon wrote:
Sat Mar 27, 2021 1:12 pm
I'm also having fun with the strange LSR routines (currently labelled LSR1 through 3 in my repo) as it looks like you can scale the charts with a simple RTS change to LSR A in, say, LSR2. I'm guessing this one is left over from the other versions' code too, as it makes no sense otherwise. Though I've tried changing it and it didn't seem to make any difference, so perhaps there's more investigation needed there.
Yes, they are code that was added in for scaling to fit the Apple II screen. The Apple II code is:

Code: Select all

  590\ SCALE Scans by 3/4 to fit in:
  600.SCALEY LSRA:.SCALEY2 STAT3:LSRA:LSRA:SEC:SBCT3:EOR#FF:ADC#1:RTS
  610.SCALEX JSRSCALEY2:ADC#32:RTS
  620.DVLOIN STAX1:LDA#GCYT:STAY1:LDA#GCYB:STAY2:JMPVLOIN
  690.tnpr1 STAQQ29:LDA#1
MarkMoxon wrote:
Sat Mar 27, 2021 1:12 pm
I'm hoping to have documented all the differences and marked them up for inclusion in my comparison tool in the next couple of weeks, at which point we'll have a definitive list of feature variations with the Master version. It should be interesting to see the results...
That's great. Good work. I'm looking forward to seeing what you find.

Christian.
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

cjpinder wrote:
Sat Mar 27, 2021 1:45 pm
MarkMoxon wrote:
Sat Mar 27, 2021 1:12 pm
Though is the label in the original source TRIBBLE rather than TRUMBLE? If so, that's interesting.
Yes, the original label is TRIBBLE. The original intention was to call them Tribbles but their agent (Jacqui Lyons) told IB & DB they would be personally liable if Paramount sued, so they went with Trumbles instead.
That's interesting. I think I'll stick to TRUMBLE in my version - don't want to tread on Paramount's toes. :-)
cjpinder wrote:
Sat Mar 27, 2021 1:45 pm
Yes, they are code that was added in for scaling to fit the Apple II screen.
Ah! Those routines make a lot more sense now. There’s quite a bit of seemingly pointless stuff in the Master version, and checking it against the other versions is the way to go. Thanks for the pointer, that's really helpful.
cjpinder wrote:
Sat Mar 27, 2021 1:45 pm
MarkMoxon wrote:
Sat Mar 27, 2021 1:12 pm
I'm hoping to have documented all the differences and marked them up for inclusion in my comparison tool in the next couple of weeks, at which point we'll have a definitive list of feature variations with the Master version. It should be interesting to see the results...
That's great. Good work. I'm looking forward to seeing what you find.
Me too. I've always wanted to see a proper comparison - nearly there!

Mark
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

tricky wrote:
Thu Mar 11, 2021 5:34 pm
But can you answer why use MODE 2 for the bottom, when they already had a working four colour system and the extra RES would have looked good on the status area?
Out of idle curiosity I coloured in the Elk dashboard to see what it would have looked like if they had gone with Mode 1 instead of Mode 2. Attached is a picture showing both. What do people think?

Christian.
dashboards.png
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

Interesting! The compass sights feel a bit off-centre, but the scanner ellipse is a lot sharper, which is an improvement. And the colour scheme is back to being readable but not distracting. I guess it depends on what the dots and sticks would look like, but background-wise the mode 1 version definitely gets my vote. Then again, I’m not much of a fan of the mode 2 dashboard, so that isn’t hard!

Mark
User avatar
tricky
Posts: 5524
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: A definitive comparison of Elite versions

Post by tricky »

What Mark said.
The font looks a little nicer, but it is really what the scanner looks like when populated, possibly heavily.
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

I did a quick test to see if something like the NES dashboard could have been done in mode 1. The colours are a bit of a challenge but the overall effect isn't too bad. I think a better dashboard could have been done in mode 1 but I guess there just wasn't the incentive to spend much effort on the Master port. The number of copies sold must have been tiny.

Christian.
dashboards.png
dashboards.png (5.28 KiB) Viewed 781 times
tom_seddon
Posts: 471
Joined: Tue Aug 30, 2005 12:42 am
Contact:

Re: A definitive comparison of Elite versions

Post by tom_seddon »

Just thought I'd add a brief note to say how interesting this thread has been. I had no idea that the Master version might have been some kind of offshoot of the Apple II port!

Could the flicker-free redrawing be backported to the copro and B versions? That would be amazing to see. Something for the Beeb's 40th perhaps?

I really like the Mode 1 scanner idea as well.

--Tom
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

tom_seddon wrote:
Sun Mar 28, 2021 11:21 pm
Could the flicker-free redrawing be backported to the copro and B versions? That would be amazing to see. Something for the Beeb's 40th perhaps?
I am literally working on this right now (though I only started this morning, so it’s early days!).

In theory this isn’t very hard, as the code changes for the flicker-free version are surprisingly small and easy to follow. But I made the mistake of trying to do the disc version first, and memory is super-tight in the flight code, so I might switch to the 6502SP version instead, as that shouldn’t be such a squeeze and should prove the concept without me having to go hunting for free bytes.

If I get it working (or, hopefully, when), I’ll post the results here. Going to have another go tomorrow...

Mark
cjpinder
Posts: 26
Joined: Fri Jul 03, 2020 6:00 pm
Contact:

Re: A definitive comparison of Elite versions

Post by cjpinder »

Mark, I was looking through your annotation of the Galactic Chart code and spotted an error. Shortly after .TT83 you have...

Code: Select all

 LDY QQ15+4             \ Fetch the s2_lo seed and clear all the bits apart
 TYA                    \ from bits 4 and 6, storing the result in ZZ to give a
 ORA #%01010000   	\ random number out of 0, &10, &40 or &50 (but which
 STA ZZ              	\ will always be the same for this system). We use this
                    	\ value to determine the size of the point for this
                    	\ system on the chart by passing it as the distance
                    	\ argument to the PIXEL routine below
You've mistaken the ORA for an AND. The annotation should be..

Code: Select all

 LDY QQ15+4             \ Fetch the s2_lo seed and set bits 4 and 6
 TYA                    \ storing the result in ZZ to give a
 ORA #%01010000   	\ random number between 80 and 255 (but which
 STA ZZ              	\ will always be the same for this system). We use this
                    	\ value to determine the size of the point for this
                    	\ system on the chart by passing it as the distance
                    	\ argument to the PIXEL routine below
On BBC Tape & Disk Elite if ZZ is 80-143 then 2 pixels are drawn for a system, for 144-255 1 pixel is drawn.

On Master Elite the PIXEL code is missing a check for when ZZ is >= 144 so it always draws two pixels for each system on the Galactic Chart. Unfortunately another bug from it being a port of the Apple II code.

Christian.
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

cjpinder wrote:
Mon Mar 29, 2021 12:20 am
Mark, I was looking through your annotation of the Galactic Chart code and spotted an error.
Thanks Christian, good spot! I've fixed the comment, thanks for the correction.
cjpinder wrote:
Mon Mar 29, 2021 12:20 am
On BBC Tape & Disk Elite if ZZ is 80-143 then 2 pixels are drawn for a system, for 144-255 1 pixel is drawn.

On Master Elite the PIXEL code is missing a check for when ZZ is >= 144 so it always draws two pixels for each system on the Galactic Chart. Unfortunately another bug from it being a port of the Apple II code.
Interestingly, this issue is present in the 6502SP version, so I think that might be the source. It makes sense there, as the galactic chart shows the stars in "white" (i.e. red/cyan stripes), and to get the stippling effect you need to have two pixels per star. The Master version uses essentially the same code as the 6502SP verison, but it sets the star colour to yellow, so the two-pixel issue is more apparent (I prefer the 6502SP version myself).

There are lots of code changes in the Master version around the charts and crosshairs, so I'm sure there will be plenty of other mistakes in there! Thanks for letting me know.

Mark
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

MarkMoxon wrote:
Sun Mar 28, 2021 11:38 pm
tom_seddon wrote:
Sun Mar 28, 2021 11:21 pm
Could the flicker-free redrawing be backported to the copro and B versions? That would be amazing to see. Something for the Beeb's 40th perhaps?
I am literally working on this right now (though I only started this morning, so it’s early days!).
Well, that turned out to be easier than I thought! See this thread for details.

Mark
fuzzel
Posts: 783
Joined: Sun Jan 02, 2005 1:16 pm
Location: Cullercoats, North Tyneside
Contact:

Re: A definitive comparison of Elite versions

Post by fuzzel »

Hi, I just wanted to pop in and say well done and a big thank you Mark for your highly impressive work on Elite. It's fascinating stuff. I think a bit like with Stephen Hawkings' book, you either gave up early on or were in it for the long haul and I was whole-heartedly in. I remember having a race with a friend who had the Electron version (I was playing the BBC disc version) to reach Elite and I pipped him by a couple of days and I've been wondering of late whether I had an advantage (better weapons) or he did (slightly slower, maybe less foes in combat, quicker to dock). Hopefully your comparison will settle it one way or another. My main tactic by the way was to head to an anarchy system with some contraband and blast away until just about dead and then launch the escape capsule and hope I didn't get intercepted.
User avatar
MarkMoxon
Posts: 173
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

fuzzel wrote:
Tue Mar 30, 2021 8:56 pm
Hi, I just wanted to pop in and say well done and a big thank you Mark for your highly impressive work on Elite. It's fascinating stuff.
Thank you! I’m hoping to release the Master commentary very soon, and I’m hoping to look at the Electron version after that, so there’s plenty more to keep me busy... and we might even get to answer your question (though it’s a difficult one to call!). Hope so, anyway!

Mark
User avatar
0xC0DE
Posts: 999
Joined: Tue Mar 19, 2019 7:52 pm
Location: The Netherlands
Contact:

Re: A definitive comparison of Elite versions

Post by 0xC0DE »

MarkMoxon wrote:
Thu Apr 01, 2021 8:54 pm
fuzzel wrote:
Tue Mar 30, 2021 8:56 pm
Hi, I just wanted to pop in and say well done and a big thank you Mark for your highly impressive work on Elite. It's fascinating stuff.
Thank you! I’m hoping to release the Master commentary very soon, and I’m hoping to look at the Electron version after that, so there’s plenty more to keep me busy... and we might even get to answer your question (though it’s a difficult one to call!). Hope so, anyway!

Mark
I'm looking forward to the Electron version, great work! =D>
0xC0DE
"I program my home computer / Beam myself into the future"
:arrow: Follow me on Twitter
:arrow: Visit my YouTube channel featuring my games and demos for Acorn Electron and BBC Micro
Post Reply

Return to “8-bit acorn software: classic games”