Open Eggbert

Free Eggbert

Free Eggbert
Licence GPLv3 or later
Programming language C++
Used Libraries DirectX, WineLib, FreeDirect, SDL 3
Project launched Spring 2024
Released date Not yet release
Development status Decompilation of EXE files
Free Eggbert is the revival of the computer games Speedy Blupi demo/1/2 and Speedy Eggbert demo/1/2.

Free Eggbert is the decompilation of these games using tools like Ghidra and IDA. It's free and open-source.

Origin

Probably in 2024 HMVocaloid started the decompilation of the EXE files of the game Speedy Eggbert 2.
The source code of the game Planet Blupi was used, because Speedy Blupi I is the fork of Planet Blupi. Speedy Blupi II is the fork of Speedy Blupi I.
Source code of Planet Blupi was published in 2017.
Ghidra, the decompilation tool, was used too.
Later, jummy0 joined this decompilation project. Latest commits published by jummy0 are in December 2024.

Repositories

Why the decompilation started

Compilation options

Compilation option: represents set of features, which are supported by the generated executable file.

Legacy mode

If legacy mode is enabled in CONFIG.DEF, then the game will behave as much as possible as the original games developed by Daniel Roux.
If legacy mode is disabled, then all the game new features, graphics, sounds, music, etc. of the game will be present and activated
The third possibility is to set the value of LegacyMode, which contains comma separated list of the game only features, which will be additionally activated and supported. This means, that Legacy mode is enabled, but some new features are activated.
For example disable cheat, even the game behaves like Speedy Eggbert I

Future

Free Eggbert will be one computer game, which will be able to be behave like one of these games Speedy Blupi/Eggbert I/II/1/2.
There will be created a DirectX 3 implementation based on SDL 3 named Free Direct. Windows API will be replaced by Free API, which will be partial reimplementation of Windows API.

Game space (proposal)

Game space is a directory with the defined structure.
Player has one or more game spaces.
Each game space has a feature level.
Game space can be cloned. You can have several game spaces with the same Feature level.

Source code

        action.h
        actions.h
        blupi.cpp

        int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
        This is the entry point for whole game and is the part of the Windows API.
        Its goals: Initialize the game, do the benchmark, set the timer, launch the game loop

        static BOOL DoInit(HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow)
        Reads the config file (config.def)
        Creates the window or fullscreen
        Set the cursor to the type: WAIT
        Create objects

        button.cpp
        button.h
        cursor1.cur
        ddraw.h
        ddutil.cpp
        ddutil.h
        decblupi.cpp
        decmove.h
        decor.cpp
        decor.h
        dectables.cpp
        dectables.h
        def.h
        dplay.h
        dsound.h
        event.cpp
        event.h
        fifo.h
        jauge.cpp
        jauge.h
        menu.cpp
        menu.h
        misc.cpp
        misc.h
        movie.cpp
        movie.h
        network.cpp
        network.h
        ping.asm
        pixmap.cpp
        pixmap.h
        resource.h
        resource1.h
        sound.cpp
        sound.h
        text.cpp
        text.h
        texttables.h
        wave.cpp
        wave.h