gta-reversed/gta-reversed-modern

Reimplementation of GTA:SA 1.0 US

C++

938

1,926 commits

updated Sep 25, 2026

See the code

README

gtasa-reversed Build Status

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

Community

Please join our community Discord: GTA Groupies [The invite is permanent, feel free to share it!]

About the 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) We currently estimate that about 50-60% of the code is done. Since this project is done as a hobby, and worked on at irregular intervals, there's no time estimate on when it'll be finished.

Build Instructions

0. Requirements/Prerequisites

1. Install Python and Conan

  • Install the latest Python [When installing make sure to tick the "Add to PATH" checkbox!]
  • Install Conan using pip install conan [You might need to reload the console if you've freshly installed Python.] (See guide)
  • If you are installing Conan for the first time, also run conan profile detect

2. Setting up VS

  1. Run the setup script with python setup.py - It defaults to windows-msvc x86 Debug. If you want a different configuration you have to pass Conan config/options to the script (ex.: python setup.py -s arch=x86 -s build_type=Release) or use custom profiles.
  2. Open the folder with VS's native CMake integration (Right click -> "Open in Visual Studio") - The .sln generated by CMake should (in theory) work as well, but the CMake integration works somewhat better.
  3. If you'd just like to build use python setup.py --build (Or if you're experienced with conan, you can use it directly as well)

3. Set up the game and ASI

  1. GTA SA Compact exe: Our code requires you to use this exe, otherwise you will experience random crashes. You must own the original game and assets for this to work.

[!IMPORTANT] GTA SA Compact exe is not the same as 1.0 US exe, so check that your executable is exactly 5'189'632 bytes (4.94 MiB).

  1. To install all the necessary files (after building the project!), run contrib/install.py with administrator privileges [Necessary to create symlinks on Windows] in the root directory. Alternatively, you can install them by yourself:

    • ASI Loader
    • Mouse Fix (dinput8.dll) [Can be found in the zip in the contrib folder]

    You can download them in a single archive.

Other plugins

Using other (than the ones we've tested) plugins is strongly discouraged and we provide no support.

Contributing

Coding/Contributing Guidelines

Before you start writing code, please make sure to read the coding guidelines for this project. Consider these points before opening a PR:

  • Follow the coding guidelines, it exists for a reason.
  • Try to focus your changes onto single subject, do not create PRs that cover many things at once. This is because it's hard to properly test and review such PRs.
  • If you intend to add non-vanilla features please first consult with us, so you don't waste your time.

What to work on?

Check out this discussion for some inspiration ;)

Debugging

  1. Make sure the latest DLL is in the scripts folder of your GTASA installation - Skip this step if you've used contrib/install.py (As it uses symlinks (To the debug version)!)
  2. Launch the game
  3. Attach using the ReAttach plugin to make your life easier

Credits

Star History

Star History Chart
bug-fix
bug-fixing
grandtheftauto
gtasa
modern-cpp
mtasa
multitheftauto
plugin-sdk
source-code
windows

Contributors

(top 30 of 57)

Izzotop

568 commits

Pirulax

566 commits

codenulls

298 commits

yukani

133 commits

gta-reversed/gta-reversed-modern

Reimplementation of GTA:SA 1.0 US

C++

938

1,926 commits

updated Sep 25, 2026

See the code

README

gtasa-reversed Build Status

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

Community

Please join our community Discord: GTA Groupies [The invite is permanent, feel free to share it!]

About the 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) We currently estimate that about 50-60% of the code is done. Since this project is done as a hobby, and worked on at irregular intervals, there's no time estimate on when it'll be finished.

Build Instructions

0. Requirements/Prerequisites

1. Install Python and Conan

  • Install the latest Python [When installing make sure to tick the "Add to PATH" checkbox!]
  • Install Conan using pip install conan [You might need to reload the console if you've freshly installed Python.] (See guide)
  • If you are installing Conan for the first time, also run conan profile detect

2. Setting up VS

  1. Run the setup script with python setup.py - It defaults to windows-msvc x86 Debug. If you want a different configuration you have to pass Conan config/options to the script (ex.: python setup.py -s arch=x86 -s build_type=Release) or use custom profiles.
  2. Open the folder with VS's native CMake integration (Right click -> "Open in Visual Studio") - The .sln generated by CMake should (in theory) work as well, but the CMake integration works somewhat better.
  3. If you'd just like to build use python setup.py --build (Or if you're experienced with conan, you can use it directly as well)

3. Set up the game and ASI

  1. GTA SA Compact exe: Our code requires you to use this exe, otherwise you will experience random crashes. You must own the original game and assets for this to work.

[!IMPORTANT] GTA SA Compact exe is not the same as 1.0 US exe, so check that your executable is exactly 5'189'632 bytes (4.94 MiB).

  1. To install all the necessary files (after building the project!), run contrib/install.py with administrator privileges [Necessary to create symlinks on Windows] in the root directory. Alternatively, you can install them by yourself:

    • ASI Loader
    • Mouse Fix (dinput8.dll) [Can be found in the zip in the contrib folder]

    You can download them in a single archive.

Other plugins

Using other (than the ones we've tested) plugins is strongly discouraged and we provide no support.

Contributing

Coding/Contributing Guidelines

Before you start writing code, please make sure to read the coding guidelines for this project. Consider these points before opening a PR:

  • Follow the coding guidelines, it exists for a reason.
  • Try to focus your changes onto single subject, do not create PRs that cover many things at once. This is because it's hard to properly test and review such PRs.
  • If you intend to add non-vanilla features please first consult with us, so you don't waste your time.

What to work on?

Check out this discussion for some inspiration ;)

Debugging

  1. Make sure the latest DLL is in the scripts folder of your GTASA installation - Skip this step if you've used contrib/install.py (As it uses symlinks (To the debug version)!)
  2. Launch the game
  3. Attach using the ReAttach plugin to make your life easier

Credits

Star History

Star History Chart
bug-fix
bug-fixing
grandtheftauto
gtasa
modern-cpp
mtasa
multitheftauto
plugin-sdk
source-code
windows

Contributors

(top 30 of 57)

Izzotop

568 commits

Pirulax

566 commits

codenulls

298 commits

yukani

133 commits

Languages

C++

77.9%

C

21.1%