Most likely there is no such person here who has not played GTA (or at least has not heard about it). The first 3D version of the series was released about 20 years ago. It was GTA III. GTA: Vice City came out a year later. Despite this, these games are still not only played, but also fashioned. These games have been ported to many platforms, but unfortunately, Linux (until recently) was bypassed. The only way to play Linux was wine. But recently everything has changed.
The news caught my eye - The developers have completed the reverse engineering of GTA III and Vice City and released ports for different platforms .
And since I follow everything related to the sources (leaks, discoveries, etc.), and also like building software from source - of course I could not ignore this. From the news, I realized that the enthusiasts have published the source code for GTA III and GTA: VC. My joy knew no bounds. I immediately went to github for more information.
Major improvements (regarding miami):
- Fixed many minor and major bugs.
- User files (saves and settings) are now stored in the GTA root directory.
- The settings are now stored in the reVC.ini file (they were originally in gta_vc.set).
- Added debug menu (available by CTRL + M).
- Free camera (Debug camera). CTRL + B - on / off. When enabled, the camera can be freely moved around the entire map.
- Removed loading screens between islands.
- And some other fixes / improvements, including fixes for other platforms.
Note: these parameters can be configured in the core / config.h file . Some parameters can be changed directly in the game (using the debug menu), while the rest will require rebuilding.
Let's move on to the most interesting, namely the assembly of miami (GTA: VC).
We need:
- Linux distribution (Ubuntu, Debian, Mint, etc);
- Original files (assets) from the VC game distribution kit (in the case of a GTA III build, GTA III files will be required accordingly).
- GCC.
- Some libraries and header files.
I use Linux Mint 19.3 as an OS (based on Ubuntu 18.04 LTS). You can install gcc compilers like this (if not installed):
sudo apt install build-essential
Installing the required libraries:
sudo apt install libopenal-dev libglew-dev libglfw3-dev libsndfile1-dev libmpg123-dev
Here we will stop and consider in more detail. Yesterday I spent half an hour looking for a solution to the compilation problem due to my carelessness. It is clearly stated on GitHub that the version of the glfw library must be at least 3.3, while the Ubuntu 18.04 repos have 3.2. Therefore, if you have a distribution kit built on Ubuntu 18.04 (or the version of the glfw library is lower than 3.3 in the repository), then this library must be compiled from sources. But there is nothing difficult here. Downloading the archive github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip
Unpack it to any folder. We go into the unpacked folder and execute the following commands:
mkdir glfw-build
cd glfw-build
cmake -DBUILD_SHARED_LIBS=ON ../
make -j2
sudo checkinstall
The library of the required version is installed. Now we clone the repository:
git clone --recursive -b miami https://github.com/GTAmodding/re3.git reVC
It won't take long. After cloning, the size of the reVC folder is about 120MB (of which 70MB is a .git folder).
Next, go to the reVC folder and launch premake5Linux:
./premake5Linux --with-librw gmake2
It will take a couple of seconds to generate the build files.
Note: If you use the arm / arm64 architecture, then you need to build the premake5Linux utility from the sources, and then run it with the parameter indicated above.
Now the assembly itself. The following configurations are available for the build:
- debug_linux-x86-librw_gl3_glfw-oal
- debug_linux-amd64-librw_gl3_glfw-oal
- debug_linux-arm-librw_gl3_glfw-oal
- debug_linux-arm64-librw_gllf3_release_linux-release_llf
-release_llf-olf-release_ref_release_ref_release_llf-ogl3_release_linux
-release_lf -librw_gl3_glfw-oal
- release_linux-arm-librw_gl3_glfw-oal
- release_linux-arm64-librw_gl3_glfw-oal
I think everything is clear from the names. The main thing is not to confuse amd64 and arm64 (I overlooked sleepy last night, then I could not understand why the assembly does not occur).
Go to the reVC / build directory and run make with your configuration. In the case of the debug version for amd64, you need to:
make config=debug_linux-amd64-librw_gl3_glfw-oal
Compilation is fast enough. On my old laptop (Asus X55A, Pentium B970 2x2.3 GHz and 4 GB of memory) it took 2 minutes to build the debug version. 10 seconds (output file = 30.4 MB), release - 4 minutes. 44 seconds (file size = 43.8 MB). From my own experience, I will say that in many cases it is usually the opposite.
If the compilation passed without errors, then the reVC binary will be in the reVC / bin / your_configuration / Debug_or_Release / folder.
Copy the original folder with GTA: VC somewhere (if you wish, you can delete all files from the root - we don't need them). Then copy our reVC binary to the game folder. In theory, the game can already be launched, and even played. But the text on some menu items will not display correctly:
To fix this, copy the replacement folders from reVC / gamefiles to the game folder. However, in this case, the game will be in English.
Now let's go over the debug menu:
To enable or disable the debug menu - press CTRL + M.
- Cam - everything related to the camera.
- Cheats - Various cheats.
- Debug - Displays various debug information, player position, etc.
- Debug Render - You can hide or display various objects, vehicles, buildings, pedestrians, show the paths of vehicles and pedestrians, etc.
- Game - Teleportation to any place (you first need to put a mark on the map). You can also launch absolutely any mission.
- Particle - I don't know what it is.
- Render - Some fixes, fps settings, graphics settings ...
- Spawn - Spawn vehicles.
- Time & Weather - Set time and weather.
Building GTA III is no different, except for cloning the repository:
git clone --recursive https://github.com/GTAmodding/re3.git
About mods: textures, scripts, models should work. But dll / asi, CLEO will not work. Some features of these mods are already implemented in re3, some can be configured in the config.h file.
Related links:
github.com/GTAmodding/re3
GTA III
Building Instructions Ready reVC binaries for Mac, Linux, Windows
Ready re3 binaries for Mac, Linux, Windows
Viewing the repository in Visual Studio Code
Lifehack: If you change github in the github link. com on github1s.com, then the repository can be viewed in the convenient Visual Studio Code.