Coder Social home page Coder Social logo

kkpan11 / gta-reversed-modern Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gta-reversed/gta-reversed-modern

1.0 1.0 0.0 12.87 MB

Reimplementation of GTA:SA 1.0 US

C++ 80.57% C 19.21% Lua 0.08% CMake 0.07% Batchfile 0.02% Python 0.06%
game game-development gamedev grand-theft-auto gta

gta-reversed-modern's Introduction

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) 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 real time estimate.

Coding Guidelines

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

Requirements

Build Instructions

You can either build with Premake5 or CMake; that's up to you, but a C++20 capable compiler [with <ranges>, <format> 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

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

  3. Open it, and once the project has loaded, just hit CTRL + SHIFT + B

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.

Game

To install all the necessary files, run install.py with administrator privileges [Necessary to create symlinks on Windows] in the root directory. Alternatively, you can install them by yourself:

You can download them in a single archive. Using other plugins is strongly discouraged and we provide no support.

Preparing Environment (Optional)

[If you have ran install.py in the previous step then this step is already done]

Instructions

You can create symbolic links [symlinks] for artifacts [the .asi] to need not copy them every time you compile the project.

Open a console with administrator privileges in the git repo's directory and run contrib\link_asi.bat or right click link_asi.bat file and click Run as administrator, then follow instructions at the command window.

What to work on?

Check this out for some inspiration ;)

Credits

gta-reversed-modern's People

Contributors

izzotop avatar pirulax avatar codenulls avatar yukani avatar bigbossbro08 avatar forkerer avatar mikuauahdark avatar temajm avatar sociopart avatar maxtorcoder avatar imring avatar unnunu avatar plakapenka avatar amyrahmady avatar crosroad95 avatar mrjohndev avatar user-grinch avatar afskyy avatar lex3a avatar batuaksoy avatar frouk3 avatar jaapionl avatar simplyceo avatar botder avatar majesticcoding avatar sorpdev avatar theartemmaps avatar spmn avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.