~~ ~~ ~~ ____________ ~~ ~~ / ______ \ ~~ / / __ \ \ ~~~~~~~ | | |__| | | ~~~~~~~ \ \______/ / ~~ \____________/ ~~ ~~ / \ ~~ ~~ / ILLUMINATI \ ~~ / II: THE \ / DAVOS DEADLOCK \ /==================\ / A tale of Future- \ / Alternative History \ / in the form of a \ / Libertarian puzzle game \ / for the 48K ZX Spectrum \ /==============================\ / by Jim Waterman for WOOT! 2022 \ /==================================\ / Written 24 August - 5 October 2022 \ #======================================# "By 2030, you'll own nothing - and you'll be happy about it." - Klaus Schwab "Are you willing to bet your life on that?" - all right-thinking people, everywhere, ever -------------------------------------------------------------------------------- DISCLAIMER: =========== There is an extensive backstory to this game, and you should take time to read it. Not only did it take a tremendous amount of effort to write, but it will also enhance your understanding of the background behind the game, and it might wake a few of you up to the severity of the situation facing the Western world. Hope springs eternal. A word of caution, though: it was written in October 2022, then altered and updated as necessary until it was finalised on 13 December 2022. So it is still possible, given the tumultuous state of American politics, that it could age like a carton of milk left in the middle of the Sonoran Desert in July. That aging process might even start before the year has even finished. Don't blame me if that happens, I'm not Nostradamus. -------------------------------------------------------------------------------- Introduction ============ It started as a ludicrously over-polished ZX81 game, conceived in the most ludicrous year of 2020, written in three days, and sent to the CSSCGC - as a test to see if I could get machine code to work on the ZX81. It morphed into a 16K Spectrum game and graced the electro-pages of WOOT! in 2021, and needed far more extensive use of machine code and 1K ZX81-style cramming techniques to fit it into the smaller Spectrum, which has less usable memory than the ZX81. Then, it returned to the CSSCGC in 2022 in QL form, which has better graphics and no memory troubles. And it went on holiday to Commie-land, in that it was converted for three Commodore machines - the VIC-20, PET 2001-8N and C64. Now, for Illuminati II, the graphics of the QL version have been adapted back to the Spectrum's colour-clash-addled screen, making the game look like it always should have done, sounds have been pilfered from various early Spectrum games from around 1983, as has the character set (it's from The Fall Of Rome; some characters have been altered)... ...and an extra layer of complexity has been added. This is a sequel, after all. More - much more - is revealed in the accompanying PDF of the backstory, complete with maps and flags. If you are lazy, just stick with this brief summary. If you are a human being, read that backstory first, then the rest of this section will be redundant. Anyway... The original ludicrous backstory of "the Illuminati are about to take over the world and you must stop them" has been given a suitable post-COVID-panic upgrade; in this game, it's the very REAL version of the Illuminati who are the primary antagonists, the ones whose Evil Eye At The Top Of The Pyramid needs to be nuked from orbit. The game is set in 2042, and the world of 20 years from now is a very different place. The United States has split into five fragments, and the Western Libertarian Federation is the successor state that is least in tune with the World Economic Forum's Great Reset, New World Order, and all sorts of other dystopian edicts. Their "Starbucks soycialist" neighbours who occupy the entire Pacific coast have just collapsed into Failed State status, the WEF has taken it over directly, and now the WLF have their ideological opposites blocking their way, and threatening their "peace through superior firepower" Libertarian lifestyle. The WLF have to infiltrate the WEF's annual meeting and destroy it from within; these days it's held in December and total victory will mean a very Merry Christmas for all (as opposed to a miserable Non-Denominational, Politically Correct Winter Holiday). Their path is barred by the Davos Deadlock - an upgraded version of the Illuminati's Pyramid, with a second layer of security. The WLF send the one man who can break through the Davos Deadlock - Ethan Nash, every bit as adept with an AR-15, a lathe or a coding notepad. If anyone can crack the code of the Davos Deadlock and then be relied upon to defend himself while in the WEF's Secret Lair and then sabotage anything mechanical or electronic to cripple their stranglehold on the more compliant and docile nations of the world, he can. And he must. -------------------------------------------------------------------------------- How to play =========== You play the role of Ethan Nash. Imagine your shock. Those familiar with the workings of the original Illuminati will find this game is no different; input three hexadecimal bytes between the "BC" and "AD" at the bottom of the pyramid, and these will propagate up the pyramid according to the original Illuminati's Top Secret Code. But this doesn't yet trigger the match against the byte in the Evil Eye. This time, the first run up the pyramid will generate a key - a single hex digit 0-F. If it's a zero, this causes an instant loss; if it's anything else, it will change the way the bytes propagate up the pyramid. There will be a second run with the same codes and the new key, and it is on this second run that the final byte at the top of the pyramid will be matched with the Evil Eye. As before, if the bytes match, there will be an Earth-Shattering Kaboom. If there is no match, you can try again - anything up to 40 times, rather than 16 of the original game, because this one is much harder. Not only is it impossible (or at least insanely difficult) to reverse engineer a target to a set of three bytes, because of the key change, also the entire range of 256 bytes can be chosen as a target instead of a subset of 64 of these in the original. And not all bytes are created equal; the nature of the original code means that evens are less likely than odds, and a high byte of 0-7 is less likely than 8-F. One particular byte is 125 times more likely to result than the 20 bytes with the least chance of appearing. You have been warned! The SPICE LEVEL on offer on the title screen affects the outcome at the end of the game. If you are in any doubt about your abilities to handle what appears on screen, pick the default Spice Level. I will not be held responsible for the fallout should you pick either of the other two options on offer and react badly! Once again, YOU HAVE BEEN WARNED! And if this is all too much, the game will initially ask if you'd prefer to stick with the original Illuminati instead, according to the original rules, with 16 attempts, no keys, one pass through the pyramid and the original victory and loss sequences, jazzed up with the machine code Videprinter. -------------------------------------------------------------------------------- Technical notes =============== There are 21,752 bytes in the code block on the tape. All of these except the custom character set are included in .ASM form in a separate folder so that they can be examined and picked apart with a fine-toothed comb for those who still want to see how my faltering efforts with Z80 assembler are progressing. Only 188 bytes are required to propagate the codes up the pyramid, which are provided in the machine code package as file IL2MC2. A further 34 bytes in block IL2MC1 will transfer the characters of the array A$ to the addresses where they can be manipulated - this was done in BASIC in the original program, but needed speeding up. The UDG area for graphics T-U, which are inaccessible on the 128K models, has been used to hold the various bytes and flags needed by the routine and the rest of the game. The remainder of IL2MC1 is the data for the screen positions in the pyramid, and the sound effects that were used in the original 16K Spectrum Illuminati and re-used here, pilfered from Martyn C. Lewis' Starfire, Michael J. Levers' Defender (the Sinclair Programs listing) and Kevin J. Bezant's various early games. There's also a valiant attempt to recreate the SAM Coupé's in-built ZOOM sound effect. IL2MC3 is Einar Saukas' ZX0 compressor, the "standard" version that is suitable for my purposes. It was a huge help in compressing the data used to print the main title, pyramid, and the map of the USA in the instructions, as well as the overlaid attributes that reveal the new boundaries and the text (which were all there with PAPER and INK colours set to the same value). It isn't just for screens; any block of data can be compressed this way. Load it in Fuse, save the block as a binary file with the appropriate start and end addresses, and ZX0 will compress it. The "standard" decompressor will copy data to the screen almost as fast as an LDIR instruction, so I didn't see the need for anything faster. IL2MC4 is the Videprinter. The routine will print text stored as bytes to the screen, at a specific position, character by character in the style of the BBC's Final Score Videprinter from the 1980s and 1990s, albeit much faster. The format is: one initial byte to indicate how many lines to be printed, followed by, for each line: one byte to indicate the length of the line, two bytes for the PRINT AT position, then the text. Anyone who wants to use this Videprinter in their own games, go ahead - just mention me in the accompanying waffle and bunk, because there will be some, won't there? IL2MC5 is a block of Tritone code from Beepola, used as-is, with the fanfare from Gargoyle's Quest in 48K-usable form, because it would have been ridiculous to make this game 128K-only for the sake of one PLAY statement. I have noticed the Tritone data would need manual modification for any border colour other than black, because the assembler variable BORDER_CLR (EQU 0) isn't used anywhere in the code. IL2MC6 prints the Earth-Shattering Kaboom on screen, if you should ever beat the game. I won't say *exactly* what it does, only that you should find a way to beat the game, legitimately or otherwise, if you want to see it. IL2MC7 is a final block of sundries that wouldn't fit in the space between the Illuminati Code and the UDGs. The routine that turns all the INK white and fades it to black is seen as soon as the game loads. One routine will magnify the NPC face graphics (I won't say why), three of them print and manipulate the inner border with the KEY and TRIES captions, and one prints the original Illuminati title - I know, I could have used ZX0 again, but this was added right at the end of development and that would have meant changing all the addresses in the Videprinter, Beepola and Kaboom blocks, or moving the character set... so I kept it old-school as the RST 16 equivalent of a load of PRINT statements. -------------------------------------------------------------------------------- In the absence of any better way to end this document: "Anyway... that's all I've got for today. Go away now." - The Critical Drinker --------------------------------------------------------------------------------