|aap 9a7fa47857 make debug render groups optional||7 months ago|
|.github||8 months ago|
|.vscode||1 year ago|
|cmake||8 months ago|
|codewarrior||8 months ago|
|gamefiles||8 months ago|
|src||7 months ago|
|utils/gxt||8 months ago|
|vendor||7 months ago|
|.clang-format||10 months ago|
|.gitattributes||1 year ago|
|.gitignore||8 months ago|
|.gitmodules||1 year ago|
|CMakeLists.txt||8 months ago|
|CODING_STYLE.md||1 year ago|
|README.md||7 months ago|
|conanfile.py||9 months ago|
|logo.png||9 months ago|
|logo.svg||9 months ago|
|premake-vs2015.cmd||1 year ago|
|premake-vs2017.cmd||1 year ago|
|premake-vs2019.cmd||1 year ago|
|premake5.exe||9 months ago|
|premake5.lua||8 months ago|
|premake5Linux||9 months ago|
|printHash.bat||8 months ago|
|printHash.sh||8 months ago|
It has been tested and works on Windows, Linux and FreeBSD, on x86, amd64, arm and arm64.\ Rendering is handled either by original RenderWare (D3D8) or the reimplementation librw (D3D9, OpenGL 2.1 or above, OpenGL ES 2.0 or above).\ Audio is done with MSS (using dlls from original GTA) or OpenAL.
We cannot build for PS2 or Xbox yet. If you’re interested in doing so, get in touch with us.
We have implemented a number of changes and improvements to the original game.
They can be configured in
Some of them can be toggled at runtime, some cannot.
The following things would be nice to have/do:
Asset modifications (models, texture, handling, script, …) should work the same way as with original GTA for the most part.
Mods that make changes to the code (dll/asi, CLEO, limit adjusters) will not work.
Some things these mods do are already implemented in re3 (much of SkyGFX, GInput, SilentPatch, Widescreen fix),
others can easily be achieved (increasing limis, see
others will simply have to be rewritten and integrated into the code directly.
Sorry for the inconvenience.
When using premake, you may want to point GTA_III_RE_DIR environment variable to GTA3 root folder if you want the executable to be moved there via post-build script.
Clone the repository with
git clone --recursive https://github.com/GTAmodding/re3.git. Then
cd re3 into the cloned repository.
For Linux using premake, proceed: Building on Linux
Install python and conan, and then run build.
conan export vendor/librw librw/master@ mkdir build cd build conan install .. re3/master@ -if build -o re3:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo conan build .. -if build -bf build -pf package
For FreeBSD using premake, proceed: Building on FreeBSD
Assuming you have Visual Studio 2015/2017/2019:
premake-vsXXXX.cmdvariants on root folder.
Microsoft recently discontinued its downloads of the DX9 SDK. You can download an archived version here: https://archive.org/details/dxsdk_jun10
If you choose OpenAL on Windows You must read Running OpenAL build on Windows.
- :information_source: premake has an
--ltooption if you want the project to be compiled with Link Time Optimization.
- :information_source: There are various settings in config.h, you may want to take a look there.
:information_source: re3 uses completely homebrew RenderWare-replacement rendering engine; librw. librw comes as submodule of re3, but you also can use LIBRW enviorenment variable to specify path to your own librw.
If you feel the need, you can also use CodeWarrior 7 to compile re3 using the supplied codewarrior/re3.mcp project - this requires the original RW33 libraries, and the DX8 SDK. The build is unstable compared to the MSVC builds though, and is mostly meant to serve as a reference.
As long as it’s not linux/cross-platform skeleton/compatibility layer, all of the code on the repo that’s not behind a preprocessor condition(like FIX_BUGS) are completely reversed code from original binaries.
We don’t accept custom codes, as long as it’s not wrapped via preprocessor conditions, or it’s linux/cross-platform skeleton/compatibility layer.
We accept only these kinds of PRs;
We have a Coding Style document that isn’t followed or enforced very well.
Do not use features from C++11 or later.
re3 was started sometime in the spring of 2018, initially as a way to test reversed collision and physics code inside the game. This was done by replacing single functions of the game with their reversed counterparts using a dll.
After a bit of work the project lay dormant for about a year and was picked up again and pushed to github in May 2019. At the time I (aap) had reversed around 10k lines of code and estimated the final game to have around 200-250k. Others quickly joined the effort (Fire_Head, shfil, erorcun and Nick007J in time order, and Serge a bit later) and we made very quick progress throughout the summer of 2019 after which the pace slowed down a bit.
Due to everyone staying home during the start of the Corona pandemic everybody had a lot of time to work on re3 again and we finally got a standalone exe in April 2020 (around 180k lines by then).
After the initial excitement and fixing and polishing the code further, reVC was started in early May 2020 by starting from re3 code, not by starting from scratch replacing functions with a dll. After a few months of mostly steady progress we considered reVC finished in December.
Since then we have started reLCS, which is currently work in progress.
We don’t feel like we’re in a position to give this code a license.\ The code should only be used for educational, documentation and modding purposes.\ We do not encourage piracy or commercial use.\ Please keep derivate work open source and give proper credit.