Supaplex Level format
From Just Solve the File Format Problem
(Difference between revisions)
Dan Tobias (Talk | contribs) |
Hamhock666 (Talk | contribs) m (added extension dat) |
||
Line 3: | Line 3: | ||
|subcat=Game data files | |subcat=Game data files | ||
|released=1991 | |released=1991 | ||
+ | |extensions={{ext|dat}} | ||
}} | }} | ||
Latest revision as of 06:36, 11 August 2016
The freeware DOS puzzle game Supaplex has a file called "levels.dat" which contains all the levels for the game.
Contents |
[edit] Format details
This is a very simple, uncompressed format where each level is stored sequentially and takes up 1536 bytes each.
The original levels.dat distributed with the game is 170496 bytes in size (111 levels).
[edit] Level
Offsets are relative to the beginning of each level.
Offset | Length | Contents | Details |
---|---|---|---|
0 | 1440 | Tile data | 60x24 in size, one byte per tile. |
1440 | 4 | Unknown | Unused |
1444 | 1 | Gravity | 0 = off, 1 = on. |
1445 | 1 | Unknown | Used by the SpeedFix-version as a version indicator. In the original version it's always 0x20. |
1446 | 23 | Title | Always 23 characters, no null-termination, normally padded with spaces. |
1469 | 1 | Freeze zonks | 0 = off, 2 = on. |
1470 | 1 | Infotrons needed | The minimum number of infotrons needed to be able to clear the level. 0 = all of them. |
1471 | 1 | Gravity port count | Maximum of 10 ports. |
1472 | 60 | Gravity ports | 10 ports, 6 bytes each. Count up to the value specified in "gravity port count" and ignore the rest. See "Gravity port" section for more information. |
1532 | 4 | Unknown | Used by the SpeedFix-version to store important demo information. Unused in the original version. |
[edit] Gravity ports
Offset | Length | Contents | Details |
---|---|---|---|
0 | 2 | Coordinates | Formula: 2 * (x + y * 60). Stored as a 16-bit big-endian unsigned integer. |
2 | 1 | Gravity | 0 = off, 1 = on. |
3 | 1 | Freeze zonks | 0 = off, 2 = on. |
4 | 1 | Freeze enemies | 0 = off, 1 = on. |
5 | 1 | Unknown | Unused |
[edit] Tiles
Hex | Name | Description |
---|---|---|
00 | Empty | |
01 | Base | |
02 | Zonk | Falls down. If standing on other zonks, infotrons or RAM chips it'll fall over to the side if possible. |
03 | Murphy | Defines the player start. |
04 | Infotron | |
05 | RAM chip - Chip | |
06 | Wall | |
07 | Exit | |
08 | Floppy - Orange | Falls and explodes if it hits something. |
09 | Port - Right | |
0A | Port - Down | |
0B | Port - Left | |
0C | Port - Up | |
0D | Gravity port - Right | |
0E | Gravity port - Down | |
0F | Gravity port - Left | |
10 | Gravity port - Up | |
11 | Snik snak | Enemy that follows the left edge in it's moving direction. |
12 | Floppy - Yellow | Explodes when player touches a terminal. |
13 | Terminal | Touching it causes yellow floppies to explode. |
14 | Floppy - Red | Can be picked up and placed. Explodes a short while after having been placed. |
15 | Port - Two-way vertical | |
16 | Port - Two-way horizontal | |
17 | Port - 4-way | |
18 | Electron | Enemy that follows the left edge in it's moving direction. Generates infotrons when killed. |
19 | Bug | Periodically sparks. Kills player if walking over when sparking. |
1A | RAM chip - Left | |
1B | RAM chip - Right | |
1C | Hardware (decoration) | |
1D | Hardware (decoration) | |
1E | Hardware (decoration) | |
1F | Hardware (decoration) | |
20 | Hardware (decoration) | |
21 | Hardware (decoration) | |
22 | Hardware (decoration) | |
23 | Hardware (decoration) | |
24 | Hardware (decoration) | |
25 | Hardware (decoration) | |
26 | RAM chip - Top | |
27 | RAM chip - Bottom |