Join also our Discord channel! Click here.

Quarantine map format

Get your graphics formats figures out here! Got details for others? Post here!
Post Reply
tigrou
ultra-n00b
Posts: 3
Joined: Wed Feb 22, 2017 11:35 am
Has thanked: 1 time
Been thanked: 2 times

Quarantine map format

Post by tigrou » Sat Nov 07, 2020 4:08 pm

I recently took a look at Quarantine map format. Here is what I found so far :
Each level has usually 3 files : MAP, BLK and BSP (eg: KCITY.MAP, KCITY.BLK and KCITY.BSP)

MAP : levels are made of big square blocks (eg: a crossroad, a T section, a building, ...).
That file is simply a 2D array containing blocks indexes .

Code: Select all

+00 map width (2 bytes)
+02 map height (2 bytes)
+04 block indexes (2 bytes * map width * map height)
The block index seems to be made of two parts : first byte is a value between 0-127 that reference an entry in BLK file block table header.
Second byte value is either a flag or some sort of sub-index inside a given block entry. It's often 0.

If I dump all blocks indexes to a color for the first level, here is what I got :
Image

Here is a quick hack where I replaced all blocks by 0x3502 ("Weapon King" block) :
Image

BLK : it probably means block.

Code: Select all

+00 seems to be always 01 00 80 00
+04 block table header with 128 entries, each entry is 8 bytes. it probably contains an offset to the block data.
+404 block data, format is unknown
Block data seems to be compressed. It's read once during load, and the way it is loaded in memory is slightly different than content of the BLK file itself.

BSP : that file is created when level is loaded. If you delete it, the game will recreate it automatically.
What is weird is that this file seems to be never read by the game, even during gameplay. It's just written once during load.
I don't know what BSP stand for. It might be "binary space partition" or "block sprite".

Post Reply