En este repositorio encontrará el código fuente completamente invertido para GTA III (rama maestra) y GTA VC (rama miami).
Ha sido probado y funciona en Windows, Linux, MacOS y FreeBSD, en x86, amd64, arm y arm64.
El renderizado se maneja mediante RenderWare original (D3D8) o la biblioteca de reimplementación (D3D9, OpenGL 2.1 o superior, OpenGL ES 2.0 o superior).
El audio se realiza con MSS (usando dlls del GTA original) u OpenAL.
El proyecto también ha sido portado a Nintendo Switch, Playstation Vita y Nintendo Wii U.
Todavía no podemos construir para PS2 o Xbox. Si estás interesado en hacerlo, ponte en contacto con nosotros.
Hemos implementado una serie de cambios y mejoras al juego original. Se pueden configurar en core/config.h
. Algunos de ellos se pueden alternar en tiempo de ejecución, otros no.
Sería bueno tener/hacer las siguientes cosas:
Las modificaciones de recursos (modelos, textura, manejo, guión,...) deberían funcionar de la misma manera que con el GTA original en su mayor parte.
Los scripts CLEO funcionan con CLEO Redux.
Las modificaciones que realizan cambios en el código (dll/asi, ajustadores de límites) no funcionarán. Algunas cosas que hacen estos mods ya están implementadas en re3 (gran parte de SkyGFX, GInput, SilentPatch, corrección de pantalla ancha), otras se pueden lograr fácilmente (aumentando los límites, consulte config.h
), otras simplemente tendrán que reescribirse e integrarse en el código. directamente. Lo siento por los inconvenientes ocasionados.
Al usar premake, es posible que desees apuntar la variable de entorno GTA_III_RE_DIR a la carpeta raíz de GTA3 si deseas que el ejecutable se mueva allí mediante un script posterior a la compilación.
Clona el repositorio con git clone --recursive https://github.com/halpz/re3.git
. Luego cd re3
en el repositorio clonado.
Para Linux que usa premake, continúe: Construyendo en Linux
Instale Python y Conan y luego ejecute build.
conan export vendor/librw librw/master@
mkdir build
cd build
conan install .. re3/master@ -if build -o re3:audio=openal -o librw:platform=gl3 -o librw:gl3_gfxlib=glfw --build missing -s re3:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
conan build .. -if build -bf build -pf package
Para MacOS que usa premake, proceda: Construyendo en MacOS
Para FreeBSD usando premake, proceda: Construyendo sobre FreeBSD
Suponiendo que tiene Visual Studio 2015/2017/2019:
premake-vsXXXX.cmd
en la carpeta raíz.Microsoft suspendió recientemente las descargas del SDK DX9. Puede descargar una versión archivada aquí: https://archive.org/details/dxsdk_jun10
Si elige OpenAL en Windows, debe leer Ejecutar la compilación OpenAL en Windows.
premake tiene una opción
--with-lto
si desea que el proyecto se compile con Link Time Optimization.
Hay varias configuraciones en config.h, es posible que desees echar un vistazo allí.
re3 utiliza un motor de renderizado completamente casero que reemplaza a RenderWare; biblioteca. librw viene como un submódulo de re3, pero también puede usar la variable de entorno LIBRW para especificar la ruta a su propia biblioteca.
Si siente la necesidad, también puede usar CodeWarrior 7 para compilar re3 usando el proyecto codewarrior/re3.mcp suministrado; esto requiere las bibliotecas RW33 originales y el SDK DX8. Sin embargo, la compilación es inestable en comparación con las compilaciones de MSVC y está destinada principalmente a servir como referencia.
Siempre que no sea Linux/esqueleto multiplataforma/capa de compatibilidad, todo el código en el repositorio que no está detrás de una condición de preprocesador (como FIX_BUGS) es código completamente invertido de los archivos binarios originales.
No aceptamos códigos personalizados, siempre y cuando no estén ajustados mediante condiciones de preprocesador o sea un esqueleto multiplataforma/linux/capa de compatibilidad.
Aceptamos únicamente este tipo de relaciones públicas;
Tenemos un documento de estilo de codificación que no se sigue ni se aplica muy bien.
No utilice funciones de C++ 11 o posterior.
re3 se inició en algún momento de la primavera de 2018, inicialmente como una forma de probar el código de física y colisión inversa dentro del juego. Esto se hizo reemplazando funciones individuales del juego con sus contrapartes invertidas usando una dll.
Después de un poco de trabajo, el proyecto permaneció inactivo durante aproximadamente un año y fue retomado nuevamente y enviado a github en mayo de 2019. En ese momento, yo (aap) había invertido alrededor de 10 mil líneas de código y estimé que el juego final tendría alrededor de 200. 250k. Otros se unieron rápidamente al esfuerzo (Fire_Head, shfil, erorcun y Nick007J en orden temporal, y Serge un poco más tarde) y logramos avances muy rápidos durante el verano de 2019, después de lo cual el ritmo se desaceleró un poco.
Debido a que todos se quedaron en casa durante el inicio de la pandemia de Corona, todos tuvieron mucho tiempo para trabajar en re3 nuevamente y finalmente obtuvimos un exe independiente en abril de 2020 (alrededor de 180.000 líneas para entonces).
Después del entusiasmo inicial y de arreglar y pulir aún más el código, reVC se inició a principios de mayo de 2020 partiendo del código re3, no comenzando desde cero reemplazando funciones con una dll. Después de unos meses de progreso mayoritariamente constante, consideramos que reVC finalizó en diciembre.
Desde entonces hemos iniciado reLCS, en el que actualmente estamos trabajando.
No nos sentimos en condiciones de otorgarle una licencia a este código.
El código sólo debe utilizarse con fines educativos, de documentación y de modificación.
No fomentamos la piratería ni el uso comercial.
Mantenga el trabajo derivado en código abierto y proporcione el crédito adecuado.