###################################################################### # __ ___ __ __ ___ # # | | / / / \ | | / / KATAKOMBS OF KAKRAFOON # # | | / / / \ | | / / =========================== # # | |/ / / /\ \ | |/ / A ZX Spectrum Next game for # # | / / / \ \ | / CSSCGC 2024 by Jim Waterman # # | \ \ \ / / | \ (which is definitely still # # | |\ \ \ \/ / | |\ \ crap, despite the hardware) # # | | \ \ \ / | | \ \ =========================== # # |__| \__\ \__/ |__| \__\ Written Nov 2023 - Jan 2024 # # # ###################################################################### A reminder... ============= It all started with "Mines of Magrathea", a vaguely Hitchhiker's-related game submitted to the CSSCGC in 2021 by Paul E. Collins, when I was the competition host. It was supposed to have been a SAM Coupé game, only that Paul - an owner of an MGT +D connected to his Spectrum in the 1990s - never checked the way +D emulation works with his SAM Coupé editor of choice, SimCoupe, and accidentally lost the listing by not saving the disc image when quitting the emulator. (I've found this the hard way myself, so he is not alone). After typing in his submission for the Spectrum into a different SAM Coupé emulator that includes memory snapshots (i.e. ASCD) in a few minutes, I badgered Paul to make the SAM Coupé version himself. "Ahh I can't be bothered. If it is so easy, you can do it. I hereby disclaim all rights in my EXCELLENT mine game and give it to the public domain." - Paul E. Collins, 6 October 2021 Paul further told me his original idea was little more than a Spectrum game with the SAM Coupé's built-in sound effects. So I needed no more encouragement to do the job myself, and my heavily-extended "Mines of Magrathea" for the SAM Coupé was sent to Andy Jenkinson's 2022 CSSCGC, with every possible enhancement I could think of to show off what might have been a much more popular machine if only it had been released round about 1985 or so, rather than when it was too late. Even so, one of my initial ideas didn't make the cut. I had intended that Zaphod Beeblebrox was to be the central character of the game, raiding the Mines of Magrathea for his own personal gain. This had to be sidestepped because there is just no way that a two-headed, three-armed character can be even remotely accurately represented by a one-bit 8×8 UDG. But 16×16 sprites and tiles, potentially with every pixel a different colour, now *that* would make a difference, wouldn't it? And it just so happened that there was a Kickstarter-funded member of the Sinclair family that would do the job. That many colours is excessive, though - and in the time I've spent learning NextBASIC's vast additions to the Spectrum's 42-year-old operating system (what a coincidence, there!) throughout 2023, there has been a number of detractors moaning about how the Next's range of 512 colours is *literally nothing like* the way a Spectrum *ought to be*, apparently - "why oh why", as they say on the BBC's Points Of View or a letter to the Daily Mail, couldn't the Next have stuck with the Spectrum's 15-colour palette, just with no colour clash, rather than have its games look like they were made for an Amiga? (For the record, the Amiga, and Atari ST, could only display 16 colours of their palette on screen at any one time, whereas the Next can handle 256 at a time.) So this is the first of my Next games that is restricted to the Spectrum's original colours... for the most part, anyway. Press 0 on either of the title screens to switch to the 16-colour EGA palette, or as close as the Next can manage, with a dark sort-of-brown yellow, "BRIGHT 1" pastel shades and an extra shade of grey. Technically, this is the full CGA palette, but CGA could only display all 16 colours at half-resolution (like LAYER 1,0), whereas EGA had a 64-colour palette and could select 16 of these, so I refer to it as the EGA palette rather than CGA. And, of course, one day I might use all 64 EGA colours, and call that VGA instead. This all shows that the Next *can* look like a Spectrum without its colour-clash restrictions, *or* it could look like an early 1990s PC, or, if I really wanted, I could make it resemble (cough! choke!)... a Commodore 64! The story of the game, and instructions of sorts ================================================ NOTE: an abridged version of all this waffle and bunk is included as the in-game instructions - a routine that carefully manipulates a transparent LAYER 1,2 on top of LAYER 2 to simulate the old-school tractor-feed printer paper effect that was considerably easier to do with the SAM Coupé's 64-column MODE 3, as that still allowed four colours rather than two. See, who said CSSCGC programming isn't a useful exercise in getting the Next to do all sorts of Really Wild Things™? Anyway... Encouraged by the success of Ford Prefect paying off his gambling debts by raiding the Mines of Magrathea, Zaphod Beeblebrox wants a piece of the action. However, the Magratheans are now wise to the threat of wandering degenerates swiping their riches while they sleep, and have beefed up their defences to the point where landing on Magrathea is somewhere close to impossible, even for those equipped with an Infinite Improbability Drive to turn missiles into a strangely-sentient bowl of petunias and a sperm whale. Zaphod's attention turned to the desolate desert planet of Kakrafoon, which has yet to be accidentally terraformed by a well-timed Disaster Area gig. The telepathic Belcerebon people who live there, forced to constantly natter about anything and everything that crossed their minds lest they read their neighbours' less-than-complimentary thoughts about each other (they should have seen what the humans did with social media in the 2010s and 2020s...), have let it slip over the Sub-Etha Network that their planet is heaving with precious gems. Zaphod being the totally awesome guy he is, has decided it would be a really hoopy idea to help them dig through the sand and retrieve a handful of those gems, particularly the really shiny ones. In this game, as is as much of a surprise as the last one (i.e. not at all, especially if you've read all this waffle from the top), you control Zaphod Beeblebrox in his quest to separate the Belcerebons from the sparkly stones hiding in great plenty beneath the surface of their arid homeworld. Zaphod is motivated purely by greed, and as such he can (and most likely will) raid as many caverns as he wants, returning only to the Heart Of Gold when he thinks he has enough to satisfy his apparently limitless ego. Hence, there is no defined end to the game - it is your job to rein him in and leave Kakrafoon before it costs him his life. Knowing their error in telepathically broadcasting their wealth to the ears of the Universe, the Belcerebons have planted Magrathean disappearing mines in their caverns, the number of which varies according to the difficulty level. But there is a further hazard - Kakrafoon is HOT, and Zaphod must make sure he gets in and out of each cavern before he is roasted alive. Once out, he can refresh himself with a well-deserved Pan-Galactic Gargle Blaster. Zaphod will refuse to leave any cavern without at least one gem in his hands, but does not have to collect them all. On successful excavation of any cavern, the gems that Zaphod has collected will be valued by a rogue Vogon jeweller (rogue, in that he *isn't* unnecessarily cruel and bureaucratic, has no desire to write terrible poetry, and has somehow escaped diabolical punishment for this on Vogsphere). It is up to you to decide which gems to go for, as some are considerably more valuable than others, and there is a range of values for each type of gem. You must then decide whether or not to venture onwards to another cavern, and will only receive a final score if Zaphod survives to fly away from Kakrafoon with all his ill-gotten gains. Incredibly for those who know his idiosyncrasies, Zaphod has learned from his time with Trillian to be more prepared for un-hoopy situations than he once was. He has packed four portable Pan-Galactic Gargle Blasters in a Sirius Cybernetics talking Thermos flask (which is as annoying as Eddie and Talkie Toaster combined...) which can be used in an emergency if he can't get out of a cavern in time. How much his temperature drops, both using one of these, and at the end of a cavern, varies with the difficulty level. He also found two Extra-Groovy-Awesome Devices in the Heart Of Gold's supply room. He doesn't know what they do, only that they might be helpful in some way. Though, if you've been paying proper attention to all this waffle and bunk, you will already have worked it out for yourself. Best of luck - you'll need it (if only to not get into an unsalvageable situation, but then, I told you to keep Zaphod's greed on a tight leash). Controlling Zaphod (I mean, the very idea!) =========================================== The title screen will present the player with a choice of six control options: two keyboard layouts (QAOP and ZXKM), Sinclair port 1 or 2, the cursor keys (which are in a sensible layout on a Next), or the regular Kempston interface (which is, effectively, what both joystick ports are set to by default - they respond to a multi-button Mega Drive joypad setting, which is the same pin pattern as the Kempston interface for directional controls). The two "action" keys are NOT mapped to a joystick fire button; they have been deliberately chosen so they are never pressed accidentally. Press F to launch the Extra-Groovy-Awesome Device, and press H to drink an emergency Pan-Galactic Gargle Blaster. Once you're done pillaging... ============================= Each of the four difficulty levels has its own high score, which will all be saved with the tile bank, so they will never be lost! If you ever want to reset them: PROC reset(): SAVE "tilespr.bin" BANK 42 This has not been implemented anywhere within the game so it won't be done accidentally. Other things that have been pilfered for this game, some of which are almost, but not quite, entirely unlike their source material... =================================================================== * Hitchhiker's Guide To The Galaxy theme tune (including the version at the end of the radio and TV episodes): written by Bernie Leadon of The Eagles (1975), rearranged by Tim Souster (1980) and then re-rearranged by me (2024) to fit into a PLAY statement * Gemstone tiles: the Jewel of Ankhel sprite from the 16-bit versions of Rick Dangerous (Core Design, 1989) * Mine tiles: from Bomber Bob in Pentagon Capers (Timothy Closs / Bug-Byte, 1985) * Pan-Galactic Gargle Blaster tile: the "bonus poinjts cocktail glass" from Auf Wiedersehen Monty (Gremlin Graphics, 1987) * Rock tile: a combination of two rocks from Fantasy World Dizzy (The Oliver Twins / Codemasters, 1989) and Godkiller (APSIS, 2014) * Zaphod sprite: originally based on a two-headed criminal sprite from Strontium Dog: The Killing (Paul Hargreaves / Quicksilva, 1984), but very, very heavily edited, not least because Zaphod has three arms... * Extra-Groovy-Awesome Device: originally the smart bomb sprite from Defenda (Interstella, 1984 - and yes, it was 1984, not 1986), which was changed and changed again until it bore no resemblance to the original, for which the Nutri-Matic drinks machine would be proud * Zaphod moving sounds: BEEPs, but resembling the "Nasty" setting from Batman (Jon Ritman & Bernie Drummond / Ocean, 1986) * Mine explosion: Kevin Bezant's "generic 1983 explosion" from Sheer Panic, Rapedes, Nifty Lifty, 1984: Ten Years After and Attack Of The Killer Tomatoes (all Visions Software Factory, 1983-84) * Rising MC tone: one of my own, but an attempt to simulate the ZOOM commmand built into the SAM Coupé's BASIC... * Falling MC tone: from Defender (Michael Levers, 1982) - a type-in from Sinclair Programs in July 1983 * "Crash" MC noise: from Starfire (Martyn C. Davies / Virgin Games, 1983) +-----------------------------------------------------------+ | ESSENTIAL FILES NEEDED TO RUN THE GAME: | +--------------+----------------+---------------------------+ | chars6.bin | CODE 64512,768 | 6-pixel character set | +--------------+----------------+---------------------------+ | kok.bas | LINE 30 | Main program | +--------------+----------------+---------------------------+ | mcode.bin | BANK 47,0,113 | Machine code | +--------------+----------------+---------------------------+ | tilemap.bin | BANK 41,0,400 | Tile map for game screen | +--------------+----------------+---------------------------+ | tilespr.bin | BANK 42 | Tiles & sprite sheet | +--------------+----------------+---------------------------+ | FILES NEEDED TO RUN THE GAME ON CSPECT 2.19.4.4: | +--------------+----------------+---------------------------+ | kok206h.bas | LINE 30 | Main program (for 2.06H) | +--------------+----------------+---------------------------+ | mc206h.bin | CODE 65368,113 | Machine code (for 2.06H) | +--------------+----------------+---------------------------+ | NON-ESSENTIAL FILES: | +--------------+----------------+---------------------------+ | kok.txt | | Listing of main program | +--------------+----------------+---------------------------+ | kok206h.txt | | Listing of 2.06H version | +--------------+----------------+---------------------------+