This page will discuss the following:
You probably don't need to read this. Only if you are really interested in some of the technical details of Supaplex, or you are a programmer interested in making a Supaplex Level editor (there's never enough!)
This page will discuss what is in some of the Supaplex files. You can use this information to edit the files, or make your own utilities for Supaplex. If you have an old level editor which doesn't support all the options, you might find some information here to make the changes by hand.
Originally, Supaplex used this file to retrieve it's levels from. Every level is 1536 bytes in size, and because there are 111 levels, the size of the entire file is 111*1536=170496 bytes. Every level contains the following information in the order listed below:
|1440||The level itself (width*height=60*24=1440)|
|1||Gravitation start value (0=off, 1=on)|
|1||20h + SpeedFix_version_hex: v5.4 => 74h; v6.0 => 80h. In the original Supaplex, this value is just 20h.|
|1||Freeze zonks start value (0=off, 2=on) (yes 2=on, no mistake!)|
|1||Number of infotrons needed. 0 means Supaplex will count the total number of infotrons in the level at the start and use that.|
|1||Number of gravity switch ports (maximum 10!)|
|10*6||Coordinates of 10 special ports (entries for unused ports are
ignored. 6 bytes per port: [hi][lo][grav][fr.zonks][fr.enemy][unused]
|4||Used by the SpeedFix to store some vital demo information. Unused in the original SUPAPLEX.EXE.|
This file contains the names of all levels. It would not really be necessary for the game, because the level names are also contained in the LEVELS.DAT file. However, for the level list on the Supaplex Menu screen it comes in handy because there is no longer any need to go through the entire LEVELS.DAT file to get all the names.
There are 111 entries in this file, all of this format:
|3||Level number (if less than 100 preceded by one or two zeroes)|
|1||The character 0Ah (A Unix-style enter)|
There is a difference between the original DEMOx.BIN and the DEMOx.BIN used in the SpeedFix versions 5.x and above.
The original demo's were all less than 1000 bytes in size. They contain a level number followed by the data needed to be able to replay the game. To play the demo, Supaplex would load the appropriate level from the file LEVELS.DAT, and then play the demo. The end of the demo was signalled by a 0FFh byte at the end of the file.
In the SpeedFix version 5.x and above, the demo format has been changed for
a number of reasons (compatibility with SpEdit, better handling of demo's
from other levelsets, etc.)
This means that all files DEMOx.BIN are now larger than 1536 bytes, and the original demo's won't work with the new SpeedFix and the new demo's won't work with the original Supaplex.
The contents are unchanged, except that a 1536 byte level file is PREpended now. More information about this level file can be found in the LEVELS.DAT format.
For the SpeedFix, this file can be named DEMOx.B?? where ?? is a number from 00 to 99.
This file format is used by The Supaplex Level Editor, and for the SpeedFix v5 and higher. It contains the 1536 byte level file, as specified for the file LEVELS.DAT.
In the new SP-format (for SpEdit v3.2 and higher, or SpeedFix v5.x and higher) There can be an old-style DEMOx.BIN file appended. This makes the (new) SP-format exactly equal to the (new) DEMOx.BIN format.
There has been an "official" extension to the .SP format in October 1996: If a demo is present in the .SP file, you can add a signature to the back of the file, usually to give contact information for the author of the demo.