Assets & Files

Assets Not Included
All game assets use the .blp binary format and are copyrighted by their original authors. They are not included in the repository and must be obtained from a legal copy of Speedy Eggbert 2.

The .blp Format

All game assets use the .blp binary format, inherited from Planet Blupi. This format is used for images, sounds, music, levels, and save data. The exact file format specification is not fully documented.

🔍
Needs Verification
The .blp binary format structure is not fully reverse-engineered. It is listed as a documentation goal in the project TODO.

gamefiles/ Directory Layout

gamefiles/ ├── DATA/ ~110 .blp files — level worlds, demos, config ├── IMAGE08/ ~68 .blp files — 8-bit palette images ├── IMAGE16/ ~55 .blp files — 16-bit true-color images └── SOUND/ ~103 files — music and sound effects

DATA/ Directory

Contains level worlds, demo recordings, configuration, and reference data.

Configuration

FileDescription
config.defPlain-text user settings (FullScreen, color depth, mouse type, speed, timer)

Level Worlds

Level files follow the naming scheme worldNNN.blp where NNN is a 3-digit chapter/level number.

File RangeChapterCount
world001.blpTutorial / intro level1
world010, world020world025Chapter 17
world030world034, world040world046Chapter 212
world050world058Chapter 39
world060world066Chapter 47
world070world075Chapter 56
world080world084Chapter 65
world090world095Chapter 76
world100world107Chapter 88
world110world115Chapter 96
world120world125Chapter 106
world199Special1
world201world212Bonus / extra12
world300world309Special / secret10

Pattern: the first digit of NNN encodes the chapter (1–9, 0=special, 2=bonus, 3=secret).

Demo Recordings

File RangeCountDescription
demo300.blpdemo309.blp10Prerecorded demo playbacks for attract mode

Other DATA Files

FileDescription
bench.blpBenchmark reference data
time.blpTiming / speed reference data
info001.blpLevel info / statistics

IMAGE08/ Directory — 8-bit Images

Contains ~68 .blp files. These are used when TrueColorBack=8 or TrueColorDecor=8 in config.def.

Character Sprites

FileChannelDescription
blupi000.blpCHBLUPIDefault player character sprites
blupi001.blpCHBLUPI1Player character variant 1 (multiplayer)
blupi002.blpCHBLUPI2Player character variant 2 (multiplayer)
blupi003.blpCHBLUPI3Player character variant 3 (multiplayer)

Terrain / Decor Sheets

32 sheets, one per world region/theme (e.g., grass, cave, snow, underwater):

File RangeChannelDescription
decor000.blpdecor031.blpCHBACK / CHDECORBackground terrain sheets for each visual region

Other Sprites

FileChannelDescription
element.blpCHELEMENTParticle and element effects
explo.blpCHEXPLOExplosion sprites (128×128 px each)
object.blpCHOBJECTForeground objects — pickups, items, enemies
jauge.blpCHJAUGEHealth/gauge bar sprites
map.blpCHMAPMinimap sprites

UI and Screen Images

FileDescription
button.blpUI buttons (CHBUTTON)
mouse.blpMouse cursor sprites
text.blpNormal text characters (CHTEXT)
littletxt.blpSmall text characters (CHLITTLE)
Various screen*.blpMenu and intro background screens

IMAGE16/ Directory — 16-bit Images

Contains ~55 .blp files. Used when TrueColorBack=16 or TrueColorDecor=16 (the default). This set mirrors IMAGE08 but:

  • Provides higher visual quality (16-bit true-color vs. 8-bit palette)
  • Omits jauge.blp and map.blp — these remain 8-bit only
  • Contains the same character and decor sheets in 16-bit format

SOUND/ Directory

Contains ~103 files: 10 music tracks and 93 sound effects.

Music Tracks

FileDescription
MUSIC000.BLPBackground music track 0
MUSIC001.BLPBackground music track 1
MUSIC009.BLPBackground music track 9

Music track selection is stored per-level in the DescFile::music field.

Sound Effects

93 sound effects in gamefiles/SOUND/. The numeric index maps directly to the SOUND_* constant value. File name case differs by index: indices 0–65 use uppercase (SOUND000.BLPSOUND065.BLP); indices 66–92 use lowercase (sound066.blpsound092.blp).

See Sound Effects Reference for the complete list of all 93 constants.

Asset Loading Pipeline

  1. On startup, CPixmap::CacheAll(TRUE, …) loads all image assets into DirectDraw surfaces
  2. Images are loaded into specific image channels
  3. The appropriate 8-bit or 16-bit set is chosen based on TrueColorBack / TrueColorDecor config
  4. CSound loads sound files from gamefiles/SOUND/ on demand or preloaded
  5. Level files are loaded from gamefiles/DATA/ via CDecor (decio.cpp)

Naming Conventions

  • Image files: lowercase (decor000.blp, object.blp)
  • Sound files: uppercase extension for MUSIC000–009 and SOUND000–065; lowercase for sound066–092
  • Level files: lowercase (world010.blp)
  • All assets use .blp extension regardless of actual content type