A definitive comparison of Elite versions

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


User avatar
leenew
Posts: 4521
Joined: Wed Jul 04, 2012 4:27 pm
Location: Doncaster, Yorkshire
Contact:

Re: A definitive comparison of Elite versions

Post by leenew »

Hi all,
I would like to look at this from a slightly different angle.
In my never ending quest to improve the quality of information on bbcmicro.co.uk, I have turned my attention to Elite which seems to be a hot topic at the moment.
I have to admit to never having played Elite but I would like to be certain that bbcmicro.co.uk has all of the correct information for all of the Elite variants.

I would like confirmation of the following information please:

CASSETTE VERSION SNG38
Release date: 22nd September 1984 at the Thorpe Park press conference.
official releases: v1.0

Is the date correct?
Were there any other releases apart from the v1.0 release?
All Acornsoft cassettes have a "version number" file right at the end of the tape, just after the main game data.
Does anyone have an Elite cassette that has a version number other than v1.0?


DISC VERSION SNG38/DISC
Release date: 22nd September 1984 at the Thorpe Park press conference.
official releases: v1.0 and v1.1

My understanding is that the cassette release and the disc release was on the same day.
I also understand that the original v1.0 release was found to have a "refund" bug where players could accumulate money unfairly.
This was fixed in a v1.1 release.

Are these the only 2 releases of this original version?

AcornUser031-Feb85_0008OPUS DDFS fail on early version.jpg
AcornUser031-Feb85_0008OPUS DDFS fail on early version.jpg (77.02 KiB) Viewed 939 times
AcornUser032-Mar85_0056ELITE BUGS.jpg

SECOND PROCESSOR VERSION SNG45
Release date: 25th July 1985 at the Acorn User Show, along with the Model B+
Official releases:unknown

Only one copy of this version has been found in the wild so the fact we have it on bbcmicro.co.uk is fantastic.

AcornUser035-Jun85_0016SECOND PROCESSOR VERSION.jpg
AcornUser036-Jul85_0016ELITE 2 at Acorn Show.jpg
ENHANCED VERSION SNG47
Release date: second half of 1986
official releases: ?

I understand the original Acornsoft multi-platform release to be a "flippy" disc, with side 0 containing the original BBC Model B disc version on 40 tracks.
Side 2 was an 80 track disc containing the enhanced versions for the B+, Master, and machines with a 6502 copro attached.

Was the 40 track side exactly the same release as the v1.1 1984 release? or were any changes made?
Was the second processor version on side 2 exactly the same as the previous stand-alone second processor release? or were any changes made?

AcornUser052-Nov86_0027SUPERIOR ACORNSOFT BUT NO ELITE.jpg
This ad from Nov.86 Acorn User shows the releases now being under the SUPERIOR/ACORNSOFT banner, but not yet Elite...

SUPERIOR SOFTWARE/ACORNSOFT RE-RELEASE (WHITE BOX)
Release date: late 1986
official releases: ?

This release was also a "flippy". Is this exactly the same as the versions previously released? or were any changes made?

AcornUser052-Nov86_0016MASTER ELITE.jpg
Master Elite advertised November 1986
PopularComputing_Weekly_Issue_1986-12-04_0007ELITE SUPERIOR LAUNCH.jpg
And a December 1986 advert showing SUPERIOR/ACORNSOFT to release Elite.
AcornUser054-Jan87_0143NEW SUPERIOR ADVERT.jpg
This ad from Acorn User Jan 1987 shows Elite now available in the new packaging.


Any answers to the above questions would be gratefully received.
Lastly, is it possible to tell which versions we are hosting on bbcmicro.co.uk?
Are there any adverts showing the Acornsoft Black box multi-platform release?

Thanks,

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

I would also be very interested in knowing the official tally of Elite releases, bug-fixes and so on. I'm trying to piece together a collection of all the variants, so I can add their code variations to my annotated versions, but the challenge I'm having is that the official releases have disc or tape copy protection, and I'm a bit rubbish at cracking things like that. :?

This thread is inspiring, though - that's real detective work there, dates and everything.
leenew wrote:
Sat Apr 03, 2021 12:27 pm
All Acornsoft cassettes have a "version number" file right at the end of the tape, just after the main game data.
Does anyone have an Elite cassette that has a version number other than v1.0?
Interesting! I might take a look at my copy. How do I view this file - do I just *. the tape past the end of the main game file, or something?
leenew wrote:
Sat Apr 03, 2021 12:27 pm
SUPERIOR SOFTWARE/ACORNSOFT RE-RELEASE (WHITE BOX)
This release was also a "flippy". Is this exactly the same as the versions previously released? or were any changes made?
The advert also mentions a Master Compact version - I wonder what differences that has? Apart from costing more...
leenew wrote:
Sat Apr 03, 2021 12:27 pm
Lastly, is it possible to tell which versions we are hosting on bbcmicro.co.uk?
I should think this would be fairly easy to determine. The hard part (for me!) is extracting the official release binaries to compare them with...

Mark
User avatar
leenew
Posts: 4521
Joined: Wed Jul 04, 2012 4:27 pm
Location: Doncaster, Yorkshire
Contact:

Re: A definitive comparison of Elite versions

Post by leenew »

Hi Mark,
I am pleased you have some interest in this :D
I agree that Scarybeasts and BillCarr have done some brilliant detective work so far =D>
Christian also seems to know what he is talking about!

The tape version file is literally a file called V1 recorded straight after the game code.
It would be interesting to see if the tape version got any bugfixes.
From what I have read, the only difference in the Master Compact version was that it was on a 3 1/2" disc.

I think I would like bbcmicro.co.uk to host the latest versions of the tape release, the disc release, the second processor release and the Master release.
The Superior Software "white box" version *should* be the best starting point. (Except for the tape version, obviously).
It would be good if a few Tape-Elite owners could check their version file... :wink:

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

Hi Lee.

I couldn't resist taking a quick look at the various versions of Elite I've collected while doing my analyis, and comparing them to the versions on bbcmicro.co.uk. Here's a quick run-down of what I've found so far.

Cassette version (on bbcmicro.co.uk as "Elite [tape]")

The bbcmicro.co.uk version is identical to the "cassette version that loads from disc" that the source discs on Ian Bell's site produce. The bbcmicro.co.uk binaries have some extra bytes tacked on the end of the binaries, but they don't contain code or data - the files are just a bit longer than those produced by the source disc.

I'm a bit rubbish at extracting original protected binaries from UEFs, so I haven't managed to compare this version with the original tapes (and they'd be different anyway, as the originals don't load from disc). I don't know if the Superior version contains any further changes, either. A job for a rainy day, that, but I'd say the version on bbcmicro.co.uk is the correct one.

Disc version (on bbcmicro.co.uk as "Elite [disc]")

The disc version on bbcmicro.co.uk is an interesting one. It is almost identical to the one on Ian Bell's site, but it differs by one byte (the flight code has a lower-case T in the filename T.CODE - it's in there as t.CODE). This difference doesn't seem to affect anything.

More importantly, this version, as with the one on Ian Bell's site, contains both the laser refund bug and the "no asteroids" bug, which is probably not what you want. It might be worth switching it to, say, the Superior version, which definitely won't have those bugs.

6502SP version (on bbcmicro.co.uk as "Elite [copro]")

This one matches the official SNG45 release, so this one is good.

Master version (on bbcmicro.co.uk as "Elite [enhanced]")

This one matches the official SNG47 release, so this one is also good.

I haven't checked whether the Superior releases contain any bug fixes over the official Acornsoft releases, mainly because I haven't managed to work out how to extract the files from the HFEs in the Stardot archive, so that's another one for a rainy day.

Hope this is useful!

Mark
User avatar
leenew
Posts: 4521
Joined: Wed Jul 04, 2012 4:27 pm
Location: Doncaster, Yorkshire
Contact:

Re: A definitive comparison of Elite versions

Post by leenew »

Hi Mark,
Phew!
Thanks for that. It really is useful.
I am in the same position as you. I can't do anything with the HFE's.
I think we need one of our disc protection experts who also has a knowledge of HFE's to produce new SSD versions from the Superior HFE's :-k ... BillCarr?!
A challenge is offered to BillC :D

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

To clarify - I can access the HFEs in beebjit, no problem. It's the copying of the files off the discs that is the challenge... because they are copy protected. So it's not really an HFE problem, but a disc protection one. Bit beyond my skillset, that!

I have the same problem with one of the files on my own SNG47 disc (P.CODE, which seems to be protected in some way), and one of the files on the Superior 80T HFE (this time it's I.CODE). And I also don't know how to extract the files from the original cassette versions in UEF, as they are also protected (but I've come across various hints how to crack this, so that one I might be able to do at some point).

When the binaries are extracted, then comparing them is at least feasible, but my protection-cracking skills are non-existent. So any help would be great in this regard!

Mark
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

MarkMoxon wrote:
Thu Apr 08, 2021 4:22 pm
I couldn't resist taking a quick look at the various versions of Elite I've collected while doing my analyis, and comparing them to the versions on bbcmicro.co.uk.
Mark, many thanks for your extremely helpful analysis!

To summarise your summary, am I right in thinking that the only copy of Elite on bbcmicro.co.uk that's problematic is the Acornsoft original disc version ("Elite [disc]") because it has the bugs you mentioned?

If I'm right, then I would appeal to anyone who has a (deprotected) copy of the bugfixed Superior release of what we're referring to here as "Elite [disc]" to please give us a shout!

[-o<
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

lurkio wrote:
Thu Apr 08, 2021 5:03 pm
To summarise your summary, am I right in thinking that the only copy of Elite on bbcmicro.co.uk that's problematic is the Acornsoft original disc version ("Elite [disc]") because it has the bugs you mentioned?
Yes, that's right. All good bar the disc version, I'd say.
lurkio wrote:
Thu Apr 08, 2021 5:03 pm
If I'm right, then I would appeal to anyone who has a (deprotected) copy of the bugfixed Superior release of what we're referring to here as "Elite [disc]" to please give us a shout!
I don't have a deprotected Superior version as such, but I did manage to extract the disc version's files from the Superior HFEs in the archive, and I can confirm they are identical to the files from the SNG47 disc (with all the bugs fixed, in other words, so v1.1). So if you just want a working version that's up to date, and don't actually need a genuine deprotected Superior disc, this one is an option:

https://github.com/markmoxon/disc-elite ... e-disc.ssd

It contains the loader from the original STH version, which seems to pause for quite a while on the Acornsoft screen, so a proper Superior version might be a slicker loading experience, but at least it’s an option!

Mark
User avatar
trixster
Posts: 1104
Joined: Wed May 06, 2015 12:45 pm
Location: York
Contact:

Re: A definitive comparison of Elite versions

Post by trixster »

Fascinating thread!
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

MarkMoxon wrote:
Thu Apr 08, 2021 4:40 pm
To clarify - I can access the HFEs in beebjit, no problem. It's the copying of the files off the discs that is the challenge... because they are copy protected. So it's not really an HFE problem, but a disc protection one. Bit beyond my skillset, that!
Do you mean that it's the copying the files off the physical floppy discs that is the challenge? I presume you don't mean that the challenge is copying files off the HFEs because later you wrote this:
MarkMoxon wrote:
Thu Apr 08, 2021 5:18 pm
I don't have a deprotected Superior version as such, but I did manage to extract the disc version's files from the Superior HFEs in the archive
That implies that you have in fact been able to copy files off at least one HFE. Am I right?

MarkMoxon wrote:
Thu Apr 08, 2021 5:18 pm
I did manage to extract the disc version's files from the Superior HFEs in the archive, and I can confirm they are identical to the files from the SNG47 disc (with all the bugs fixed, in other words, so v1.1). So if you just want a working version that's up to date, and don't actually need a genuine deprotected Superior disc, this one is an option: https://github.com/markmoxon/disc-elite ... e-disc.ssd
I'm a bit confused. Are you saying that the version of Elite you link to there on your Github repo is the same as the version on the "SNG47 disc"? If so, what do you mean exactly when you say "the SNG47 disc"? I don't think you can mean this one at bbcmicro.co.uk because that's "G47": a version of Elite that will run on a Model B or B+ but only if a copro is active. (It will also run on a Master.) But the disc-image you link to on your Github repo contains a version of Elite that apparently works only on a Model B without a copro. And it doesn't seem to run correctly on a Master — the font gets all messed up. And it doesn't seem to work on any machine that has an active copro either...

Sorry for the annoying questions! I'm genuinely all at sea here!

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

lurkio wrote:
Thu Apr 08, 2021 11:28 pm
Sorry for the annoying questions! I'm genuinely all at sea here!
Whoops! Sorry for being unclear - let me see if I can do a bit better. :-)

I have managed to copy some files off some HFEs (just by using *COPY in beebjit), but it's a bit hit-and-miss. For example, I can't copy any files off any of the HFEs in the archive for the original disc version (from this thread) - they all just give me disc errors, as the discs are protected. Some later releases have less copy protection, so for some of those I've been able to copy off some of the files, though again, not all of them. (I can copy quite a few files off the Superior HFEs, but again, not all, and not enough to get a working disc.)

For clarity, here are the official BBC versions I'm talking about (this thread is quite useful in this regard):
  • Original game, released on cassette and disc (Acornsoft SNG37)
  • 6502 Second Processor disc (Acornsoft SNG45)
  • Combined model B, B+, 6502SP and Master disc (Acornsoft SNG47)
  • Superior Software releases
The full Acornsoft version codes are SNG37, SNG45 and SNG47, but people also call them G38, G45 and G47 - it's the same thing, but the boxes contain the full SNG code, so that's the one I tend to use.

SNG47 contains all the main versions on one disc (disc, 6502SP, Master).

The SSD I linked to contains the disc version only, but I copied the main game files from my original SNG47 disc, so in terms of the bug fixes, my SSD contains the latest game code.

The SNG47 version on bbcmicro.co.uk does not appear to contain all the versions - it seems to be missing some files from the standard model B disc version (e.g. the Elite2 file is missing). You have the Master and 6502SP versions on your version of SNG47, and lots of files from the disc version, but not all of the files from the disc version. If you try booting your SNG47 disc in JSBeeb when set to a Model B, you get an error message, which isn't the case for the original SNG47:

http://bbcmicro.co.uk/jsbeeb/play.php?a ... ssd&noseek

Also, a word on loaders. Pretty much every version of Elite that I've come across has a different batch of loader files (e.g. ELITE, ELITE2, ELITE3 etc.). These typically display the Acornsoft loading screen, then draw the Saturn loading screen and load the dashboard, and then run the main game. Most protection code tends to be in the loader files, which is why they differ so much, depending on who cracked the protection, which version of the protection it was, and how it was cracked. The loader files from the official releases tend only to work on the original discs, as they generally expect a specific, protected disc format, and fail when run on copies (which is the point of the protection, obviously!).

To be explicit, the main game files for the disc version are T.CODE, D.CODE and the D.MOA through D.MOP files. The loader files are typically !BOOT, ELITE and ELITE2, though you may also see ELITE3 through to ELITE6 depending on the version, and capitalisation varies a lot too. Also, some versions contain menu code so you can choose the version to load, and others contain instructions. The variety is huge!

The version I linked to contains the loader files from the current disc version on bbcmicro.co.uk, but with the main game files updated to fix the bugs. It doesn't contain any co-pro or Master files at all, so it won't run on those platforms. For some reason it pauses longer than the version on bbcmicro.co.uk when loading, so I think I may have missed something there, even though I'm sure the loader files are identical to the version on bbcmicro.co.uk - that needs more investigating, as that pause isn't ideal.

Given this, it's probably not a good idea to use my disc as it is - it's more for playing with the source code than for playing the game, really. I could try updating your existing disc version image with the bug-fixed main game files, if that would be any use? (See below)

Failing that, I guess the options are:
  • Find an SSD version of the original disc version with the bugs fixed - some of the HFEs from the archive contain bug fixes, but I don't know if SSDs are available of this version anywhere
  • Find a full SSD version of SNG47, which contains the bug-fixed disc version, and run it on a BBC Micro in JSBeeb (as noted, the version of SNG47 on bbcmicro.co.uk is not complete, so you can't used that one for the disc version)
  • Find a version of the Superior release, which again should contain the bug-fixed disc version, and which should work just like the SNG47 version (I'm still analysing differences between SNG47 and the Superior releases, but the main game files for the disc version are definitely the same)
Sorry, long message, but it's a bit of a mish-mash with all these versions out there! Hope this one's clearer, anyway. :-)

Mark
Last edited by MarkMoxon on Fri Apr 09, 2021 12:49 pm, edited 1 time in total.
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

MarkMoxon wrote:
Fri Apr 09, 2021 12:16 pm
I could try updating your existing disc version image with the bug-fixed main game files, if that would be any use?
I thought I'd give this a whirl - it worked fine. Attached is the current bbcmicro.co.uk Elite [disc] SSD, but with D.CODE and T.CODE updated to contain all the known bug fixes (i.e. refund and asteroid bugs, plus an updated version number in saved commander files).

Specifically, the files have been changed as follows (these are crc32 values):
  • D.CODE from 25be225d to a9ee9d74
  • T.CODE from 6b22a971 to 42f42f63
Here's the updated SSD:

[Removed to prevent confusion, see posts below]

I can confirm that asteroids now work, as I just destroyed a couple. See what you think, anyway.

(Note, this SSD only contains the disc version, as with your current SSD. It doesn't contain Tube, Master etc.)

Mark
Last edited by MarkMoxon on Fri Apr 09, 2021 1:03 pm, edited 1 time in total.
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

MarkMoxon wrote:
Fri Apr 09, 2021 12:16 pm
Whoops! Sorry for being unclear - let me see if I can do a bit better. :-)
Thanks, Mark. I think I understand the situation now (but pleeease don't ask me to explain it in my own words!).

Acting on what you said (because I too had noticed the delay on the Acornsoft splashscreen in the version of the game on your Github-linked disc-image), I tried a little experiment: I downloaded the "Elite [disc]" image (Disc021-ElitedD.ssd) from bbcmicro.co.uk and deleted (*DESTROYed) all the D.* and T.* files on it. I then copied all the D.* and T.* files from your Github disc-image onto the "Elite [disc]" image to replace the ones I'd just destroyed. Here's the result -- which doesn't seem to display the delay on the Acornsoft screen:

Disc021-EliteD-HAK.ssd
(200 KiB) Downloaded 8 times

I wonder if this hacked version would be an acceptable bugfixed version of "Elite [disc]" to host on bbcmicro.co.uk..?

:?:
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

MarkMoxon wrote:
Fri Apr 09, 2021 12:49 pm
MarkMoxon wrote:
Fri Apr 09, 2021 12:16 pm
I could try updating your existing disc version image with the bug-fixed main game files, if that would be any use?
I thought I'd give this a whirl - it worked fine.
Ah! Looks like we crossed posts!

:!:

EDIT: How come your fixed version skips all the instruction screens that are in the "Elite [disc]" version on bbcmicro.co.uk?

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

Looks like yours is more correct - I thought I'd updated the bbcmicro.co.uk one, but it looks like I just updated the STH/JSBeeb version.

Too many versions! :shock: I'll delete mine to prevent even more confusion.

I would say that your version is a pretty good solution for bbcmicro.co.uk - the original version, just bug-fixed. Good job! :-)

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

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

lurkio wrote:
Fri Apr 09, 2021 12:55 pm
EDIT: How come your fixed version skips all the instruction screens that are in the "Elite [disc]" version on bbcmicro.co.uk?

:?:
'Cos I messed up and "fixed" the original STH/JSBeeb version, not the one on bbcmicro.co.uk. I'm clearly getting version-blind! :-)

Incidentally, I can confirm your new version has asteroids. So it looks good!

Mark
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

MarkMoxon wrote:
Fri Apr 09, 2021 1:06 pm
Incidentally, I can confirm your new version has asteroids. So it looks good!
Thanks, Mark. I've uploaded it to bbcmicro.co.uk, replacing the previous buggy version:

http://bbcmicro.co.uk/game.php?id=366

:idea:
User avatar
billcarr2005
Posts: 1674
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: A definitive comparison of Elite versions

Post by billcarr2005 »

Had a look at the protection of the original disk and would've "cracked" it the same as has been done.
Elite2 decrypts itself,
loads some new code at &5700 (ELITE3),
clears &2F00,
displays the MODE7 screen,
loads some more code (ELITE4),
displays the stars/planet & panel,
then *L.T.CODE, sets up vectors and JMP&11E6
MarkMoxon wrote:
Mon Apr 05, 2021 1:24 pm
The advert also mentions a Master Compact version - I wonder what differences that has? Apart from costing more...
leenew wrote:
Mon Apr 05, 2021 1:55 pm
From what I have read, the only difference in the Master Compact version was that it was on a 3 1/2" disc.

Code: Select all

            !BOOT      L  (01)  00000E00  00000E43  0002E4  000007   (000700) 107B98CC
            BDATA      WR (02)  00001300  00001300  004200  00000A   (000A00) 94906C66
            E          DR (04)  0000B9   (00B900) 5E910232
                  JOE-20     WR (01)  00000000  00000000  000100  0000BE   (00BE00) A01DC6AB
            ELITE      WR (03)  00001300  00002C6C  006D00  00004C   (004C00) 4AE33410
It's worth noting that the BBC Master Compact version seems to be a completely build, so another one to disassemble? ;)
The control panel is white (like 2nd processor ELITE?) rather than yellow, is one immediate difference!

viewtopic.php?p=106894#p106894
viewtopic.php?p=105826#p105826

As has been noted (I think!) elsewhere, the only differences between the "broken" and "fixed" versions are contained within (although the offsets appear to be different (by -1 byte) in the bbcmicro.co.uk version - and the version i was working with too (the 1770 compatible version)! :?

Code: Select all


T.CODE 11E3+4E1D 11E3
---------------------
CALL&1201 DECRYPTION!
---------------------
		ORIGINAL	FIXED
2FCD		JSR 30E9	JSR 30ED
2FDB		JSR 30E9	JSR 30ED
3051		JSR 30E9	JSR 30ED
305E		JSR 30E9	JSR 30ED

30E4		LDY#&BB		NOP
30E5				NOP
30E6		JMP&2FE8	NOP
30E7				NOP
30E8				NOP
30E9		STA &06		NOP
30EA				NOP
30EB		LDA &368,X	NOP
30EC				NOP
30ED				STA &06
30EE		BEQ &3113
30EF				LDA &368,X
30F0		CMP &06
30F1

30F3		BEQ 30E4	BEQ 3113

38DC		ORA #&04	ORA #&20

55F1		8E 13 1C	RPS

---------------------
D.CODE 11E3+441D 11E3
4007		JMP 3F9A	NOP
4008				NOP
4009				NOP
So only T.CODE and D.CODE need to be replaced/refreshed/renewed
User avatar
lurkio
Posts: 3402
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: A definitive comparison of Elite versions

Post by lurkio »

billcarr2005 wrote:
Sun Apr 11, 2021 11:12 am
As has been noted (I think!) elsewhere, the only differences between the "broken" and "fixed" versions are contained within (although the offsets appear to be different (by -1 byte) in the bbcmicro.co.uk version - and the version i was working with too (the 1770 compatible version)! :?
I'm afraid I don't quite follow you! :oops:

Are you saying there's something wrong with any of the versions of Elite hosted at bbcmicro.co.uk?

:?:
User avatar
billcarr2005
Posts: 1674
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: A definitive comparison of Elite versions

Post by billcarr2005 »

lurkio wrote:
Sun Apr 11, 2021 12:14 pm

I'm afraid I don't quite follow you! :oops:

Are you saying there's something wrong with any of the versions of Elite hosted at bbcmicro.co.uk?
:?:
If there had been something wrong with any of the versions of Elite hosted at bbcmicro.co.uk,
I would've said "there's something wrong with (any of the version of) Elite hosted a bbcmicro.co.uk :roll:
I *just* noted that they are *different*, so there are likely 3 different versions - the broken, the fixed and the fixed with slightly different layout :D
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

billcarr2005 wrote:
Sun Apr 11, 2021 11:12 am
Had a look at the protection of the original disk and would've "cracked" it the same as has been done.
Elite2 decrypts itself,
loads some new code at &5700 (ELITE3),
clears &2F00,
displays the MODE7 screen,
loads some more code (ELITE4),
displays the stars/planet & panel,
then *L.T.CODE, sets up vectors and JMP&11E6
That all sounds pretty standard (for Elite!), so that's good.

The bit I'm having problems with is getting the files off the original release discs in the first place (I'm getting quite good at working out what they do once extracted - it's the extraction that I can't work out). In other words, given an HFE of an original, protected disc, how to get ELITE2, ELITE3 and ELITE4 (and T.CODE, D.CODE etc.) extracted, so I can then disassemble them and compare them with the other versions. All I've tried is a *COPY from the HFE in beebjit, and that just gives a disk error (no surprise there)... and then I'm stuck.

I appreciate that every disc is protected in a subtly different way, and that disc cracking is an art, but it is making it difficult for me to compare all the various unprotected versions and source disc versions with the release versions, as I don't have binaries from the latter to compare them with. Another skill to learn, I guess!

Any pointers from anyone would be very glady received...
billcarr2005 wrote:
Sun Apr 11, 2021 11:12 am
It's worth noting that the BBC Master Compact version seems to be a completely build, so another one to disassemble? ;)
The control panel is white (like 2nd processor ELITE?) rather than yellow, is one immediate difference!

viewtopic.php?p=106894#p106894
viewtopic.php?p=105826#p105826
Definitely going to analyse this one, then. I've got two different versions of the Master Compact binaries now (in terms of crc32, anyway), and they both differ from the Master 128 version, so once I've done the Electron version, the Master Compact version is next. I suspect it'll be a slightly tweaked Master 128 binary, rather than a big re-hash, but we'll see!

Mark
User avatar
billcarr2005
Posts: 1674
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: A definitive comparison of Elite versions

Post by billcarr2005 »

All files with the disk catalogue should be freely copiable.

Since the HFE is 40 track side 0 and 80 track side 2, it appears like it's defaulting to 80 track all round, so no files, save for
!BOOT
ELITE
Elite2
will load/copy from drive 0, but the game works fine since it's loading from drive 2, as per the original.

It might be down to which options in the command line, have you tried -opt disc:drive0-40 ?

This should allow all files from drive 0 to copy to an SSD in drive 1

There's no quick way to extract the data, unfortunately - the data loaded to &5700 (ELITE3) is on track 2, but the sector headers are non standard - although only &900 bytes rather than &B00 than on the bbcmicro.co.uk - so I guess this is *technically* "something wrong" [-X
The data loaded to &1900 (ELITE4) is on track 4, 5 and the first sector of track 6. (&1500 bytes)
Track 7 - 39 are all standard

The Elite2 decryption process can be done manually with the following

Code: Select all

P%=&2E00
[LDX&2F18:LDA&2F00:EOR&2F00,X:STA&2F00,X:INX:BNE&2E06:INC&2F04:INC&2E04:BEQ&2E21:LDA&2F04:CMP#&1E:BEQ&2E0F:JMP&2E00:RTS
CALL&2E00
CALL&2F7D will then load "ELITE3", skipping PHA-ing the values to the stack which will avoid the RTS-ing to &5700
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

billcarr2005 wrote:
Sun Apr 11, 2021 2:53 pm
It might be down to which options in the command line, have you tried -opt disc:drive0-40 ?

This should allow all files from drive 0 to copy to an SSD in drive 1
That's done it! I wasn't setting the number of tracks - not the first time that's caught me out. :-) I’m a bit of a beebjit newbie, clearly...

The rest is the kind of disc-level sector stuff I'm trying to learn, so thanks for the breakdown. I'm hoping to go through the process at least once, so I understand it, and this is going to be really useful info. The problem with disassembling the cracked versions is that the copy protection code is typically NOP'd out, so it's hard to learn how it all works from disassembling them.

Thanks for the pointers, that is starting to make a lot more sense now!

Mark
User avatar
billcarr2005
Posts: 1674
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: A definitive comparison of Elite versions

Post by billcarr2005 »

I've tested this with the HFE i had (ie might not work with other versions), to save any typing
Load it up in drive 1, then *EXEC :1.Z

If you don't CALL&5800 (line 130) you'll also be able to see the original Elite2 at &2F00

ELITE3 is largely just the MODE7 screen (CALL&5DE0) the rest of it is just to load ELITE4

ELITE4 has a checksum on the the second catalogue sector (F00-FFF) which will result in the game hanging after the stars are drawn.
?&295B=&EA
?&295C=&EA
will bypass that
Attachments
E.zip
Elite Automated Cracker
(477 Bytes) Downloaded 3 times
User avatar
scarybeasts
Posts: 704
Joined: Tue Feb 06, 2018 7:44 am
Contact:

Re: A definitive comparison of Elite versions

Post by scarybeasts »

MarkMoxon wrote:
Sun Apr 11, 2021 3:32 pm
billcarr2005 wrote:
Sun Apr 11, 2021 2:53 pm
It might be down to which options in the command line, have you tried -opt disc:drive0-40 ?

This should allow all files from drive 0 to copy to an SSD in drive 1
That's done it! I wasn't setting the number of tracks - not the first time that's caught me out. :-) I’m a bit of a beebjit newbie, clearly...
You're doing great! I do apologize for beebjit's lack of documentation. There are a lot of useful / powerful options, but that doesn't do anyone any good if they are not described well anywhere. I'll prioritize improving this.

Normally, loading a 40 track or an 80 track HFE in beebjit will "just work". Elite is somewhat unusual in that not only is it double sided (in the drive 0/2 sense, not the flippy sense) but the two sides differ in number of tracks.
The rest is the kind of disc-level sector stuff I'm trying to learn, so thanks for the breakdown.
One other beebjit option you might enjoy is: -log disc:protection
This lists all the sectors where things get a bit weird. There's also -log disc:commands, which shows the raw 8271 or 1770 commands being issued, included any commands in the protected loader.

Which exact Elite HFEs are you looking at? So far, we've got three variants of the original Acornsoft release:

Elite_D1DS_80T_HG3_AE9FDB6E_DF29D402_1.hfe
Elite_D1DS_80T_HG3_B88911B2_BF6048A8_1.hfe
Elite_D1DS_80T_HG3_E6F099D7_DF29D402_1.hfe

The earliest release is Elite_D1DS_80T_HG3_B88911B2_BF6048A8_1.hfe, which is not very 1770 compatible and has the credits cheat bug, etc. I don't recall if anyone has done an analysis of whether the later two releases have identical code.


Cheers
Chris
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

scarybeasts wrote:
Mon Apr 12, 2021 9:42 am
You're doing great!
Thanks. I have to say, being able to load the original discs in beebjit is absolutely brilliant, and working out the command-line options is very a small hurdle. It's a great tool for digital archaeology. :-)
scarybeasts wrote:
Mon Apr 12, 2021 9:42 am
One other beebjit option you might enjoy is: -log disc:protection
This lists all the sectors where things get a bit weird. There's also -log disc:commands, which shows the raw 8271 or 1770 commands being issued, included any commands in the protected loader.
This is exactly the kind of thing I wanted to know. I'd like to be able to write a deep dive on Elite's disc protection at some point, and this is gold!
scarybeasts wrote:
Mon Apr 12, 2021 9:42 am
Which exact Elite HFEs are you looking at? So far, we've got three variants of the original Acornsoft release:

Elite_D1DS_80T_HG3_AE9FDB6E_DF29D402_1.hfe
Elite_D1DS_80T_HG3_B88911B2_BF6048A8_1.hfe
Elite_D1DS_80T_HG3_E6F099D7_DF29D402_1.hfe

The earliest release is Elite_D1DS_80T_HG3_B88911B2_BF6048A8_1.hfe, which is not very 1770 compatible and has the credits cheat bug, etc. I don't recall if anyone has done an analysis of whether the later two releases have identical code.
I randomly picked Elite_D1DS_80T_HG3_E6F099D7_DF29D402_1.hfe for my first extraction, but the long-term goal is to extract all the files from all the variants (including cassettes, Superior versions etc.) so I can document all game-related code variations. For the main game files, that should be relatively easy, but the loaders do contain code that can affect gameplay (e.g. text tokens), so I'll be trying to extract them too.

Given the information above and billcarr's E.zip, I've got lots to try now. (Going to try to test that zip soon, but with lockdown easing, so is my free time!)

Thanks for the info, Chris, really appreciate it.

Mark
User avatar
scarybeasts
Posts: 704
Joined: Tue Feb 06, 2018 7:44 am
Contact:

Re: A definitive comparison of Elite versions

Post by scarybeasts »

MarkMoxon wrote:
Mon Apr 12, 2021 12:13 pm
scarybeasts wrote:
Mon Apr 12, 2021 9:42 am
You're doing great!
Thanks. I have to say, being able to load the original discs in beebjit is absolutely brilliant, and working out the command-line options is very a small hurdle. It's a great tool for digital archaeology. :-)
scarybeasts wrote:
Mon Apr 12, 2021 9:42 am
One other beebjit option you might enjoy is: -log disc:protection
This lists all the sectors where things get a bit weird. There's also -log disc:commands, which shows the raw 8271 or 1770 commands being issued, included any commands in the protected loader.
This is exactly the kind of thing I wanted to know. I'd like to be able to write a deep dive on Elite's disc protection at some point, and this is gold!
In case it helps, beebjit also has a poorly documented internal disc sector analyzer / reader. If you hit Ctrl-C to trap into the debug console, the commands look a bit like this:

./beebjit -0 ~/hfe/Elite_D1DS_80T_HG3_E6F099D7_DF29D402_1.hfe
(6502db) dtrack 2
(6502db) dsec
track 2 sectors 10 FM256[26 05 F6 00] FM256[26 05 F7 00] FM256[26 05 F8 00] FM256[26 05 F9 00] FM256[26 05 FA 00] FM256[26 05 FB 00] FM256[26 05 FC 00] FM256[26 05 FD 00] FM256[26 05 FE 00] FM256[26 05 FF 00]
(6502db) drsec 0
0000: A9 00 A8 99 00 2F C8 D0 FA A9 00 8D FF 3F A9 40 ...../.......?.@
0010: 8D FF 7F 4D FF 3F 18 69 40 48 AA A9 FE A0 00 20 ...M.?.i@H.....
[...]

Above, we're seeing that track 2 (track 1 in some regards as it's the 40T side) has sectors that claim to be 128 bytes (the "00" value at the end of every sector descriptor). But the beebjit sector parser thinks the best fit is actually 256 bytes (FM256). The "drsec 0" command reads the data from the 0th (first) sector in physical order.


Cheers
Chris
User avatar
billcarr2005
Posts: 1674
Joined: Fri Sep 09, 2005 4:01 pm
Location: UK
Contact:

Re: A definitive comparison of Elite versions

Post by billcarr2005 »

FILENAMECRC-32TRACK 01-06SECTORS, HEAD#REPORTED SIZEDeleted data2FCCElite2 2F1ESTATUS
Elite_D1DS_80T_HG3_B88911B2_BF6048A8_1.hfe DADE223C 26,26,u,
24,23,22
F6-FF, 05 &80 Yes JSR&30E9 A8 AA D6 D0 BROKEN!
Elite "Variant 4" (no HFE) - 26,26,u,
24,23,22
80-89, 00 &80 No JSR&30E9 DE DF A0 D3 BROKEN!
Elite_D1DS_80T_HG3_AE9FDB6E_DF29D402_1.hfe 392D34C4 26,26,u,
24,23,22
80-89, 00 &100 No JSR&30ED DE DF 45 36 FIXED!
Elite_D1DS_80T_HG3_E6F099D7_DF29D402_1.hfe BC90ADA2 26,26,u,
24,23,22
80-89, 00 &100 Yes JSR&30ED DE DF D8 AB FIXED!
The differences are quite quick to find

Code: Select all

*LOAD T.CODE
CALL&1201 (Decryption)
P.~!&2FCC
 A9 30E9 20
Seems the differences I posted here
viewtopic.php?p=316842#p316842

contained the addresses where ED + 30 were found, not the JSR instruction, so there isn't a discrepancy of +/- 1 byte after all #-o

I think I've got another disk imaged with reported sizes of 128 bytes, but with the usual (for ELITE) sectors 80-89 which will probably be the "broken" version too!

Some variants have Deleted data on tracks 4,5 and track 6 sector 1 - the location of "ELITE4"

Thanks to @Tricky for using a table that I could copy :D
Last edited by billcarr2005 on Wed Apr 14, 2021 10:05 am, edited 5 times in total.
User avatar
tricky
Posts: 5411
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: A definitive comparison of Elite versions

Post by tricky »

Quote is a useful tool :)
I only found it by putting basic HTML in [ ] instead of < > and it worked.
I haven't found any other tags/attributes that are supported, but hey this is better than nothing.
User avatar
MarkMoxon
Posts: 149
Joined: Thu Jul 18, 2019 4:38 pm
Contact:

Re: A definitive comparison of Elite versions

Post by MarkMoxon »

billcarr2005 wrote:
Sun Apr 11, 2021 8:38 pm
I've tested this with the HFE i had (ie might not work with other versions)
Fantastic - that's worked well on all the variants I've tried! The extracted files are very similar to the version I've got building in my annotated repo (which is a hacked version, so the differences are to be expected). Hopefully I'll be able to use these to document what all the NOPs in the cracked version replaced, which is what I'm aiming for.

Thanks for all the help. I'm learning lots here, which is brilliant. :-)

Mark
Post Reply

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