AliveTeam / alive_reversing

Re-implementation of Oddworld: Abe's Exoddus and Oddworld: Abe's Oddysee
346 stars 44 forks source link
abe-exoddus abe-oddysee decompilation game-engine-2d oddworld reverse-engineering

R.E.L.I.V.E.

An Open-Source Engine Replacement for Oddworld: Abe's Oddysee and Oddworld: Abe's Exoddus.

R.E.L.I.V.E. is a fan-made, open-source project that intends to become a fully compatible engine replacement for Oddworld Inhabitants' iconic first two games. The project's goals include fixing the original games' bugs and also eventually providing a modding / level creation interface, alongside of course making it possible to study or use the engine for new projects.

For more details, please check the project's website: https://aliveteam.github.io/

Function Keys

Key Name
F5 Quiksave (Exoddus only)
F6 Quikload (Exoddus only)
F10 Screen Filter
F11 Keep Aspect Ratio
F12 Fullscreen

Contributing

Anyone who wishes to contribute is encouraged to join the project's Discord, where most of the communication happens.

By contributing to this project, the contributor agrees and accepts that their code will be licensed under a GPL-compatible license (most likely the MIT/Expat license) in the future.

Building R.E.L.I.V.E.

Cloning

Since the project uses third-party repositories for some of its functions, you need to clone the project using the --recursive flag.

git clone --recursive https://github.com/AliveTeam/alive_reversing.git

Regardless of your platform, you need to create a folder called build in your repository root! .gitignore is configured to ignore this folder. This helps to prevent polluting the commits with binaries.

Build on Windows using `msbuild` [SDL](https://libsdl.org/download-2.0.php) and [CMake](https://cmake.org/) is required to build the project. 1. `cd build` 2. `cmake -S .. -B . -DSDL2_DIR=PATH_TO_YOUR_SDL2_DIRECTORY` 3. `msbuild /p:Configuration=Debug;Platform=Win32 relive.sln /m`
Build on Windows using Visual Studio 2022 [SDL](https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-devel-2.30.6-VC.zip) is required to build the project. 1. Launch VS2022 and click on `Continue without code`. 2. Goto `File` -> `Open` -> `CMake`. Then choose the `CMakeLists.txt` from the root of this cloned git repository. 3. Select `Project` -> `CMake Settings` and click on `Edit JSON` in the top right corner. 4. Change `generator` to `Visual Studio 17 2022` for `x86` or `Visual Studio 17 2022 Win64` for `x64` 5. Change `inheritEnvironments` to `msvc_x86` for `x86` or `msvc_x64_x64` for `x64` 6. Edit the line `cmakeCommandArgs` to contain `-DSDL2_DIR=PATH_TO_YOUR_SDL2_DIRECTORY`, and then press `ctrl+s` to save and generate your files. 7. Invoke `Build` -> `Build all` to build the project.
Build on Linux 1. Install SDL2 using your package manager. 2. `cd build` 3. `cmake -S .. -B .` 4. `make -j$(nproc)` 5. You'll find your executable in the `Source` folder under `relive`. 6. You can optionally install the package using `make install` or create a Debian-compatible package using `cpack -G DEB`.

Testing

Hook Manager

For testing we provide an application called Hook Manager, which lets you freely change whether specific functions use the original code or the rewritten one. This lets you figure out whether bugs are the result of errors in the rewrite or whether they are part of the original game.

The hook manager can be downloaded from this link. You also need a patched executable for the game of your choice, which you can download here.

To use the manager you need to do the following:

You need to obtain the .map and .dll files for whichever game you want to debug. You can do this in one of two ways:

OR:

Regardless of which way you chose, this is how you finalize the process: