The editor allows you to modify each room in Knight Lore or Alien 8. You can edit or delete blocks or add/edit new blocks. You can also work on multiple maps for each game. What you cannot do as yet is:

  • modify room type (i.e. the room size or location of doors)
  • create new room numbers
  • modify the special items (special items are the those that finish the game, e.g. cauldron items in Knight Lore)
  • Draw your map in 3D! It is a table based editor and you will probably need to design your room in your head or on paper just like you used to :)

From the toolbar select the drop down menu Map Editor and choose the game. A dialog box appears showing you the existing maps for the game.

To create a new game type in a name in to the text box and select the Add New Map button. This will add a new entry to the custom map file and will initially contain a copy of the original game.

To edit an existing game, select the previously created game from the list box and select edit map.

To delete a custom map you need to edit the text file and delete the line containing the map. There is one line per map. The map files are stored in the maps directory and are called a8_map_user.txt and kl_map_user.txt

Once created/selected it will be loaded into the viewer and all viewer functionality is still available. What is different is below the main display the editor buttons and status information are shown:

  • Status Information: this shows the current map being edited and the size of the map. The size of the map cannot be larger than the original map (it can be smaller though). The editor allows you to make it bigger, but creating a game from it would overwrite game code and the game will not run or will crash randomly. Be warned :)
  • Refresh/Save: Save the current map.
  • Delete Row: Delete the currently highlighted row.
  • Insert row: Add a new block to the room.
  • Edit row: Edit the currently highlighted block.
  • Create game: Write a new game using the current map data. The file will be stored in the outputs directory and will be called ??_xxxx.sna where ?? is the prefix of the game (kl or a8) and xxxx is the name you have given the map.

Whenever a change is made the size in bytes taken up is removed from view because recalculating the size may take a second or two. Click save/refresh to update the display.

Note: there is no undo function so make your changes wisely and save often :)

Selecting add or edit brings up the block editor dialog box:

  • When inserting, select the block from the list - you cannot change an existing block type
  • Select the x/y/z location

For Knight Lore the z axis will either show 0-3 or 4-7. This is down to the structure of the map format not the editor. To place an item in the lower or upper half select the correct block, e.g. block will select a block for locations 0-3 and high block will select a block for locations 4-7. If you cannot find an item to place high/low then it has not been defined and therefore cannot be created.

For Alien 8 the map format changed and so every block can be at any location.

The picture in the screen gives an indication of the locations and how they relate to the screen.

 

Top Tip!

  • To speed up the process use the ALT+keys for the buttons, e.g. ALT-D to delete a row
  • To jump to a specific room in an emulator for testing or to visit each of the four start locations you need to poke the correct address with the room number. filmation example section has all the values and addresses you need (it is in the right hand pane below the screenshot).

 

When you first create a map the existing data game data is stored for the game, so if you immediately click 'save/refresh' the byte count different should stay 0 even though the data has been completely recalculated.

In Knight Lore the data should also exactly match after a save/refresh - and it does because I've checked it using a differencing tools :)

However, in Alien 8 the data changes slightly after a save (thought uses up the same number of bytes). This is because in the original game data for the rooms using the extra blocks (e.g. the remote control blocks, mines, etc) the original game always writes the remote controlled robot as the last normal block.

In the editor it is a bit more methodical in that it writes data in three phases:

1. All normal blocks with z value < 4

2. All normal blocks with a z value > 3

3. All block extension blocks (those after block 31)

 

This is also how the filmation games store the data, except in the case of the robot for some reason. Probably to put the robot next to the remote control blocks. ahh weren't they nice !

So try it and do a compare, you'll find that in room 68 the high block and the robot data is swapped :)