The comp.sys.sinclair Crap Games Competition 2021 - 25th edition!



Author:  John Connolly Model:  1K ZX80 Format:    .O
Submission date:  2 October 2021 Documentation:  listed below Tested on:  EightyOne 1.23

Download it here

Generally speaking, Simon is just about the laziest possible choice for a BASIC Spectrum game - it's the kind of thing you'd see as a type-in, not in the magazines of around 1982-84, but more likely in a book titled Spectrum Programming For The Absolute Raw Beginner. Occasionally, though, an worthwhile variant will turn up, such as Gnarly Simon, a game that used only the border to display its super-chunky text while leaving the main screen area entirely blank. Nine years after its release, something similar dropped into my mailbox.

A Simon game... for the ZX80? Surely, for one very obvious reason, that can't be possible?

I know, and have known since I was in single figures, that it was possible to trick the ZX81 out of its enforced silence - I had a copy of the February 1983 issue of Sinclair User which included Beethoven, a machine code program that would make off-key sounds at a low volume, and could play tunes built from a string of hex codes.

But, at the risk of repeating myself... for the ZX80?

John Connolly must be some kind of Z80 programming sorcerer. Because he's made it exist.

The ZX80 and ZX81 could both output sound, they just didn't have a BASIC command to handle it or a built-in speaker. The sound comes out the MIC socket - how else would either computer be able to SAVE to tape? It's just a case of being able to manipulate the Z80's OUT (N),A instruction to point the flow of data the right way, which is what John's done - and as he provided the source code, I can see it straight away. I've also disassembled Beethoven and found the same instruction with the same port (N is 255 in both cases). I don't have a real ZX80 to test this game with, and even one of the Minstrel clones is out of my reach, but fortunately, EightyOne can be made to emulate the process. RICKY.TXT in John's thorough documentation describes a convoluted method involving the virtual tape recorder, but I found that enabling "Beeper Sound" from the Options menu, or even just pressing F4, will allow us to hear the MIC output.

As if unsilencing the ZX80 wasn't enough, John had to go one step further. Instead of mere beeps for us to repeat, the vast majority of the code is a 4 kHz PCM sample of Ricky Gervais' raucous laugh - which can be played at three different pitches, and of course your job is to repeat the ever-lengthening sequence of variably-pitched laughs until your memory is outsmarted by that of a glorified calculator that wasn't all that good at calculating. The laugh takes up 687 bytes of the ZX80's meagre memory, leaving about 250 bytes for the game code.

So one major sacrifice had to be made: the screen. LOAD - you'll see the K cursor at the top of an otherwise blank screen; that's deliberate - and RUN the game, and you'll now get a black screen, which is also deliberate. It hasn't crashed; it's waiting for your input. Press 1, 2 or 3 to start. You'll hear a high tone (circa D6, 1175 Hz), followed by three laughs, then a short D6 followed by a short G#6 (around 1660 Hz), and that's your cue to repeat the sequence. Press 2 for what I assume to be the laugh at normal pitch, press 1 if Ricky has been inhaling helium, and 3 if he's breathed sulphur hexafluoride instead. You have around two seconds to begin your input - otherwise you'll hear the error tone (approximately C5, 523 Hz). Clearly I was going to have a problem with screenshots for this game, but it does make strange interference patterns on the screen, so I've posted one for each tone, and one for Ricky's digitised laugh. The error tone is accompanied by a near-perfect set of horizontal stripes that Queen's Park would be proud to wear for their upcoming home match against Montrose. (Kick-off is at 3pm today, as I post this review!)

It's a Simon game. Actually, it's slightly less than a regular Simon, because there are only three pitch variants rather than four - I managed to get to 19 laughs before my head started to spin and hit the wrong number by accident, but that's probably a better performance that I'd do on a real Simon. And yet, this been made on a computer that should never have been able to do such a thing, at least if you're only into BASIC, and the maximum possible amount of Simon-ness has been squeezed out of the minimal available memory.

This game is very hard to score accurately. For attainment, it's a balance between "...he made a ZX80 do this?" and the inevitable conclusion that you'll have seen - I mean, heard - everything this game offers within a minute. Overall, I think four masks is fair because otherwise, it will be treading on the toes of Spectrum games with five masks that are beating a path to the door marked "next year's host".

As for effort: I know that John finds Z80 assembler easy to write, which explains why he made this game within the space of a day and sent to me later that evening. That's dedication to the cause - but so is the piles of prep-work for a previous idea that never happened back in May, details of which are revealed by reading the development log. This game required finding some way of cramming it into 213 bytes (I've counted), recording the sound sample in the first place and making it suitably small for use in the game, then I have to account for the package of bonus stuff that came with it - and also that this is the first, and I will assume only entry for the original Blue Challenge. (More on that later.) This game is way beyond my ability to write, but by John's standards, I can imagine this being only a three-Rick game. Even so, it's worth three further Ricks for all the bonus bits - and one more, making a total of seven, for this...

For the first time, I've taken the Jewel of Ankhel out of its protective case and given it a polish. (That's also why I've ignored my unofficial 1,000-word limit.) Seeing (or, rather, hearing) the ZX80 do something I could never have thought possible is definitely in contention for going "far above and beyond the call of duty for a crap games competition". But to actually award the Jewel, I need to see something that blows my head clean off. By comparison with Beethoven as I highlighted before, the key to unlock both the pre-Spectrum computers' sound capabilities was there all along, it was just waiting for someone to work out what to do with it. And besides, if I do award the Jewel, it's effectively an instant win in the competition that renders every later entry irrelevant, and we can't be having that. Still, this is a near-certainty to be the game that came closest, and I'll have to consider that come the end of the competition.

When I came up with the idea of the original Blue Challenge - "make a 1K ZX80 do something, anything, with machine code", I expected little more than the standard magazine type-ins of 1982 - still very limited, text-based games with minimal gameplay. I changed the parameters for the challenge because, after my own ordeal with ZX80 machine code, I no longer believed it was practically possible to do what I'd originally asked.

Have I just been proven wrong or what?