||2 years ago|
|.github/workflows||2 years ago|
|gamefiles||2 years ago|
|src||2 years ago|
|utils/gxt||2 years ago|
|vendor||2 years ago|
|.gitignore||2 years ago|
|README.md||2 years ago|
|premake5.lua||2 years ago|
|printHash.bat||2 years ago|
|printHash.sh||2 years 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.
How can I try it?
- reVC requires game assets to work, so you must own a copy of GTA Vice City.
- Build reVC or download the latest nightly build:
- Copy the files from the
gamefilesdirectory to your game root directory. (This is not strictly necessary but very much recommended)
- Move reVC executable to GTA VC directory and run it.
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.
- Fixed a lot of smaller and bigger bugs
- User files (saves and settings) stored in GTA root directory
- Settings stored in reVC.ini file instead of gta_vc.set
- Debug menu to do and change various things (Ctrl-M to open)
- Debug camera (Ctrl-B to toggle)
- Rotatable camera
- Xinput controller support (Windows)
- No loading screens between islands ("map memory usage" in menu)
- Widescreen support (properly scaled HUD, Menu and FOV)
- PS2 MatFX (vehicle reflections)
- PS2 alpha test (better rendering of transparency)
- Xbox vehicle rendering
- Xbox world lightmap rendering (needs Xbox map)
- Xbox ped rim light
- Xbox screen rain droplets
- More customizable colourfilter
- More options
- Controller configuration menu
- Can load DFFs and TXDs from other platforms, possibly with a performance penalty
The following things would be nice to have/do:
- Fix physics for high FPS
- PS2 port
- Xbox port (not quite as important)
- reverse remaining unused/debug functions
- compare Codewarrior build with original binary for more accurate code (very tedious)
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.
Building from Source
When using premake, you may want to point GTA_VC_RE_DIR environment variable to GTA Vice City root folder, if you want executable to be moved there via post-build script.
For Linux using premake, proceed: Building on Linux
Obtain source code.
git clone https://github.com/GTAmodding/re3.git reVC -b miami cd reVC git submodule init git submodule update --recursive
Install python and conan, and then run build.
conan export vendor/librw librw/master@ mkdir build cd build conan install .. reVC/master@ -if build -o reVC:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s reVC: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:
- Clone the repo using the argument
- Run one of the
premake-vsXXXX.cmdvariants on root folder.
- Open the project via Visual Studio
If you use 64-bit D3D9: We don't ship 64-bit Dx9 SDK. You need to download it from Microsoft if you don't have it(although it should come pre-installed after some Windows version)
If you choose OpenAL on Windows You must read Running OpenAL build on Windows.
ℹ️ There are various settings in config.h, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across.
ℹ️ Did you notice librw? reVC uses completely homebrew RenderWare-replacement rendering engine; librw. librw comes as submodule of reVC, but you also can use LIBRW enviorenment variable to specify path to your own librw.
We have a Coding Style document that isn't followed or enforced very well.
Do not use features from C++11 or later.
We don't feel like we're in a position to give this code a license. If we were, it would be MIT licensed.