The Blues Brothers Map Format
There are six levels in The Blues Brothers. Here's a table which shows which files are used in which level.
| Level number | French name | English translation | Level data | First 128 background tiles | Second 128 background tiles 2 | Foreground tiles | Tile attributes | Enemy sprites |
|---|---|---|---|---|---|---|---|---|
| 1 | Magasin | Store | MAG.SQL | MAG.CK1 | MAG.CK2 | AVTMAG.SQV | MAGASIN.BIN | ENEMI1.SQV |
| 2 | Entrepot | Warehouse | ENT.SQL | ENT.CK1 | ENT.CK2 | AVTENT.SQV | ENTREPOT.BIN | ENEMI2.SQV |
| 3 | Prison | Prison | PRISON.SQL | PRISON.CK1 | PRISON.CK2 | AVTPRIS.SQV | PRISON.BIN | ENEMI3.SQV |
| 4 | Egout | Sewer | EGOU.SQL | EGOU.CK1 | EGOU.CK2 | AVTEGOU.SQV | EGOU.BIN | ENEMI4.SQV |
| 5 | Ville | City | VILLE.SQL | VILLE.CK1 | VILLE.CK2 | AVTVILLE.SQV | VILLE.BIN | ENEMI5.SQV |
| 6 | Concert | Concert | CONCERT.SQL | CONCERT.CK1 | CONCERT.CK2 | none | CONCERT.BIN | ENEMI6.SQV |
Each level has a width of 128 tiles, the height of a level is equal to filesize / 128. Every byte in the level data corresponds to a background tile. When the value of a byte is smaller than 128 the tile is found in a .CK1 file, when the value is 128 or more the tile is found in a .CK2 file.
The positions of the players, enemies and gates are stored in the executables. For 1.EXE the offsets are:
| Level number | Player 1 x | Player 1 y | Player 2 x | Player 2 y | Enemies x | Enemies y | Enemy types | Gates x | Gates y |
|---|---|---|---|---|---|---|---|---|---|
| 1 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
| 2 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
| 3 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
| 4 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
| 5 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
| 6 | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown | unknown |
And for 2.EXE the offsets are:
| Level number | Player 1 x | Player 1 y | Player 2 x | Player 2 y | Enemies x | Enemies y | Enemy types | Gates x | Gates y |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 0x18469 | 0x1822B | 0x1846B | 0x1822D | 0x1841B | 0x181DD | unknown | unknown | unknown |
| 2 | 0x182CF | 0x18091 | 0x182D1 | 0x18093 | unknown | unknown | unknown | unknown | unknown |
| 3 | 0x18321 | 0x180E3 | 0x18323 | 0x180E5 | unknown | unknown | unknown | unknown | unknown |
| 4 | 0x18373 | 0x18135 | 0x18375 | 0x18137 | unknown | unknown | unknown | unknown | unknown |
| 5 | 0x183C5 | 0x18187 | 0x183C7 | 0x18189 | unknown | unknown | unknown | unknown | unknown |
| 6 | 0x18417 | 0x181D9 | 0x18419 | 0x181DB | 0x183C9 | 0x1818B | unknown | unknown | unknown |
The unit of the values of the UINT16LEs found at these offsets is pixels.
Credits
This file format was reverse engineered by Frenkel. 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!)