Star Tip 4 Block Store Screen Editor by Shaun Hollingworth & Peter Harrap from Your Sinclair #21/22 (Sep/Oct.1987) [files STARTIP4.*] Gremlin Graphics is really making a name for itself as an arcade specialist with titles like Thing Bounces Back, Future Knight and the Monty series topping the charts. It's clear that the firm knows what the people want and is geared to letting them have it (thwoom!) Dead good, complex, fast arcade adventures with a sprinkling of senseless violence is the name of the game, and this success is due in no small way to Gremlin programmers Shaun Hollingworth and Peter Harrap, as it's mainly their programming skills that have created these megagames. We were fascinated to discover that for each game they write, they write a custom game editor/development system to construct and link all the screens within the game, allowing them to concentrate on the gameplay while bolting on screen after screen of fast arcade action. Now you too can benefit from this technique with a version of the Future Knight Block Store game Screen Editor, which the lads have kindly allowed us to print in this month's Program Pitstop. Shaun and Peter have been with Gremlin for about three years. Peter wrote all the Monty games, except Auf Wiedersehen, which he co-wrote with Shaun. Between them they've written Way Of The Tiger, Bounder, Future Knight, and Trailblazer. They're presently working on this autumn's smash from Gremlin, Death Wish III. Shaun tells me that he has a copy of the Editor that was used on the Monty games, and we'll be featuring it in a future edition of the Pitstop. We only bring you the best! Method Using the Editor you can edit Blocks, Characters and Screens and link them together in preparation for making your own arcade adventure. The full scope of the program is far too lengthy to mention in too much detail in these pages, so we'll give you the basic commands and enough technical colour to get you going, but from then on I'm afraid it's a voyage of discovery. Basic Program Here's a little Basic loader, which loads the Editor Code and fills the character set with some meaningful information. Save it as SAVE "An editor" LINE 20. Hex Dump 1 Here's the main program: load the Hex Loader program from the Mega-text program. The start address of this chunk is 63488 and the length is 1999. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = So you've been waiting with bated breath for the second half of your Future Knight-style Editor program, from the makers of the Monty games, huh? Okay, space is at a premium, so let's get cracking... continued In case you missed last issue, we began by giving you the Basic loader and Hex Dump 1 for the Editor program, with which you can edit Blocks, Characters and Screens, and link them to make the bare bones of an arcade adventure. Now follows the remaining bits of code you need to get the program working, and full instructions on how to use and enjoy your Editor. (Gerrof! Ed) There are three levels to the Editor, and at the top you have the Main Screen Designer. To save anything from this level you must break out into Basic. You can return to it by RANDOMIZE USR 63488. On the screen you should have a white rectangle with a crosshair cursor in it and a number under it. This is the current screen number you're editing, which when you first start is screen 91. The range of screens you can have is 0-120. The entry screen can be set by POKEing 23681 with the screen number. The smaller white square is the current block, which can be placed on the screen with the cursor. These can number between 0-255. To enter the next level of the Editor press 'C' and you'll enter the Block Editor. You should have a smaller white rectangle at the top of the screen marked 'chrno: 000', containing the Select Char cursor and two small squares at the bottom. The one on the left is the current block, containing the Destination Block cursor, and the one marked 'copych' on the right is the copy character. The 'copych' can be copied to the current block with CAPS+C, which is helpful when creating a number of similar blocks, you can just copy them over and alter them. You have no chars in memory at this point, so to get to the third and final level press 'E'. This puts you into the Char Editor, and you're presented with 'chrno' at the bottom of the screen and a grid and cursor. When you've finished editing, press 'X' to return to the Block Editor. The final short program which prints up the screens when you want them is called "screen-PRINT". In order to use it you need to decide where you're going to store your chars, screens, blocks, colour map and background chars. To allow the "screen-PRINT" program to display your screens you must put these addresses into the following registers: BC = address of chr map DE = address of screen data A = screen no. to print IX = address of block data HL = address of colour data DE' = address of background chars (NOTE: HL' register not used!) Then the program knows what to print and where to get all the data for it. All you have to do is call the print routine with RANDOMIZE USR (address you located screen-PRINT) and off it goes. Although you can't build a game without writing a lot of other stuff like sprites, collision and puzzles yourself, Editor certainly takes the headache out of building the world your sprites will inhabit! Have fun! Saving Data Block Shapes: The data for the block shapes is at address 49152 and is a maximum of 256*16 (4096) bytes long. Screen Layouts: The data for the screen layouts is at address 53248 and is a maximum of 120*32 (3840) bytes long. Colour: The colour data is at address 57088 and is 256 bytes long. Charset: The graphics character set is at address 61440 and is 2048 bytes long. Options MAIN SCREEN EDITOR F move to next screen B move to last screen Q crosshair left W crosshair right P crosshair up L crosshair down U move current block up one D move current block down one S set current block at cursor C enter Block Editor mode BREAK return to Basic BLOCK EDITOR Q Char Select cursor left W Char Select cursor right P Char Select cursor up L Char Select cursor down CAPS SHIFT advance bottom cursor S set char in current block at bottom cursor position U advance current block no. D retard current block no. CAPS+C copy the copych block to current CAPS+U advance copych block no. CAPS+D retard copych block no. F select ink colour B select paper colour A sets the colour of char at Char Select cursor X returns to Main Screen Editor E enters Char Editor CHAR EDITOR Q move cursor left W move cursor right P move cursor up L move cursor down ENTER to set pixel SPACE to reset pixel I to invert whole char X to return to Block Editor Hex Dump 2 Next we have some sample characters for you to try. Once again you have to type them into the Hex Loader from Mega-Text. The start address of this bit is 61440 and the length is 2048. Save it as SAVE "sum chars" CODE 61440,2048. Hex Dump 3 And finally, that naughty bit of code which prints up the screens when you want them. As we mentioned earlier, this chunk of code is relocatable to anywhere that's convenient for you. For the sake of argument we've set the start address to 30000 and the length to 172. Save as SAVE "screen-Print" CODE 30000,172.