An open source reimplementation of the Rayman 2: The Great Escape engine using C++11 and modern OpenGL.
Go to file
Hannes Mann 04026967c4 Mostly complete audio decoding
* OpenRayman can now fully decode .apm (Ubisoft? IMA ADPCM) audio used by Rayman 2 for music.
* APM audio is fully preseved and encoded into FLAC audio to ease editing with external programs (e.g. Audacity)
* Support for .bnm (audio banks with PCM and IMA ADPCM audio) is underway. This is only commited to get the online GitHub repo up to date.
* The data extractor is now threaded (not fully, it simply runs linearly in another thread)
* The data extractor now has a GUI progress dialog showing some information to the user (IProgressDialog on Win32, GTK3 on Linux)
* Various minor changes and bugfixes
2016-08-14 22:33:53 +02:00
android Improve Android activity 2016-07-26 06:56:58 +02:00
data High res icon 2016-07-02 04:35:56 +02:00
docs Use Google Docs for documentation 2016-06-27 23:17:57 +02:00
game_demos Add Error.log from demo run 2016-06-20 05:31:49 +02:00
lib Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
libopenrayman Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
src Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
win32 Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
.editorconfig Add basic DSB interpreter 2016-06-27 23:14:12 +02:00
.gitignore Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
.gitmodules Mostly complete audio decoding 2016-08-14 22:33:53 +02:00
CMakeLists.txt Refactoring, lots of refactoring 2016-07-07 08:16:48 +02:00
LICENSE_libopenrayman Refactoring, lots of refactoring 2016-07-07 08:16:48 +02:00
LICENSE_openrayman Refactoring, lots of refactoring 2016-07-07 08:16:48 +02:00
README.md Mostly complete audio decoding 2016-08-14 22:33:53 +02:00

OpenRayman

An open source reimplementation of the Rayman 2: The Great Escape engine using C++11 and modern OpenGL.

Usage

openrayman [options] ...

OpenRayman needs the base game rayman2 to run.

rayman2 can be created by starting OpenRayman without it or by using the command line option --convert-data "folder". The folder variable should point to a valid Rayman 2: The Great Escape installation.

rayman2 will be copied into the OpenRayman storage folder (in windows %appdata%\openrayman or linux ~/.local/share/openrayman). This is all that needs to be done to run OpenRayman.

Do note that OpenRayman contains some extensions to the Rayman 2: The Great Escape game, such as more menu options.

If for some reason you wish to run without these modifications then you will either need to edit the config.json file and change the game variable from rayman2_openrayman to rayman2, or by specifying the game to run via the command line option --game rayman2.

You should always target rayman2_openrayman when making a mod.

Obtaining "Rayman 2: The Great Escape"

As previously mentioned, a valid installation of Rayman 2: The Great Escape (PC version) must be used for data extraction.

Rayman 2: The Great Escape can be bought on GOG (https://www.gog.com/game/rayman_2_the_great_escape) or installed from a valid CD.

Installing the game on Linux needs to be done via wine but should work without further tweaking.

(TODO: installing on Android)

The only tested version is the GOG version.

GL3W

You need to build gl3w.h and gl3w.c before you build the project.

This can be done by executing lib/gl3w/gl3w_gen.py with Python 2.

Building on Linux

CMake should be used to generate makefiles, and make should be used to build the engine.

mkdir build
cd build
cmake ..
make -j8

The engine can be installed via sudo make install and can then be started by executing the command openrayman.

Additionally, a .desktop file will be created.

Building on Windows

Building should be done with MinGW, and is almost the same as on Linux.

You need to use the command cmake -G "MinGW Makefiles" .. instead of cmake .. to create makefiles, as OpenRayman cannot be built with MSVC.

You might also need mingw32-make -j8 instead of make -j8.

Building on Mac OS X

Mac OS X is not supported at the moment (might work with CMake?).

Licensing

All files in this repository are licensed under GPLv3, except for files that are a part of libopenrayman.

libopenrayman

libopenrayman is a library that contains several classes for decoding and decompiling file formats used by the Rayman 2: The Great Escape engine.

libopenrayman is at large based upon szymski's Rayman2Lib (https://github.com/szymski/Rayman2Lib).

All files related to libopenrayman are located in the libopenrayman/ subdirectory.

Special thanks to

https://github.com/szymski/Rayman2Lib

All others who have taken part of the UnLockRay project (https://www.reddit.com/r/UnLockRay/) and helped reverse engineer the Rayman 2: The Great Escape engine.

Palorifgrodbierzrt for creating Ray2Get, which the apm_audio_track implementation is partially based upon (I figured out the WAVEFORMATEX part though ;)).