Game A game consists of a header of 14 values each apparently 16 bit 0 Unknown 1 Number of items 2 Number of actions 3 Number of Nouns and Verbs (one list is padded) 4 Number of rooms 5 Maximum a player can carry 6 Starting Room 7 Total Treasures (*) 8 Word Length (only seen 3,4 or 5) 9 Time light source lasts. This counts down every time item 9 is in game. Brian Howarths games allow -1 for never run down. When it runs out the light item (9) is dumped in room 0 and a look done. Messages vary between interpreters and include things like 'Your light is flickering and dying' as well as 'Light runs out in %d turns'. 10 Number of Messages 11 Room you must put treasure in to score points. Not all games use the treasure system for scoring 12 Unknown All the number of something values are the last item to be read counting from 0. Thus 3 messages, means messages 0, 1, 2 and 3. (*) This can be calculated in game. What happens if the number is wrong I don't know. I've found no games that it occurs in. A game has 16 (maybe more) binary flags, and 8 (maybe more counters). A few later games seem to have 2 (maybe more) values to store location numbers in temporarily - eg Yoho spell in Claymorgue. Following the header is a list of game actions. Each is of the form 150*verb+noun 5 repeats of condition+20*value 150*action1+action2 150*action3+action4 Conditions 0 Parameter 1 Item carried 2 Item in room with player 3 Item carried or in room with player 4 In room 5 Item not in room with player 6 Item not carried 7 Not in room 8 BitFlag is set. 9 BitFlag is cleared 10 Something carried (arg unused) 11 Nothing carried (arg unused) 12 Item not carried nor in room with player 13 Item is in game [not in room 0] 14 Item is not in game [in room 0] 15 CurrentCounter <= 16 CurrentCounter >= 17 Object still in initial room 18 Object not in initial room 19 CurrentCounter = Actions 0 Does nothing 1-51 Print message 0-50. Some drivers add a space some add a newline. 52 Get item . Checks if you can carry it first 53 Drops item 54 Moves to room 55 Item is removed from the game (put in room 0) 56 The darkness flag is set 57 The darkness flag is cleared 58 Bitflag is set 59 The same as 55 (it seems - I'm cautious about this) 60 BitFlag is cleared 61 Death. Dark flag cleared, player moved to last room 62 Item put in room 63 Game over. 64 Describe room 65 Score 66 Inventory 67 BitFlag 0 is set 68 BitFlag 0 is cleared 69 Refill lamp (?) 70 Screen is cleared. This varies by driver from no effect upwards 71 Saves the game. Choices of filename etc depend on the driver alone. 72 Swap item and item locations 73 Continue with next line (the next line starts verb 0 noun 0) 74 Take item - no check is done too see if it can be carried. 75 Put item with item - Not certain seems to do this from examination of Claymorgue 76 Look (same as 64 ?? - check) 77 Decrement current counter. Will not go below 0 78 Print current counter value. Some drivers only cope with 0-99 apparently 79 Set current counter value 80 Swap location with current location-swap flag 81 Select a counter. Current counter is swapped with backup counter 82 Add to current counter 83 Subtract from current counter 84 Echo noun player typed without CR 85 Echo the noun the player typed 86 CR 87 Swap current location value with backup location-swap value 88 Wait 2 seconds 89 SAGA - draw picture (actually , as each Look() draws picture automatically) Older spectrum driver - crashes Spectrum Seas of Blood - seems to start Fighting Fantasy combat mode 90-101 Unused 102+ Print message 51-99 This is followed by the words with verbs and nouns interleaved. A word with a * at the beginning is a synonym for the word above. Verb 1 is GO, verb 10 is GET, verb 18 is DROP (always). Nouns 1-6 are directions. This is followed by the rooms. Each room is 6 exits (north south east west up down) followed by a text string. Then come the messages, stored as a list of strings. Next come the items in the format item text then location. Item text may end with /TEXT/. This text is not printed but means that an automatic get/drop will be done for 'GET/DROP TEXT' on this item. Item names beginning with '*' are treasures. The '*' is printed. If you put all treasures in the treasure room (in the header) and 'SCORE' the game finishes with a well done message. Item location -1 is the inventory (255 on C64 and Spectrum tape games) and 0 means not in play in every game I've looked at. The lamp (always object 9) behaviour supports this belief. A set of strings follow this. In order they match to each line of verb/noun actions, and are comments. The Spectrum and C64 tape system where the database is compiled into the program has no comments. Finally three values follow which are version, adventure number and an unknown magic number.