indirivacua / gta-reversed-modern

Reimplementation of GTA:SA 1.0 US

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gtasa-reversed Build Status

A project to reverse Grand Theft Auto San Andreas completely, and to rewrite and document every function.

What exactly is this project?

Building this project will result in a DLL file that can be injected into GTA:SA using any ASI loader out there. After the DLL file has been injected, the ingame functions will be replaced by the reversed ones. The game will behave the same. Now if we make any changes to the reversed code, it will take effect in the game. The goal is to keep reversing until we have the entire game reversed to compile a standalone executable.

Progress

The progress of reversed classes can be tracked here. (needs to be updated)

Coding Guidelines

Before you start writing code, please make sure to read the coding guidelines for this project.

Requirements

Game

You can download them in a single archive. Using other plugins is strongly discouraged as the compact version doesn't like them.

Build Instructions

You can either build with Premake5 or CMake; that's up to you, but a C++20 capable compiler with support is required.

First clone the project, including the submodules:

git clone --recurse-submodules https://github.com/gta-reversed/gta-reversed-modern.git
Premake5
  1. Execute premake5.bat for 2022, or premake5.bat vs20xx for other VS versions. (Note: Premake works fine with vs2019, CMake requires vs2022) (e.g: premake5.bat vs2019)

  2. You'll find gta_reversed.sln shortcut in the same folder as premake5.

CMake
  1. Sadly CMake requires VS22, because since CMake v3.20.4 cxx_20 maps to std=c++20 instead of std=c++latest. If you really want to avoid VS22, you can either downgrade your CMake, or change c++20 to c++latest manually in the project settings... Or just use premake5 instead.

  2. Download and install the latest version of CMake for windows from HERE and make sure to add it to your PATH.

GUI
  1. Open CMake GUI

  2. Set the Source and Build directories (Don't forget to append "Bin" after the path for build), like this:

Capture

  1. Click configure, then you will see a dialogue box. Choose the IDE you have (In the image below it's VS2019) and "Win32", then click Finish.

CMakeSettings

  1. Once the configuration is complete, click the Generate button.

  2. You'll find GTASA.sln in the Bin folder.

CLI
  1. Open Command Prompt in the gta-reversed directory and run cmake -Bbuild -H. -A Win32.

  2. To open the Visual Studio project, simply run cmake --open build or open build/GTASA.sln manually.

  3. Once the configuration is complete, click the Generate button.

  4. You'll find GTASA.sln in Bin folder.

Preparing Environment (Optional)

You can create symbolic links for artifacts to not copy them every time you compiled the project.

Open a console in the cloned git repo's directory (administrator privileges may be needed) and type in the following commands:

cd contrib
link_asi.bat "<GAME_PATH>/scripts"

Replace <GAME_PATH> with the path to the game's root directory (i.e.: Where the exe is)

What to work on?

Check this out for some inspiration ;)

Credits

About

Reimplementation of GTA:SA 1.0 US


Languages

Language:C++ 78.0%Language:C 21.9%Language:CMake 0.1%Language:Lua 0.1%Language:Batchfile 0.0%