mirror of
https://github.com/imaginaryPineapple/OpenRayman.git
synced 2024-10-19 22:47:37 -04:00
04026967c4
* 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
122 lines
3.2 KiB
Markdown
122 lines
3.2 KiB
Markdown
# 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 ;)). |