Jazz Jackrabbit Tile Format

From ModdingWiki
Jump to navigation Jump to search
Jazz Jackrabbit Tile Format
Jazz Jackrabbit Tile Format.png
Format typeTileset
HardwareVGA
Max tile count240
PaletteInternal
Tile names?No
Minimum tile size (pixels)32x32
Maximum tile size (pixels)32x32
Plane count1
Plane arrangementLinear
Transparent pixels?Yes
Hitmap pixels?No
Metadata?None
Supports sub-tilesets?No
Compressed tiles?Yes
Hidden data?No
Games

Jazz Jackrabbit has two sort of tiles:

  • Tiles for regular levels are stored in BLOCKS.xxx files. This file is used in all levels with filename LEVELy.xxx where xxx is the same.
  • Tiles for bonus levels are stored in BONUSy.000 files. The bonus levels contain a string that determines what tile file to use.

Regular tiles

The file starts with an RLE-compressed palette, which is used for all the tiles. This is followed by two other RLE palettes used for the sky (Each block of sky is 256 pixels high and stretched across the level. There are two alternating sky blocks stacked in the level.) For a total of 768 possible colors for each level.

Tile data consists of 4 tile sets containing 60 32x32 tile blocks each (No more than 240 tiles total.). Each tile set block starts with 'ok'.

If a block has data in it it start with 'ok' it will be RLE compressed using Jazz Jackrabbit RLE compression, if it is empty, it will consist simply of the byte $20. (These can be seen at the end of the default files.)

Some tiles do contain transparency with the pixel value 0x7F (127).

Bonus tiles

The file consists of three blocks, all RLE compressed. The first is the sky used in the bonus level, the second is the palette used for the graphics and the third is tile data.

The tile block is identical to that found in regular tiles, but without the 'ok' text. There are only 60 tiles in a bonus tileset.

Credits

The format for regular tiles was deciphered from the source of OpenJazz. The format for bonus tiles was deciphered by Zander Zoftware. Some corrections were made by Levellass. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)