Each room is fully described as a series of bytes. To see them open the disassembly and locate the data at the location shown on the right (simply do a search for the value).

 

Knight Lore: 6251

Alien 8: 6469

Pentagram: 5E10

In the disassembly each room has been nicely partitioned by a line break.

The first three bytes are on a separate line for a good reason. These are the room descriptor bytes.

  • Byte 1: The room number
  • Byte 2: Offset to the next rooms Byte 1
  • Byte 3: Room colour and Room Size

In Alien 8 and Knight Lore the room number also determines its map location and from this the location of adjacent rooms (as the map is a 16x16 grid of rooms.)

Byte 3 describes the room colour and size.

As you can see (on the right) room 0 of Knight Lore is described in 25 bytes (019h) and has a colour/size of 3.

 

 

Knight Lore: 000h,019h,003h

Alien 8: 002h,020h,030h

Pentagram: 000h,01Eh,007h

 

The room (location) data is found on row 1 of the filmation viewer map file.

For Knight Lore and Pentagram the first 3 bits [of byte 3] is the room colour and the remaining 5 is the room size (only the first 2 bits are used); in Alien 8 the first 6 bits is the room colour and the remaining 2 is the room size. Alien 8 requires two different colours (one for the room when playing the game and the other for when the cryonauts in the room are freed). Either way 3 bits are for colour and 2 bits for the room size. The room size is described below.

Using the example data above, byte 3 for Pentagram (room 0) is 7h giving a bitmask of 00000111 and translates to spectrum ink colour 7, room size 0; byte 3 for Knight Lore is 3h giving a bitmask of 00000011 and translates to spectrum ink colour 3 and room size 0; byte 3 for Alien 8 is 20h giving a bitmask of 00010100 and translates to a standard colour of 4, a cryonaut freed colour of 2 and a room size of 0.

Knight Lore/Pentagram

Room Size Colour
8 7 6 5 4 3 2 1


Alien 8

Room Size Colour Cryo Colour Std
8 7 6 5 4 3 2 1

As mentioned in the introduction there are three room types describing every room, room type 0 is a 8x8 grid of cells, type 1 is a 8x4 grid of cells and type 2 is a 4x8 grid of cells. The height is always 8 cells. Cells sizes are 16,16,10 pixels (x,y,z).

If you split the isometric floor into a series of equal sized squares then this is what is meant by a grid of cells.

Fixed or limited moving objects are said to be grid based objects and are of width 1 cell and height 1 cell (any height) and are aligned exactly with one cell - this is to make calculations for collision and drawing simpler.

Free roaming objects (such as the player) have their own width, height and depth and are not required to be aligned to a cell.

Go Here to view the room sizes. They are for Knight Lore but are the same as in all games.

 

In IsoCis grid cells are rooted on the x/y grid cell but can move up/down the Z axis.

 

The room size types are found on row 4 of the filmation viewer map file.

 

Alien 8 actually states 40h not 80h for the z, but it should be 80. There is something going on here I don't understand.

The remainder of the bytes describe the contents of the room. All bytes from byte 4 onwards are the background objects, when block 0xFFh is reached room objects are being described (the 0xFFh byte is ignored).

Background and game objects are described in the following sections.

 

In Alien 8 you can see that t