Format

The internal structure of spawnset binaries consists of 4 parts:

Header buffer

Fixed-length buffer of 36 bytes. Contains shrinking control and brightness values as well as presumably a version number and some unknown miscellaneous values that usually cause the game to crash or behave oddly when modified.

The header buffer for the default spawnset looks like this:

04000000 09000000 0000A041 01004842 CDCCCC3C 00007042 00000000 33000000 01000000

Arena buffer

Fixed-length one-dimensional array of 2601 (51*51 = 2601 tiles) 32-bit floating point numbers (2601*32/8 = 10404 bytes) representing the height of each tile in the arena.

Spawns header buffer

Fixed-length buffer of 40 bytes. Contains the amount of spawns, but mainly unknown values.

The spawns header buffer for the default spawnset looks like this:

00000000 00000000 00000000 01000000 F4010000 FA000000 78000000 3C000000 00000000 76000000

Spawns buffer

This is the only part of the file with a variable length. It represents the list of spawns. Each spawn buffer consists of 28 bytes that include the enemy type as a 32-bit integer and the delay value as a 32-bit floating point number. The other bytes in each of the spawn buffers seem to be the same for all of them and appear to have no meaning.

These are the first 3 spawns in the original game:

00000000 00004040 00000000 03000000 00000000 0000F041 0A000000
FFFFFFFF 0000C040 00000000 03000000 00000000 0000F041 0A000000
00000000 0000A040 00000000 03000000 00000000 0000F041 0A000000

Here's the list of enemy types that the survival file defines:

Overview

Files

There are 3 files in Devil Daggers which use this format. These are "survival", "dagger", and "menu", although only "survival" makes use of all the features.