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, 反编译, 数字保存, 游戏, 网络安全研究, 逆向工具, 逆向工程