GTA III, Vice City
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 
Go to file
Zach Charo 60e01c618e
Add Gamepad Support to Debug Menu
An improvement since my last PR request to this end.
Has auto-repeat and improved input detection for gamepad.

Toggle debug menu on/off with R1+Triangle (or RB+Y)
Navigate with Joystick or DPad, Select with cross (or A), or nav backward with circle (or B)
Toggle and activate menu items with Joy/Dpad right & left. Increase/decrease numeric menu options with cross/square (or A/X)
4 years ago
.github/workflows Fix CI 4 years ago
.vscode .vscode/settings: fix include path 4 years ago
cmake Add basic support for cmake on linux 4 years ago
gamefiles Removing iOS strings as requested. 4 years ago
sdk Move sdk and eax 4 years ago
src Add Gamepad Support to Debug Menu 4 years ago
utils/gxt Removing iOS strings as requested. 4 years ago
vendor GTA_VERSION define and some config.h cleanup 4 years ago
.appveyor.yml Upload to bintray when creating tags 4 years ago
.gitattributes Add .gitattributes for better language stats 4 years ago
.gitignore Move stuff to vendor 4 years ago
.gitmodules Move stuff to vendor 4 years ago
.travis.yml macOS support; thanks to @MrYadro 4 years ago
CMakeLists.txt Add basic support for cmake on linux 4 years ago
CODING_STYLE.md Separate Coding Style out into its own Document, and mention it from the Readme. 4 years ago
README.md Fix discord invite 4 years ago
premake-vs2015.cmd improvements (?) to premakefile 5 years ago
premake-vs2017.cmd improvements (?) to premakefile 5 years ago
premake-vs2019.cmd improvements (?) to premakefile 5 years ago
premake5.exe fixed CParticle crash && RandTable 6 years ago
premake5.lua no static runtime for external librw 4 years ago
premake5Linux Linux build support 5 years ago

README.md

re3

Build status

Platform Debug Release
Windows Direct3D9 Download Download
Windows OpenGL3.3 Download Download

Intro

The aim of this project is to reverse GTA III for PC by replacing parts of the game one by one such that we have a working game at all times.

How can I try it?

  • re3 requires game assets to work, so you must own a copy of GTA III.
  • Build re3 or download it from one of the above links (Debug or Release).
  • (Optional) If you want to use optional features like Russian language or menu map, copy the files in /gamefiles folder to your game root folder.
  • Move re3.exe to GTA 3 directory and run it.

Preparing the environment for building

You may want to point GTA_III_RE_DIR environment variable to GTA3 root folder if you want executable to be moved there via post-build script.

  • For Linux, proceed: Building on Linux
  • For FreeBSD, proceed: Building on FreeBSD
  • For Windows, assuming you have Visual Studio:
    • Clone the repo using the argument --recursive.
    • Run one of the premake-vsXXXX.cmd variants 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)

There are various settings at the very bottom of config.h, you may want to take a look there. i.e. FIX_BUGS define fixes the bugs we've come across.

If you choose OpenAL on Windows You must read Running OpenAL build on Windows.

Did you notice librw? 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.

Contributing

Please read the Coding Style Document

Unreversed / incomplete classes (at least the ones we know)

The following classes have only unused or practically unused code left:

CMemoryHeap - only on PS2
NameGrid.cpp - only on mobile (a player name grid, either a very early player name code ala GTA1 or a multiplayer leftover)
PedDebug.cpp - only on mobile (debug code)
HandlingMgr.cpp - debug functions from mobile
CVehicle::ProcessBikeWheel - early bike code (only on mobile)
CAutomobile::DebugCode - debug function from mobile
CBoat::DebugCode - debug function from mobile
CBoat::ModifyHandlingValue - debug function from mobile
CBoat::DisplayHandlingData - debug function from mobile
TexturePools - only on PC (slight RW modification that we don't actually need)