lhsazevedo/tbg-decomp
GitHub: lhsazevedo/tbg-decomp
首个公开的 Dreamcast 游戏反编译项目,通过定制的 SH4 模拟器和功能等价测试框架对 Tokyo Bus Guide 进行逆向工程与二进制重建。
Stars: 32 | Forks: 2
# Tokyo Bus Guide 反编译
[](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/actions/workflows/test.yml)
[](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/actions/workflows/build.yml)
[](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/actions/workflows/build_matching.yml)


_没错,[这是一个真实的文件](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/blob/88fb8f87500f9474780cd9a0f7dafa00b14b0be7/src/010080_main.c)!_
## 简介
欢迎来到首个公开的 Dreamcast 游戏反编译项目,该项目针对经典游戏 Tokyo Bus Guide!我们的目标是完全反编译代码,侧重于功能等效而非字节级匹配。该项目是一项协作努力,旨在推动 Dreamcast 逆向工程的发展。
## 方法
与传统的字节级匹配不同,我们使用定制的 [SH4 对象模拟器和测试框架](https://github.com/lhsazevedo/sh4objtest) 来测试反编译的函数与其原始对应函数,确保它们的行为完全一致。
## 项目状态

本项目正在进行中,并会定期更新。它目前处于可重定位状态,这意味着原始代码可以在内存中移动,从而允许进行诸如数据修改等编辑,而无需担心长度变化。也可以使用已有的反编译函数重新编译二进制文件。
### 当前成就:
- 使用反编译函数与原始代码一起重新构建二进制文件。
- 来自反编译 C 文件的自定义日志,写入 Dreamcast 串行接口和屏幕调试文本:
- [观看捕获](https://twitter.com/lhs_azevedo/status/1777558619480867048)
- [查看代码](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/blob/7cbc8608b7a7568db8e26e9c9302b8a6f983460e/src/011120_asset_queues.c#L1186-L1197)
- 包含匹配构建、非匹配构建和单元测试检查的 CI 工作流。
## 如何贡献
欢迎您的贡献!要开始参与,请参阅[项目设置](docs/setup.md)中的项目设置说明。详细的贡献指南将很快推出,为您提供有效参与本项目所需的所有信息。目前,您可以查看 [CI 工作流](https://github.com/lhsazevedo/tokyo-bus-guide-decomp/tree/main/.github/workflows) 以了解测试是如何执行的。
## 实用资源
- Marcus Comstedt 的 [Dreamcast 编程](https://mc.pp.se/dc/)
- [Flycast 源代码](https://github.com/flyinghead/flycast)
- [我那简陋的 Flycast 调试器](https://github.com/lhsazevedo/flycast/tree/dbgnet)
- Dreamcast SDK
标签:CI/CD测试, Dreamcast, ffuf, Object Simulator, ROM Hacking, SH4架构, URL提取, 世嘉Dreamcast, 东京巴士指南, 主机游戏, 云资产清单, 代码还原, 反编译, 复古游戏, 怀旧游戏, 模拟器测试, 汇编, 游戏修改, 游戏逆向, 源码重构, 软件安全研究, 逆向工程