Katakombs of Kakrafoon - development log ======================================== 23 November 2023: alpha1: Drew title of the game. Just a test at this stage; it is still a massive tangle of procedures. alpha2: Turned it into a rudimentary title screen, with a custom palette (#0 = Spectrum colours, #1 = EGA colours in Spectrum order) and a colour test on screen. Press 0 to flip between the two. Nothing else in the program yet. 9 December 2023: alpha3: Defined some coloured gemstone tiles (using only normal & bright shades of the same colour), and enhanced the title screen. Annoyingly the rapidly cycling gemstones causes CSpect to crash - can't see if it's a CSpect or a NextBASIC problem! 14 December 2023: The Next arrived! 28 December 2023: alpha4: Learned about sending parts of a listing to another BANK, and prepared all the procedures that generate the title for suitability to be dumped out of the main listing this way. Rehashed the gem graphics on the title screen so that they cycle through colours (and there's no crash). 13 January 2024: Back in the saddle. Transferred the tile-generation procedure to its own program (which includes a test routine to see they're all working properly). Added new tiles for the mines (from Bomber Bob in Pentagon Capers), a Pan-Galactic Gargle Blaster (from Auf Wiedersehen Monty; checking footage from the TV series to see what colour it is), and some rocks (combined from Fantasy World Dizzy and Godkiller). 14 January 2024: Added the Zaphod sprites (based on an enemy in Strontium Dog; note that because of his asymmetric arm arrangement, it has to be two sprites rather than using the in-built transformations in the SPRITE command). Made a full test routine to show all the tiles and sprites, build the game board and distribute the mines and gems (this can be transferred to a procedure and dropped into the main listing when needed). Added the EGA bomb tiles. (Space for two more if needed.) This means the unused tile map from 16-31 can be used for the status bar (probably). 15 January 2024: Retrieved the BOOM sprite from Advanced Lawnmower Simulator 2302 and adapted it for this game's colour palette. alpha5: Main game now loads the tiles, sprites and tile bank from external files. Colour & sprite tests removed, procedures moved around (redundant ones deleted), rudimentary control menu displayed. 16 January 2024: alpha6: Added the control menu, an array corresponding to the IN values for each option (I'm a professional, me... also it allows easy use of the Kempston protocol). Added a sort-of-throwaway movement routine to test each option is working (and will still work even if you're a twonk and have selected the Issue 2 keyboard). alpha7: Built the actual control routines, though they're still only accessed via the above test procedure. Optimised some of the code (mainly putting as many %s in the procedures as possible). alpha8: Added the difficulty menu, revised the title screen, added the custom 6-pixel character set from ALS 2302 (which might or might not be the final choice). 17 January 2024: Rewrote the equation to calculate the value of collected treasure so that it works by passing a minimum and maximum value to the function, and so that it is less overtly weighted towards the centre. This took an entire evening to get right. 18 January 2024: alpha9: Added the distribution of mines and gems. There are up to 10 gems in each cavern, weighted towards the lowest value. There's a check to ensure that nothing overwrites anything else, and it will not be necessary to pick up every gem in each cave (as some will inevitably be blocked as the number of mines piles up). alpha10: Added the routine to hide the mines. While this could have still been part of alpha9, doing it this way retains the test routines in alpha9. Also there are parts being kept blank with REMs to add in the extra features of this version later. Also made a new set of tiles for the double-height "So far, so hoopy!" message - which in turn commits to using the same character set from ALS 2302. It was either use tiles or make some very tricky machine code that probably involves bank switching. 19 January 2024: alpha11: Added the game control loop that moves Zaphod and checks the temperature in the cave (though there are no consequences for the temperature maxing out yet). alpha12: An actual working version of the game (finally!). The mines explode (it's just a PRINT and STOP) at this point, the gems can be picked up, the cave can only be exited by holding at least one gem, and the value of the gems is assigned and added up. 20 January 2024: alpha13: Fixed the gem distribution (it was biased *towards* the higher values...), added the Altairian dollar sign and a black blob to the character set, changed the "So far, so hoopy!" message to sprites, with a full alphabet (because there will be other messages). alpha14: Added the machine code sound effects from Illuminati II (themselves cribbed from old games and type-ins from back in the day). Increased the rate of temperature increase by 4 (so each cavern should be over in 30 seconds or so). alpha15: Added the exploding mine routine, the ending with dead Zaphod (you don't get to bank your score!), the "press Q to quit" and a final ending with a weird error report. alpha16: Added the routine to fry Zaphod alive if the temperature hits the top of the scale, the matching ending, and the use of the Pan-Galactic Gargle Blaster. 21 January 2024: alpha17: Added the EGA bomb routine, and the maximum number of uses, and improved the tiles for it. It flashes a different number of times according to the difficulty settings. Also altered the amount the temperature is reduced at the end of a round or taking a drink, according to the difficulty settings, and allowed re-selection of controls and difficulty at the end of a game. alpha18: Added the majority of the victory sequence, and records of four high scores (permanently saved in an otherwise-unused 12 bytes of the tile/sprite bank). Sorted out some dodgy collision detection in the main game. 22 January 2024: alpha19: Added the Hitchhiker's theme tune at the start, and the "end credits" version over the victory sequence. Also gave a slight rehash to the title page. 26 January 2024: alpha20: After some major problems trying to decipher how transparency works on LAYER 1,2 this is a stop-gap in which the desired 1,2-over-2 effect is achieved with a temporary instructions screen. alpha21: Actually added the instructions (three pages, as it was with MOM on the SAM Coupé), along with a routine to scroll the old-school tractor feed paper screen effect (which is just stripes on LAYER 2 underneath a transparent LAYER 1,2 with the text on it). And that's it! A few bugs swatted later, we're done. Finally! Or are we...? 27 January 2024: Made the secondary version for CSpect 2.19.4.4 with NextBASIC 2.06H. This involved changing the timings of delay loops to match the real version more closely (though it's still far from perfect), moving the machine code to the UDG area (also moving UDG O to UDG Q because there was ONE BYTE that clashed...!), and removing the dancing tiles in the victory sequence that somehow caused CSpect to crash. This version is at least reviewable by a CSSCGC host with no real Next. It's hard work, this Next programming lark. There's so much more to do - and this is just for CSSCGC entries!