Project Overview

What Is Free Eggbert?

Free Eggbert is an open-source reconstruction of Speedy Eggbert 2 (also known as Speedy Blupi II), a side-scrolling platformer originally developed for Windows using DirectX 3 in the late 1990s. The original game's source code was never publicly released, so this project is based on decompiled and reverse-engineered binary code.

Project Classification

Free Eggbert is a reverse-engineering and preservation project, not a clone or remake. The goal is to reconstruct the original game logic as accurately as possible from binary analysis, not to rewrite or reinvent it.

ℹ️
Preservation Focus
The decompiled code is intentionally kept close to the original structure, including many quirks and idiomatic patterns from the original binary. The _LEGACY compile flag preserves known bugs for accuracy.

Reverse Engineering Tools

  • Ghidra — Binary analysis, decompilation, and control-flow reconstruction
  • IDA — Binary disassembly and additional analysis
  • ILSpy — Inspection of the 2013 Windows Phone port of Speedy Blupi, which preserved demangled C++ symbol names
  • Planet Blupi source — The official open-source release of the shared ancestor engine, used as a behavioral reference

Special thanks to Ч.У.Ш from the 4PDA forum for archiving the obscure 2013 Windows Phone port, which provided invaluable symbol names.

Original Game

PropertyValue
TitleSpeedy Eggbert 2 / Speedy Blupi II
GenreSide-scrolling platformer
Original platformWin32, DirectX 3
Executable nameSPEEDY_BLUPI_WINDOWS
Source availabilityNever officially released

Technology Stack

ComponentTechnology
LanguageC++20
Cross-platform backendFree Direct (SDL3-based DirectDraw/DirectSound replacement)
Platform abstractionFree API (Win32 → cross-platform)
Audio (default)DirectSound / MCI path (_BASS=FALSE)
Audio (alternative)BASS + BASSMIDI library
NetworkingDirectPlay (DirectX 3) — incomplete
Build systemCMake (primary), Visual Studio 2022 (Windows), Gradle (Android)
Web targetEmscripten → WebAssembly
Mobile targetAndroid NDK
LicenseGPLv3

Current Status

Gameplay is partially functional but the game is still defective and many features are incomplete, inaccurate, or missing. From the README:

  • The game builds and runs on multiple platforms via the FreeDirect/SDL3 backend
  • Some gameplay elements work; physics and AI need the most work
  • Network multiplayer fails silently; the game falls back to single-player
  • Save/load may have version compatibility gaps
  • The level editor has known missing features

Project Goals

  • Improve accuracy of the decompiled source code
  • Restore missing or defective gameplay behavior
  • Add Doxygen documentation to all headers and source files
  • Add support for Free Direct via CMake (in progress)
  • Make the game portable to additional platforms beyond Windows
  • Investigate and complete Android support
  • Investigate and complete web browser support

Relationship to Planet Blupi

Free Eggbert and Planet Blupi share common ancestry — the original Speedy Eggbert 2 was a fork or sequel of the Planet Blupi game engine. However, they are separate and independent projects. For a detailed comparison, see Free Eggbert vs. Speedy Blupi.

Disclaimer

This project is intended for research, preservation, documentation, and compatibility work. It is not an official release of the original game source code. Game assets (DATA, IMAGE08, IMAGE16, SOUND directories) are copyright of their respective owners, are not included in this repository, and must be obtained separately from an original copy of Speedy Eggbert 2.