Configuration
config.def
The game reads a plain-text configuration file at startup.
The path read by ReadConfig() in src/blupi.cpp is
data/config.def (relative to the working directory).
data/config.def
and DATA/config.def are the same. On Linux (case-sensitive),
the path must match exactly. The game assets live in
gamefiles/DATA/ — ensure you run the executable from the
repository root.
Configuration Keys
Keys are parsed by ReadConfig() in src/blupi.cpp. All keys are optional except under _CD=TRUE builds which require CD-Rom.
| Key | Values / Range | Description |
|---|---|---|
FullScreen | 0 / 1 | Run in fullscreen (1) or windowed (0) |
TrueColor | 8 / 16 | Set both back and decor color depth at once (shorthand) |
TrueColorBack | 8 / 16 | Color depth for background images (8=palette, 16=truecolor) |
TrueColorDecor | 8 / 16 | Color depth for decor overlay images (overrides TrueColor) |
MouseType | 1–9 | Mouse cursor type: 1=MOUSETYPEGRA, 2=MOUSETYPEWIN, 3=MOUSETYPEWINPOS |
SpeedRate | 1–2 | Game speed multiplier (1=normal, 2=fast) |
Timer | 10–1000 | Timer tick interval in milliseconds (default ~50ms = 20 fps) |
Benchmark | 0–100000 | Benchmark score; values above 3099 force TrueColor on |
CDAudio | 0 / 1 | Enable CD audio playback (legacy) |
CD-Rom | path string | CD-ROM drive path (only used when _CD=TRUE) |
Speed does not exist — the correct key is
SpeedRate. Earlier documentation incorrectly listed it as "Speed".
Compile-Time Configuration
Additional configuration is done at compile time via #define flags
in include/def.hpp. These cannot be changed at runtime.
See Compile Flags Reference for the full list.
Save Game Slots
The game supports up to 6 save game slots (MAXSAVE=6).
Each slot stores a complete DescSave struct (~56KB) containing the
full game state. Save files are stored in gamefiles/DATA/.
On the WebAssembly build, save data is stored in the browser's IndexedDB
via Emscripten IDBFS, mounted at /save.
Gamer Profiles
The game supports named player profiles (gamers).
Up to MAXGAMER=8 gamer profiles can be created.
Profiles are managed through these game phases:
WM_PHASE_GAMER— gamer selection screenWM_PHASE_NAMEGAMER— create/name a new gamerWM_PHASE_CLEARGAMER— clear/delete a gamer profile