
简介(Intro)
在这个仓库中,你可以找到 GTA III 和 GTA Vice City 的完整逆向源代码:
- GTA III:
master分支 - GTA Vice City:
miami分支
该项目已经经过测试,可以运行在:
- Windows
- Linux
- macOS
- FreeBSD
同时支持以下 CPU 架构:
- x86
- amd64(x86-64)
- ARM
- ARM64
图形渲染
图形渲染可以使用以下两种方式:
1. 原版 RenderWare
使用 D3D8(Direct3D 8)进行渲染。
2. re3 自己重新实现的 librw
支持:
- D3D9(Direct3D 9)
- OpenGL 2.1 或更高版本
- OpenGL ES 2.0 或更高版本
也就是说,re3 并不一定需要使用原版 RenderWare,而是可以使用项目自己实现的 librw 渲染引擎。
音频
音频系统可以使用:
- MSS(Miles Sound System)
其中使用的是原版 GTA 中的 DLL 文件;
或者:
- OpenAL
其他平台移植
这个项目还被移植到了以下平台:
- Nintendo Switch
- PlayStation Vita
- Nintendo Wii U
不过,目前项目还无法编译 PS2 或 Xbox 版本。
如果你有兴趣进行 PS2 或 Xbox 移植,可以联系项目开发者。
安装(Installation)
-
re3 需要使用 PC 版 GTA III 的游戏资源才能运行,因此你必须拥有一份正版 GTA III。
-
编译 re3,或者下载最新的编译版本:
Windows
Windows D3D9 + MSS 32 位版本
适用于 32 位 Windows,使用 D3D9 渲染以及 MSS 音频系统。
Windows D3D9 64 位版本
64 位 Windows 版本,使用 D3D9 渲染。
Windows OpenGL 64 位版本
64 位 Windows 版本,使用 OpenGL 渲染。
Linux
Linux 64 位版本
适用于 64 位 Linux。
macOS
macOS 64 位 x86-64 版本
适用于使用 Intel x86-64 架构的 Mac。
安装方法
下载对应的 ZIP 压缩包后:
将 ZIP 文件中的内容解压到你的 GTA III 游戏目录中,然后运行 re3。
压缩包中包含:
- re3 游戏可执行文件
- 更新后的游戏文件
- 额外的游戏文件
- 如果使用 OpenAL,还会包含运行所需的 DLL 文件
换句话说,基本流程就是:
准备 GTA III → 下载 re3 → 把 re3 压缩包解压到 GTA III 根目录 → 运行 re3。
截图(Screenshots)




改进(Improvements)
我们对原版游戏进行了大量修改和改进。这些功能可以在 core/config.h 中进行配置。其中一些功能可以在游戏运行时切换,而另一些则不能。
-
修复了大量大大小小的 Bug
-
用户文件(存档和设置)现在储存在 GTA 游戏根目录中
-
游戏设置储存在
re3.ini文件中,而不是原版的gta3.set -
增加调试菜单,可以执行和修改各种内容(按 Ctrl-M 打开)
-
增加调试摄像机(按 Ctrl-B 切换)
-
支持旋转摄像机
-
支持 XInput 手柄(Windows)
-
不同岛屿之间不再需要读取加载画面(菜单中的 “map memory usage” / 地图内存使用量)
-
支持带骨骼的行人模型(可以使用 Xbox 或移动版的模型)
-
渲染方面:
- 支持宽屏(HUD、菜单和 FOV 均会正确缩放)
- PS2 MatFX(车辆反射效果)
- PS2 Alpha Test(改善透明材质的渲染效果)
- PS2 粒子效果
- Xbox 车辆渲染
- Xbox 世界光照贴图渲染(需要 Xbox 地图)
- Xbox 行人边缘光(Rim Light)
- Xbox 屏幕雨滴效果
- 更加自由、可自定义的颜色滤镜
-
菜单方面:
- 地图
- 更多选项
- 手柄配置菜单
- ……
-
可以加载来自其他平台的 DFF 和 TXD 文件,但可能会带来一定的性能损失
-
……
待办事项(To-Do)
以下功能如果能够实现会非常不错:
- 修复高 FPS 下的物理问题
- 改善低端设备上的性能,尤其是 Raspberry Pi 上的 OpenGL 图形层 (如果你有相关经验,请与我们联系)
- 将代码与 PS2 版本代码进行对比 (这项工作非常繁琐,而且没有好用的反编译器)
- PS2 移植版
- Xbox 移植版(重要性相对较低)
- 逆向剩余的未使用/调试函数
- 将 CodeWarrior 编译版本与原始二进制文件进行对比,以获得更加准确的代码 (非常繁琐)
Mod 支持(Modding)
资源方面的修改,例如:
- 模型
- 纹理
- 车辆操控参数
- 脚本
- 等等
在绝大多数情况下,都应该与原版 GTA 的 Mod 制作方式相同。
CLEO 脚本可以通过 CLEO Redux 工作。
但是,会修改游戏代码本身的 Mod 不会工作,例如:
- DLL / ASI Mod
- Limit Adjuster(限制调整器)
有些这类 Mod 所实现的功能已经直接集成到了 re3 中,例如:
- SkyGFX 的大量功能
- GInput
- SilentPatch
- Widescreen Fix
另一些功能则可以很容易地实现,例如提高游戏的各种限制,具体可以查看 config.h。
还有一些功能则必须重新编写,然后直接整合进 re3 的代码中。
对于因此带来的不便,我们深表歉意。
从源代码编译(Building from Source)
使用 Premake 时,如果希望通过编译后的脚本自动将可执行文件移动到 GTA III 游戏根目录,可以将环境变量 GTA_III_RE_DIR 指向 GTA III 的根目录。
首先使用 Git 克隆仓库:
git clone --recursive https://github.com/GTAmodding/re3.git
然后进入克隆下来的 re3 目录:
cd re3
项目支持多个平台,包括:
- Linux
- Windows
- macOS
- FreeBSD
使用 Premake 时,如果希望进行链接时优化(LTO,Link Time Optimization),可以使用 --with-lto 选项。
另外,config.h 中有许多可以调整的设置,建议查看这个文件。
re3 使用的是一个完全自行开发的 RenderWare 替代渲染引擎,名为 librw。
librw 作为 re3 的 Git 子模块存在,但你也可以通过 LIBRW 环境变量指定自己使用的 librw 路径。
如果有需要,也可以使用 CodeWarrior 7,通过项目自带的 codewarrior/re3.mcp 工程来编译 re3。
不过,这需要:
- 原版 RW33 库
- DX8 SDK
与 MSVC 编译版本相比,CodeWarrior 版本的构建过程并不稳定,它主要是作为参考用途。
贡献代码(Contributing)
只要不是 Linux / 跨平台框架 / 兼容层代码,仓库中所有没有被预处理器条件(例如 FIX_BUGS)包起来的代码,都是从原始游戏二进制文件中逆向出来的代码。
我们不接受自行编写的自定义代码,除非:
- 使用预处理器条件进行封装;
- 或者属于 Linux / 跨平台框架 / 兼容层代码。
我们只接受以下类型的 Pull Request(PR):
- GTA 系列至少一个游戏中已经存在的新功能 (如果 GTA III / VC 原本没有该功能,那么不要求它必须来自反编译)
- 游戏、UI 或 UX 的 Bug 修复
(如果是对原始游戏代码的修复,则应该放在
FIX_BUGS条件下) - 尚未完成逆向的平台专用代码和/或未使用代码
- 让已经逆向的代码更加容易理解或更加准确,例如: “什么样的代码才能生成与原始汇编代码相同的结果?”
- 新的跨平台框架/兼容层,或者对现有框架/兼容层进行改进
- 对原版游戏支持的语言进行翻译修正
- 能够提高代码可维护性的代码
项目拥有一份 Coding Style(代码风格) 文档,不过实际上并没有很好地遵守或强制执行。
不要使用 C++11 或更高版本的功能。
历史(History)
re3 项目大约于 2018 年春季开始。
最初,它只是一个用来测试逆向出来的碰撞和物理代码的项目。
当时的做法是:
使用 DLL,将游戏中的单个函数替换成逆向得到的对应函数。
经过一段时间的开发后,项目沉寂了大约一年。
随后项目重新启动,并于 2019 年 5 月被上传到 GitHub。
当时,作者 aap 已经逆向了大约 1 万行代码,并估计最终完整游戏大约会有 20~25 万行代码。
之后其他开发者迅速加入了项目,包括:
- Fire_Head
- shfil
- erorcun
- Nick007J
- Serge(稍晚加入)
2019 年夏季期间,项目进展非常迅速,之后开发速度有所放缓。
到了新冠疫情开始、大家普遍待在家里的时期,开发者们再次拥有了大量时间投入 re3。
最终在 2020 年 4 月,re3 成功获得了一个可以独立运行的 EXE。
当时项目已经拥有大约 18 万行代码。
在最初的兴奋期结束后,开发者继续修复 Bug、完善和打磨代码。
随后在 2020 年 5 月初开始了 reVC 项目。
reVC 并不是从零开始,也不是继续通过 DLL 替换单个函数的方式开发,而是直接以 re3 的代码为基础进行开发。
经过几个月基本稳定的开发后,团队在 2020 年 12 月认为 reVC 已经完成。
之后,他们又开始了 reLCS 项目。
当时 reLCS 仍然处于开发阶段。
许可证(License)
我们认为目前自己还没有资格为这些代码制定一个正式的许可证。
这些代码只能用于以下用途:
- 教育
- 文档
- Mod 制作
我们不鼓励盗版或商业用途。
如果你基于本项目制作衍生作品,请:
- 保持衍生项目开源
- 正确注明原作者和来源










![雷霆穹顶FM[Thunderdome FM]](https://cos.gtamodx.com/modimages/yk6baz03t0m000ddxekkjnhtr9a98vt0DIYvBIUyDwJ1DGxPAIJ0.webp)
![库鲁马警车与出租车版[移动端]](https://cos.gtamodx.com/modimages/yk6baz03t0m000ddxcmysvxxcv9b2yd6DIYvBIUyDwJ1DGxPAIJ0.webp)
![布拉瓦多S[移动版]](https://cos.gtamodx.com/modimages/yk6baz03t0l000ddx2x9wl25td42v0vgDIYvBIUyDwJ1DGxPAIJ0.webp)
