The other day, I had some fun asking an AI about me – I mean really me, a.k.a. Uselesssoft :)
Coincidence or not, intentional or otherwise, I have never mentioned on my website the hacking (or cracking, as it was called back then) pseudonym I used during the Sinclair ZX Spectrum cassette tape era – so now I notice that the AI is fumbling in the dark.
Within the community of enthusiasts and collectors of software for the Sinclair ZX Spectrum, the real identity behind the pseudonym “Uselesssoft” remains unknown to this day.
Heh, what an impenetrable mystery :)
One of those AIs – the one used by DuckDuckGo, if I’m not mistaken – assumed that the real person behind that name might be from the former Yugoslavia (!), but otherwise, in general,
The real person behind “Uselesssoft” is not documented in any major ZX Spectrum archive, and the name almost certainly belonged to an anonymous hobbyist coder rather than a known commercial developer.
Well, would you look at that...
Fact: before the end of ’89, computer games could not be purchased anywhere in my country – which is Romania, to clear up any confusion. It was just a matter of luck if you happened to know someone – or had a friend who knew someone – who either received a game pack from an acquaintance in the UK, or brought one back themselves after a trip there. Having a friend – or perhaps a friend of a friend – who happened to know that person with the original cassette, the only viable method to also obtain that particular game was copying it from one cassette to another; although it is true that this could have been accomplished through direct copying in the traditional audio manner, such a method would have yielded reliable results for only two, or at most three generations of re-recordings. Consequently, the only viable solution was to use specialized copying software for the copying process; such a software would first load the entire game into the computer’s memory, from where it could then be taken out in pure digital audio and recorded ‘as new’ onto another audio cassette.
Problem: such copying programs, however, only worked with the standard, native ZX Spectrum file format. Custom protection schemes therefore had to be removed somehow.
There were already a few brutal methods for saving – in standard file format – a snapshot of a game already loaded in computer’s memory, but I never liked the fact that such a game copy was no longer complete, especially with the original loadig screen being the great absentee from the scene.
Being passionate about electronics, at some point in ’89 I managed to build a Spectrum clone with 64 KiB of RAM using typical LSTTL integrated circuits I bought on the local black market, a clone I used in conjunction with a modified ROM. This allowed me to set a breakpoint anywhere in a game’s code – via the Z80 NMI signal – and subsequently do there whatever. The actual hacking tools resided mostly in the additional 16K RAM area, the existence of which an original game was completely unaware.
Thus, whereas until then this had seemed like an impossible task, the “clean” removal of a custom protection mechanism became a reality for me.
As an aside: most copy protection schemes are just a wrapper. Almost all of those alien loading bleeps & twists are extraneous to the game producers themselves – whatever that game may be – and once the loading process into computer memory is complete, the loading elements either self-destruct (for example, by being overwritten with subsequent LDIR or LDDR instructions performed over the entire game block) or remain as junk data. The whole loading process concludes with a JP xxxx instruction, pointing to the game’s clean starting address. Setting a breakpoint just before that JP xxxx allows a game to be saved and subsequently reloaded using ZX Spectrum native loading routines, while keeping the integrity of the original game completely unaltered – exactly as the game author created it.
Probably, my successful breakthrough came when I managed to crack Rygar – that is, the Alkatraz protection scheme – leaving the game perfectly clean before starting, with the screen loading sequence reproduced nearly identical as in the original protected version – not perfect, but close – and implementing the virtual on-screen tape counter during game code loading identical as in the original Alkatraz edition version.
Rygar, tape loading:
on the left is the original Alkatraz custom loading version, on the right is the cracked standard loading version
Notes:
I stripped away the sound from the above video, and the Z80 processor speed at the time the clips were captured was set to 14 MHz, so that the visual loading wouldn’t become boring :)
Back then I happened to include the year timestamp in the cracked standard loading code: 1989
Later, when my hardware became 128K compatible, I further refined my loading routine – for instance, by maintaining the original concept of loading the screen and the code as a single block, without any pause between them. All this only until late ’90, when my interest shifted to the +3 Spectrum scene, both hardware and software.
Because I devoted a considerable amount of effort into a hobby that I actually considered completely useless from pretty much any point of view, I simply chose the pseudonym USELESSSOFT. All the more so since my passion was – and actually still is – focused on hardware, and only tangentially on software.
That is pretty much the whole story :)
