We're looking for a range of contributers to contribute matching code to the KAIN2 decompile project. All matching code must be from the Review Build (14/07/1999). This is to prevent issues which may arise when merging code from different versions into the game. Auto decompiled code will be accepted, however it must be fully matching with the original binary to be merged into the project (proof will be required and will be checked).
Please select a platform:
- Install Visual Studio 17 2022 (Preview).
- Install Git or GitHub Desktop.
- Install CMake (3.24.1 or higher).
- Clone the project (and all submodules) using GitHub desktop or Git command line.
- Navigate to one of these directories:
(ROOT)/External/libValkyrie/Emulator/Platform/Win32
(ROOT)/External/libValkyrie/Emulator/Platform/Win64
(ROOT)/External/libValkyrie/Emulator/Platform/WindowsStore
(for UWP)
and execute Generate-Project-Files.bat
to generate the project files (or you can do this via CMake command line but you must always select Win32 architecture).
- Open the Solution file located at one of these locations (depending on which configuration you chose at step 5):
(ROOT)/Build/Build_Win32/Soul Reaver.sln
(ROOT)/Build/Build_Win64/Soul Reaver.sln
(ROOT)/Build/Build_WindowsStore/Soul Reaver.sln
- Build the project
- Make sure you are compiling on a 32-bit distro of Linux.
- Install Git (sudo apt-get install git)
- Install CMake (3.24.1 or higher)
sudo apt-get install -y cmake
. - Install
sudo apt-get install -y libegl1-mesa-dev
. - Install
sudo apt-get install -y libgles2-mesa-dev
. - Install
sudo apt-get install -y libdbus-1-dev
. - Install
sudo apt-get install -y libudev-dev
. - Install
sudo apt-get install -y libasound2-dev
. - Install
sudo apt-get install -y libpulse-dev
. - Install
sudo apt-get install -y libxcursor-dev
. - Install
sudo apt-get install -y libxi-dev
. - Install
sudo apt-get install -y libxrandr-dev
. - Install
sudo apt-get install -y libxss-dev
. - Clone the project (and all sub modules) using Git command line
git clone --recursive https://github.com/Gh0stBlade/KAIN2.git
. - Navigate to
(ROOT)/External/libValkyrie/Emulator/Platform/Linux
and executeGenerate-Project-Files-Win32.sh
. - Run KAIN2
- Install Xcode 14.2.
- Install GitHub or GitHub Desktop.
- Install CMake (3.24.1 or higher).
- Clone the project (and all sub modules) using GitHub desktop or Git command line.
- Open CMake and navigate to the root where you cloned in step 3 using "browse source" button
- "Where to build binaries" can be any path you wish.
- Open the Solution file located at the path you selected in step 6 within Xcode.
- Build KAIN2_Mac.
- Install Android Studio plus the latest Android NDK.
- Install Github or GitHub Desktop.
- Install CMake (3.24.1 or higher).
- Clone the project (and all sub modules) using GitHub desktop or Git command line.
- Open
(ROOT)/External/libValkyrie/Emulator/Platform/Android
as a project within Android Studio. - Build KAIN2_Android.
- For debug builds all game files must be extracted from the
BIGFILE.DAT
file. You can do this using the tool in Tools/LST (build it then drag and dropBIGFILE.DAT
ontop, copyBIGFILE.LST
and/KAIN2/
folder to where the executable is located)) - Release builds always load the game data from the
BIGFILE.DAT
file which must be in the same folder as the main executable. - Move
BIGFILE.DAT
andLOCALS.TBL
to where the built executable is located. - Note: 64-bit support is W.I.P! If building for a 64-bit platform, all assets (when extracted from
BIGFILE.DAT
must be passed through the ShiftGlyph tool located inROOT/KAIN2/Tools/ShiftGlyph/
.
If you wish to contribute functions to the project, it is important that you try to decompile the ones which are currently most needed. To find out which functions are higher priority, run the game in debug by launching KAIN2_Win32_Debug.exe
. Whilst in-game press the number 6
on the keyboard. This will now have generated a runtime bounty list called VALKYRIE_RUNTIME_BOUNTY_LIST_KAIN2.txt
. If you open the bounty list, it should tell you which functions are being called but they're not currently implemented. Choose one to decompile.
You can use http://decomp.me with the Legacy of Kain: Soul Reaver
preset to check if the code you decompiled matches when recompiled with the original compiler used for this game.
We'd prefer that you follow the same commit style as what is currently being used i.e [FILENAME]: Implement FUNCTIONNAME
and submit the commits via pull requests. Please ensure to link the decomp.me scratch where it's matching.