+=============================================+ | PEPE'S DAY OUT - for WOOT! Tape Magazine | | A very triggering game for 48K Spectrum | | dredged from the pages of Sinclair Programs | | & modded by Jim Waterman, 5-8 December 2023 | +=============================================+ Waffle ====== This is a very cheap and nasty game knocked up in four days for WOOT! 2023. While it's obviously CSSCGC quality, I can't really enter it for the CSSCGC because it's a mod of an existing game, i.e. Frogger (obviously!) by Andrew Pennell from the Jan/Feb 1983 issue of Sinclair Programs. It's one I've previously enhanced when I was barely ten years old, but this is a rather more extensive rehash and is at least some kind of variant on the Frogger theme that I'm surprised nobody ever came up with before (to my knowledge, anyway). Actually, the inspiration for the CSSCGC in the first place, i.e. Cassette 50, contained a Frogger game that was previously published as a type-in (bizarrely called Spectrum Cross) and dumped wholesale, without modifications, onto the tape. So maybe it wouldn't quite have been such a stretch to put this in the CSSCGC after all? Oh well, hard luck, Bizzel. I'm sure you'll get over it, especially as your time as the host will be over by the time this is released! Also, I wonder who spent more time on this game: Andrew Pennell, making the original on a rubber-key Spectrum with no extra tools like BASin or snapshot-saving emulators, or me, fannying about with his 7K of BASIC to expand it to almost twice its size (just over 13K when the BASIC and machine code are combined)? Calling Dr. Emmett Brown, I need your time machine... Also also, I absolve myself of all responsibility for any reactions to this game. "Life's tough. Get a helmet." - Candace Owens Development log =============== 4 December 2023: v0.1: Took my mod of Andrew Pennell's Frogger (see here: https://www.rickdangerous.co.uk/zx/typeinsplus.html) - started by rearranging the DATA for the obstacles so that it could all be saved as a CODE block with the UDGs, eventual custom character set (I'll need it!) and some rudimentary machine code. v0.2: Removed the routine to populate the array A$, and the routine which uses A$ to in turn populate P$ (960 bytes) - took the contents of P$, turned them into DATA and this is now LDIRed in place - P$ is defined before anything else so the content always starts at (VARS)+8. v0.3: Added Damien Guard's "Manic" character set. A few of the characters will be sacrificed for extra UDGs. v0.4: Many cosmetic enhancements. Extensively rehashed the DATA for the P$ array, so that it is easy to change the colours (all of which are defined by control characters, CHR$ 17 for PAPER and CHR$ 16 for INK in the character array). Moved the (new) Pepe face (from Illuminati II) into the character set and redefined UDGs HIKL for the truck bodies. Needed to add a couple of extra variables and tweak the ATTR check to make sure the collision detection and the frog being carried on the logs and turtles was still working. It is still recognisably Frogger at this stage, until the frog turns the other way round. 5 December 2023: v0.5: Officially upgraded to Pepe's Day Out - the frog starts at one specific lily pad and the goal is at the bottom of the screen (Y=19). Discovered that there was supposed to be a 5 point increase for every step taken, which my circa-1989 mod had omitted (by checking the wrong key!). This is fixed now. v0.6: Added the routines and arrays to make all four frogs, starting in a random order and with randomised positions (though the names are always attached to the same colours). This was quite a bit of work to get it running properly. Also there is now only one life - it's much easier going this way, so splat one of the frogs and it's an instant game over! v0.7: Added a second set of UDGs for the title screen, an LDIR to switch between the two, and Hewson's scroll-the-screen-up-by-one-line routine from the soon-to-be-re-released "40 Best Machine Code Routines" - though I've looped it four times to get the title text in the right place. Added the title screen and some very brief instructions (well, it's still Frogger, isn't it? You know what to do...) 6 December 2023: v0.8: PRINT VAL$ Q$ now gave a 4 Out of memory error (with 13K of free space, apparently!) Hence, transferred to an SZX snapshot with a microdrive attached to load the code in externally. Deleted the code-definition lines (14K of them!), added in extra code for the "Feels Good/Bad Man!" screens, and added those. Improved the title page, made some more cosmetic changes to the game. 7 December 2023: v0.9: Sheet music for "Shadilay" found at: https://musescore.com/jezi_fay/scores/4222466 The flute is the same pitch as the original P.E.P.E. version, only shifted up two octaves. This was an excellent chance to use my quick and dirty MC BEEP sequencer again. "Shadilay" has been split into two parts so that only the first six notes play when a frog crosses successfully; it is extended if all four frogs cross. v0.10: Converted the controls to a machine code "universal control system" that I'd previously developed but never used - it was supposed to provide QAOPM/Space, both Sinclair ports, Kempston and Fuller so that all of them could be used at any one time, and would check to see if the Kempston and Fuller interfaces were connected or not (it checks a bit that is always different if they're not connected). However, it didn't work! Something was interfering and the frogs were moving up and down on their own occasionally, without any input. Will need to rewrite a singular routine and POKE in the required IN values manually from a control menu. I wanted to avoid that. (But can have a cursor option, I suppose...) 8 December 2023: v0.11: Wrote a new machine code routine that required adding a control menu but gives the option of cursor keys (masochists). This ensures there's no crosstalk from disconnected joystick interfaces. v0.12: Added an extra intro screen, tidied up the rest of the listing. v0.13: Prepared the listing to make the tape with. v0.14: Made the last few corrections. Or so I thought... v0.15: ...because, considering everything else is correct now, the game is SO SLOW! But the original wasn't, was it? v0.14 took 2m39s to run the timer down; when the original is edited to 111 time units (which v0.14 is; the original was 120), it takes 2m17s. But eliminating the five VAL$ calls (which take a HUGE amount of memory to sort out...) and using the correction for 16K models from a later Errors And Mishaps, with a bit of further optimisation, this speeds up the game so it takes "only" 2m06s to run down the timer. The sacrifice of the little-used VAL$ is one worth making. v1.0: Finally, made the tape - complete with loader and ATTR-only screen (with some machine code cunningly hidden in a REM in the loader to make a hatched pattern). Made a microdrive version as well, for a laugh.