luispolis124/ts3ds_decomp
GitHub: luispolis124/ts3ds_decomp
NDS平台《模拟人生3》的字节级精准匹配反编译项目,旨在通过逆向工程重建游戏源代码以实现数字保存、模组支持和未来跨平台移植。
Stars: 1 | Forks: 0
# ts3ds_decomp
这是一个针对任天堂 DS 平台 **模拟人生 3** 的“正在进行中”的字节级精准匹配反编译与逆向工程项目。
本项目的主要目标是分析、记录并保存游戏的内部机制,从而为未来的模组开发支持、原生重编译和平台移植提供可能。
## ⚖️ 法律免责声明与资产政策
**模拟人生 3** 是 Electronic Arts Inc. 的注册商标。
本仓库**不分发**任何受版权保护的游戏资产、专有代码、二进制转储或 ROM 文件。要使用本项目,您必须提供合法获取的游戏副本。所有资产均在用户本地计算机上进行提取,以符合版权法。
本项目的创建严格用于:
* 数字保存
* 互操作性研究
* 教育与逆向工程目的
## 🛠️ 推荐工具
要参与研究或构建本项目,推荐使用以下环境:
* **Ghidra**(v12.1+,配置为 `ARM:LE:32:v5t`)
* **melonDS**(用于实时 RAM 调试和模拟)
* **devkitARM**(用于编译 Nintendo DS 二进制文件的 GCC 工具链)
* **Visual Studio Code**(用于 C/ASM 开发)
* **Git**(用于版本控制)
## 📁 仓库结构
```
ts3ds_decomp/
├── asm/ # Undecompiled ARM assembly code (.s files)
├── src/ # Reconstructed C source code (.c files)
├── include/ # Hardware definitions, game structures, and headers (.h files)
├── docs/ # Technical notes, file format specifications (.gbf, etc.)
├── research/ # Ghidra analysis databases and reverse engineering logs
├── tools/ # Asset extraction, checksum verification, and build utilities
└── build/ # Temporary compilation output (ignored by Git)
```
## 🔄 项目流程与资产流水线
与标准的自制软件不同,现代反编译项目将逻辑与数据分离开来。该工作流程遵循严格的安全流水线:
```
[ User's Legal ROM ] ──► [ Extraction Scripts ] ──► [ Local Unpacked Assets ]
│ (Never committed)
[ Reconstructed C ] ──► [ devkitARM Compiler ] ──► [ Rebuilt Target Binary ]
│
▼
[ SHA-1 Verification ] ◄────────────────────────────────────────┘
```
### 🧰 自动化实用工具 (tools/)
* extract_assets.py:解包游戏文件系统,拆分 arm9.bin 和内部资产包等组件。
* verify_checksum.py:将编译后的二进制文件与原始 SHA-1 哈希值进行验证,以确保 100% 的精确度。
## 📈 项目状态
* [x] 环境搭建与工具链定义
* [ ] ROM 文件系统映射与资产提取工具
* [ ] 核心引擎初始化(main.c / Loop 入口分析)
* [ ] 子系统反编译(图形、音频、存档状态管理)
* [ ] 实体与模拟逻辑仿真匹配
* [ ] 现代平台重编译目标
## 🔍 匹配与验证系统
实现**匹配反编译**意味着在 `src/` 中编写的 C 代码编译后,必须生成与 2010 年原版零售卡带完全相同的字节序列。这种准确性在构建过程中通过比较生成二进制文件片段的加密签名(MD5/SHA-1)来进行验证。
## 💾 推荐的 .gitignore
```
# Nintendo DS ROMs 和 Saves
*.nds
*.sav
*.bin
# Local Asset Dumps
assets/
dump/
baserom/
*.gbf
# Build 和 Object 输出
build/
out/
bin/
*.o
*.obj
*.elf
# Ghidra 项目数据库
*.gpr
*.rep
*.gpr.lock
# IDE 和 OS 缓存
.vscode/
.DS_Store
Thumbs.db
__pycache__/
*.pyc
*.log
tmp/
```
## 💬 注意事项
本项研究中的部分文档、仓库结构和描述可能是由 AI 模型(如 Google Gemini)协助生成的。所有技术数据、结构验证和反编译逻辑均由仓库所有者严格审核与管理。
## 🤝 贡献
我们非常欢迎有关函数映射、数据结构文档以及 ASM 翻译方面的贡献。请确保您的 Pull Request 中**不包含任何专有资产**。
标签:Ghidra, URL提取, 云资产清单, 任天堂DS, 反编译, 数字保存, 游戏, 网络安全研究, 逆向工具, 逆向工程