Free Eggbert Documentation
Open-source reconstruction of Speedy Eggbert 2 (Speedy Blupi II) — a reverse-engineered side-scrolling platformer originally built for Windows/DirectX 3.
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 that was originally published for Windows in the late 1990s using DirectX 3. The original source code was never publicly released.
This project uses binary analysis tools — Ghidra, IDA, and ILSpy (via the 2013 Windows Phone port) — to reconstruct a buildable, documented, and eventually portable version of the game.
Quick Navigation
Getting Started
Clone, build, and run Free Eggbert in minutes.
Build System
CMake, Visual Studio, Emscripten, and Android build instructions.
Architecture
Main loop, rendering pipeline, input, audio, and object system.
Project Structure
Directory layout, source files, headers, assets, and build files.
Reference
Complete ACTION_*, TYPE_*, SOUND_*, WM_PHASE_* constant tables.
CDecor Class
The central game engine class — world state, player, objects.
Gameplay
Player movement, vehicles, power-ups, enemies, and level progression.
Assets
.blp file format, image channels, level worlds, and sound files.
Platform Support
Windows, Linux, macOS, WebAssembly, and Android.
Reverse Engineering
Decompilation methodology, symbol sources, and known artifacts.
Known Issues
Bugs, decompilation artifacts, and TODO items from the development checklist.
FAQ
Frequently asked questions about the project.
Current Status
| Component | Status | Notes |
|---|---|---|
| Build system (CMake / FreeDirect) | Partial | Core build works; cleanup TODOs remain |
| Rendering (CPixmap) | Partial | Double-Create() decompilation artifact suspected |
| Player movement (decblupi.cpp) | WIP | Most complex file; physics needs verification |
| Input handling (event.cpp) | WIP | Largest file; phase dispatch incomplete |
| Enemy AI (decmove.cpp) | WIP | Moving objects and AI logic incomplete |
| Audio (DirectSound / BASS) | Partial | _BASS=FALSE default; MCI path active |
| Network (DirectPlay) | Broken | Fails silently; singleplayer fallback works |
| Save/Load (decio.cpp) | WIP | Version compatibility gaps possible |
| Level editor (decdesign.cpp) | WIP | Known missing features |
| Emscripten (Web) | Partial | Builds; IDBFS persistence works |
| Android | Partial | NDK build present; see ANDROID.md |
Supported Platforms
- Windows — Visual Studio 2022 (native DirectX 3) or CMake + FreeDirect
- Linux / macOS — CMake + FreeDirect (SDL3-based)
- Web — Emscripten WebAssembly build
- Android — NDK + Gradle (SDL3 via CMake)
License
Free Eggbert is released under the GNU General Public License v3.0 (GPLv3).
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) are not included and must be obtained from an original copy of Speedy Eggbert 2.