SpeedLock
I'm aware that there are seven (7) - yes, SEVEN!! - different iterations of the SpeedLock loader. I've loaded games from all 7 types, one by one, and I can say with some authority, that despite the moniker, some games do not use the SpeedLock scheme. Here are some of the basic known features-cum-prerequisites of the loader:
- Data can be recorded in either BASIC and/or CODE blocks (typically one of each)
- Data can either be encrypted or left as it is
- Non-standard colours (typically red/black for pilot tone and blue/black for data)
- The title screen appears suddenly and there is a countdown timer (minutes: seconds: deciseconds) in lieu of a border or loading stripes
I have found that some games claiming to be SpeedLock actually fail to adhere to these basic rules of the loader, the most prominent ones being mostly Types 1 and 2, as well as a few Type 5 and 7 games. Just as a heads-up, I'm currently loading each game one by one and determining which type it could be reassigned (to simplify and tidy it up a bit) - determined by the decryption sequence, the most common ones being:
Bubbling sound/melody
Fast-paced high-pitched bleep (think of someone swearing repeatedly)
Slow-paced bleep transposed down a tone
No action or sounds (silent decrypter)
I will report back when I have thought of an alternative way to catalogue such titles... if I can get through 1000+ loading tapes.
- Data can be recorded in either BASIC and/or CODE blocks (typically one of each)
- Data can either be encrypted or left as it is
- Non-standard colours (typically red/black for pilot tone and blue/black for data)
- The title screen appears suddenly and there is a countdown timer (minutes: seconds: deciseconds) in lieu of a border or loading stripes
I have found that some games claiming to be SpeedLock actually fail to adhere to these basic rules of the loader, the most prominent ones being mostly Types 1 and 2, as well as a few Type 5 and 7 games. Just as a heads-up, I'm currently loading each game one by one and determining which type it could be reassigned (to simplify and tidy it up a bit) - determined by the decryption sequence, the most common ones being:
Bubbling sound/melody
Fast-paced high-pitched bleep (think of someone swearing repeatedly)
Slow-paced bleep transposed down a tone
No action or sounds (silent decrypter)
I will report back when I have thought of an alternative way to catalogue such titles... if I can get through 1000+ loading tapes.
Post edited by Swevicus on
Comments
It's going to be a free game, right?...so why bother?
...It may shave a minute or two off the loading time if you're loading the finished game on a real Spectrum, but I bet most people wouldn't mind spending a minute or two extra for the higher successrate they'll have loading the game. And only a fraction of those who'll play the game will do so on a real Spectrum.
My games for the Spectrum: Dingo, The Speccies, The Speccies 2, Vallation, SQIJ.
Twitter: Sokurah
It's just me - I'm a natural born Rimmer (minus the 'H' and stupid haircut and uniform obsession).
it's been well documented on how to break the speedlock protection and completly remove it
Although I've been unable to crack any program using it (yet), I've read some things about it. In earlier versions, they had a fixed number of data decryptors that could be choosen from a few algorythms. In later versions, they put more data decryptors choosen from several algorythms. Not every Speedlock 7 had the same algorythms, and I don't know if they even had the same number of decryption loops.
I guess the other features (speed, border stripes, etc) may vary also between loaders of the same version (although I think earlier versions haven't those variations).
(BTW, v1 Speedlock usually had TWO basic blocks)
An' you know what they said?
Well, some of it was true!
Regarding Speedlock, I think only the later versions perhaps v3 onwards ? used different colours. I recall the earlier versions did not do an LDIR or similar to get the screen up quick it was loaded in the conventional 16384 place, seen by calling the loader directly without a black screen and watching it.
Disclaimer: I know little about Speedlock just my initial observations. :)
I think there's a Speedlock 8, which is a later version of 7.
Of course we number them 1~7 based on (at the time) Ramsofts findings.
We could have kept 1~4 but used points to separate the variants. I don't know which
would be best, but we've used the numbering for a while so probably isn't any point considering changing it.
I probably have a Excel Spreadsheet or some TXT file knocking around from various others' findings of which titles use which speedlock. There are some searchable via WoS's infoseek using the speedlock scheme under advanced.
We've also tried replacing pauses and decryption tones when revisiting some titles, as some were broken or missing them.
I don't think they match with the types listed on WOS though.
My ZX Art Music Page
Carlos Michelis Theme
D.
Anyway I always used to be able to tell a Speedlock 1 or 2 game by the noise it made when loading in the first (or sometimes second) bit of basic, it sounded like it went "SPEEEEEEDlockxzxzchhrhchhxhzhxhzhchchh" (etc) and I think that was the rem statement in line 0 "Protected by SPEEDLOCK" with loads of spaces before it although the very early ones like Daley Thompson's Decathlon didn't have this.
Anyway Speedlock 1 was 84 to about 86, normal loading stripes, data sounded "normal" when loading, just sped up a bit.
Some of them loaded the screen and game in one go, some loaded the screen, then a separate block for the game - I think US Gold and a few Gremlin games did this but can't remember offhand.
Speedlock 2 was 86-87, the main difference was the data was encrypted - listen to the screen loading, it sounds noticeably "odd" compared to Speedlock 1.
Now there were 2 versions of Speedlock 2 - one had normal loading stripes (e.g. Terra Cresta), a later one had red/black for the leader and blue/black for the data (Head over Heels)
Speedlock 3, 4 and 5 must've been some time in 87, they'd ditched the shortish "SPEEEEEEEDlock" BASIC bit in favour of a big block of code and all those bleeps and clicks afterwards. This was the one where the screen appeared in one go with the timer countdown. Speedlock 3 (Mag Max) still had the clicky leader but this was ditched by Speedlock 4 (Athena, Renegade etc).
4, 5, 6 had all sorts of weird bloops and bleeps going on, it seemed to take 3 minutes to get as far as the loading screen appearing with the timer and one and a half minutes for the game :rolleyes:
And judging by the tone of it, the Speedlock 7 loader seems to have a slower baud rate, which is odd... perhaps it was more reliable on the dodgy +2 tape deck.
Yes I have far too much time on my hands.
- The normal "Program: Name" prompt is displayed at the beginning of the opening block
- The next block either begins with a border in a nonstandard colour, or has a small BASIC block in standard colours before loading future blocks (CODE) in nonstandard colours
Variant 1
- The screen AND the program are part of the same headerless CODE block recorded at normal speed
- The loading stripes on the border are nonstandard colours (same colour for the pilot tone and data) for the majority of the block
- The final minute of the block has the loading stripes suddenly switch over to multicolour stripes in a rainbow-like fashion (in no particular order)
Example(s): Wizard's Lair
Variant 2
- The screen AND the program are part of the same headerless CODE block recorded at normal speed
- The border is a nonstandard colour
- The loading stripes on the border are multicolour rainbow stripes (both pilot tone and data)
Example(s): The Ice Temple
Variant 3
- The screen and the program are SEPARATE headerless CODE blocks recorded at normal speed
- There are NO loading stripes on the screen - the border simply flashes and cycles between colours (both pilot tone and data)
- There is no indication that the title screen is being loaded except for the last few lines at the bottom at the end of the screen block
- This loader can have separate smaller blocks as opposed to large single ones
Example(s): Las Vegas Casino
Variant 4
- The screen and the program are SEPARATE headerless CODE blocks recorded at normal speed
- Some games will include a pre-loader warning or notice followed by a short BASIC block with a header (especially true if it is a multiload game)
- The remaining blocks are in multicolour rainbow stripes
- There is no indication that the title screen is being loaded except for the last few lines at the bottom at the end of the screen block
- This loader can have separate smaller blocks as opposed to large single ones
Example(s): Dragon Spirit
I've been racking my brains to come up with a name for this loader (and no, I'm not confusing these loaders with the Injectaload or Flash Loaders). Since the variants share the same multicolour loading stripes (or lack thereof), I was thinking of christening it the "Arcus Loader" ("Arcus" being Latin for "Rainbow"). The data encoding seems to be very similar to each other, so I'm not just picking out random custom loaders (NOT protection schemes). I wonder if anyone on the WOS Administration team is reading this - perhaps you could consider naming this loader based on the information I've given (Arcus x - x being the variant number).
Additional: By the way, this loader was used in both 48K AND 128K games, to my knowledge.
Yes I know there's the later Alcatraz stuff but that's quite difficult to use, then again the Speedlock one might not be any easier but I suspect it would be being a bit simpler, earlier versions especially.
Am surprised its not around though given a lot of companies used it it seems...
And now you've got me all fired up!
Why do loaders get me excited? Probably because they were so clever in the day, but most people wouldn't have realized what they were seeing.
I still tinker with my Chromoload to this day, and will someday get it to do the funky things I wanted in the 80's, where it was used on Cybex and Skyway. Though, Cybex was just faster loading. Skyway loaded the screen oddly and had a counter (no where near as good as speedlock! But I was only a teenager!)
Going to have a play with speedlock later.... Rah!
(I also love the Dave Cooke and Steve Marsden loaders, starting with Tech Ted. Awesome!!)
Would be interested in seeing either an easy (ish) to use Speedlock builder or perhaps Chromoload, will check those two titles you listed to see Chromoload.
EDIT... Oh I see what you mean about Skyway, loading the attributes for each line in advance, looks neat. :)
The loading screen itself was reordered before saving so that it was: one row of attributes followed by eight rows of pixels, followed by the next row of attributes... and so on. If you could look at the screen during saving, you'd see a mess with flashing attributes etc.
The counter is not very good. Would have loved to make it rotate like speedlock, but as I basically ripped the loaded from the ROM and messed with it, I was always fighting the ROM design. Should have started from scratch, which I have now.
I've got the "master maker" on +D disc here somewhere.... I'll dig it out.
Edit: See http://www.worldofspectrum.org/forums/showthread.php?p=683059&postcount=30
Certainly, the Speedlock TZX creator in SPIN doesn't use any Z80 code to save anything, it's generated entirely in Delphi, as a TZX, without ever having been an audio signal. This has some advantages, such as not requiring any of the Speccy's memory for a save routine, and being able to relocate the loader anywhere in uncontended memory.
The one that ZXSpin has had in for... how many years now, Marko?
That one. Glad you were paying attention.
D.
Call me a thicko (I haven't used ZXSpin for years) but how do you go about saving something to tzx as a Speedlock file?
I can see the "save TZX snapshots using SPIN loader/Speedlock 1/Speedlock 2" but how do you save a TZX snapshot in the first place? :confused:
It took me a while to notice that ages ago too. Anyway:
Get the game etc where you want it and pause it or otherwise
Choose to save snapshot from the menu then ensure you choose to save it as a .tzx, change the dropdown to this choice.
Only slight concern is the bottom two lines can get corrupted, I suspect the code for the loader is living here.
That'll come in handy for the Crap Games Competition if nothing else.
Yes... sort of. The loader itself resides elsewhere but the screen does hold a short snippet that attempts to restore the machine to the state it was in when it was saved by restoring registers and erasing all trace of the loader (and loading a short block of code with the ROM loader, to restore the memory used by the Speedlock loader, if absolutely required).
Unfortunately, this code has to go somewhere, and it has to survive right up until the Speccy starts executing the loaded code. The screen is the best bet for this. If for some reason your program has its own code in those 2 lines at the bottom of the screen, this entire process will fail!
Did you notice that Marko and Dunny were posting to the thread ?
I am sure Spider appreciates the thanks, but,
:-o :razz:
But if it makes you happy, I'd just like to say a big thank you to Marko and Dunny for Spin and in particular the Speedlock bit which is pretty ruddy marvellous.
http://www.zxdesign.info/software/skyway3.shtml
This should be added to the WOS archive sometime.
I'd say "Enjoy!", but unless you're in the mood for creating a bunch of cassettes.... well, I suppose the code is interesting....
Had a brief play although I need to put a bit of time into it. I'll admit it took me a few minutes to work out (read remember / look up) the +D disk commands. :oops: