【免费下载链接】zelda-tmc-3ds
Native Nintendo 3DS port of The Legend of Zelda: The Minish Cap based on Project Picori
zelda-tmc-3ds是《塞尔达传说:迷你帽》(The Minish Cap)的 Nintendo 3DS 原生双屏移植版,基于 Project Picori 反编译引擎。它内置了一套面向普通玩家的"取证"机制:游戏中随时按下L + R + A,即可暂停并一键生成包含截图、内存、运行状态的诊断 Dump 包,配合内置的Load State检查点,能让开发者在几秒内复现你遇到的问题——这是你高效报 Bug 的最强工具。
如何触发 L+R+A 一键诊断 Dump
遇到崩溃、画面错乱、掉帧或任何异常时,只需同时按下三个按键:
L + R + A触发后会发生什么?
- 游戏立即暂停(音频也同步暂停,不会丢失任何一帧状态);
- 屏幕上短暂显示
DUMP SAVED确认提示; - 全部诊断数据写入 SD 卡的:
sdmc:/3ds/The Minish Cap 3DS/dumps/组合键的检测逻辑非常直接,在 platform_3ds.c 中判断KEY_L | KEY_R | KEY_A是否同时按住,确认后由主线程调用Port_PPU_3DS_WriteQuickDump(见 port_ppu_3ds.c)完成同步写盘。
Dump 文件夹的命名规则
- 新会话按序号命名:
000-dump-YYYYMMDD-HHMMSS、001-dump-YYYYMMDD-HHMMSS…… - 序号跨重启、跨改时间仍然递增,清空 dumps 文件夹后从
000重新开始; - 旧版
dump-*命名的历史 Dump 依然受支持。
Dump 包里有什么:完整证据清单
一次 Dump 不是简单截图,而是一个"现场封存包"。打开对应文件夹,你会看到:
| 文件 | 内容 |
|---|---|
top-screen.bmp/bottom-screen.bmp | 上屏(400x240)、下屏(320x240)显示画面截图 |
top-screen.raw/bottom-screen.raw | 物理 framebuffer 原始捕获,用于像素级比对 |
ewram.bin/iwram.bin/vram.bin | GBA 主内存、I 区内存、显存快照 |
oam.bin/palettes.bin/io-registers.bin | 精灵对象、调色板、I/O 寄存器 |
main-state.bin/room-controls.bin | 游戏主状态机与房间控制数据 |
save-state.bin/load-state.bin | 当前存档 +经过校验的可回档检查点 |
info.txt | 人类可读的诊断报告 |
GPU 渲染模式下还会额外附带io-per-line.bin、dispcnt-per-line.bin、affine-ref.bin等寄存器快照(写入逻辑见 port_ppu_3ds.c)。
info.txt则是一份结构化报告,涵盖四大板块:
- [System]机型(New/Old 3DS)、CPU 频率档位、内核版本、ROM 区域等;
- [Lifecycle and input]按键状态、摇杆数据、APT 生命周期;
- [Cadence]实测 FPS、帧间隔分布、自适应跳帧统计;
- [Renderer]PPU 各核心渲染耗时、GPU 负载、音频缓冲健康度。
这份报告的字段定义集中在 port_ppu_3ds.c,开发文档摘要见 platform/3ds/README.md。
用 Load State 检查点一键复现 Bug 现场
游戏类 Dump 还会附带一个经过校验的load-state.bin检查点。开发者收到你的 Dump 后,可以直接回到出问题的那一帧继续调试,而不用从存档点一路重玩。
如果你自己是开发者,也可以用它来验证最近一次 Dump:
Settings > Developer > Load State加载器会自动选择最新的编号文件夹(或旧版dump-*文件夹),并会:
- 弹出确认对话框;
- 自动拒绝损坏的检查点,以及用不同 ROM 区域(EU/USA)生成的检查点;
- 兼容只含
save-state.bin的旧 Dump(从存档点恢复,而非精确现场)。
相关实现见 port_dump_state_3ds.c 与 port_dump_state.h。
高效报 Bug:一份标准模板 📋
README 明确建议:报 Bug 时请尽可能附上 Dump。一份能一次通过的问题报告通常包含:
- 版本号:
Settings或标题界面显示的 port 版本; - 机型:New 3DS 还是 Old 3DS;
- ROM 区域:EU / USA;
- 复现步骤:从进入游戏到出问题的最短路径;
- 期望 vs 实际:你看到什么、你预期什么;
- 诊断 Dump:把
dumps/下对应编号文件夹整个打包附上。
⚠️ 分享前请先审查 Dump 内容:它包含内存快照,可能含有你的存档数据与其他敏感信息。
开发者视角:主机端的自动 bugreport 🛠️
除了掌机端的一键 Dump,主机(PC)构建还有独立的取证通道:
- 按F9手动触发
Port_BugReport_Capture; - 程序崩溃时自动捕获,附带 backtrace;
- 生成
./bugreport_<timestamp>/目录,内含screenshot.png(240x160 GBA 画面)、save.bin、state.txt(版本/区域/坐标/原因)、backtrace.txt(仅崩溃时)。
接口定义见 port_bugreport.h,触发入口在 port_bios.c。reason参数会区分手动捕获(user)与自动捕获(如crash:SIGSEGV@0x...),方便排查时一眼分辨证据来源。
相关文档与代码位置
| 资源 | 说明 |
|---|---|
| README.md | 诊断 Dump 与 Load State 官方说明 |
| platform/3ds/README.md | 掌机端诊断细节与性能配置 |
| src/port/port_bugreport.h | 主机端 bugreport 接口 |
| docs/ARCHITECTURE.md | 架构与仓库结构总览 |
| docs/DEVELOPMENT.md | 构建、格式化与验证流程 |
小结:遇到问题不要只描述"我卡住了"——按下L + R + A,把生成的 Dump 文件夹连同版本、机型、复现步骤一起提交,开发者就能通过Load State直接回到你的"案发现场"。这就是 zelda-tmc-3ds 诊断 Dump 系统的价值:把模糊的 Bug 描述,变成可复现、可调试的硬证据。
【免费下载链接】zelda-tmc-3ds
Native Nintendo 3DS port of The Legend of Zelda: The Minish Cap based on Project Picori
相关推荐
Wide、Original还是Stretch?zelda-tmc-3ds宽高比与三种滤镜设置终极指南
Wide、Original还是Stretch?zelda tmc 3ds宽高比与三种滤镜设置终极指南 zelda tmc 3ds 是基于 Project Pic
zelda-tmc-3ds仓库地图:engine、port与platform/3ds三大目录的职责边界一次讲清
zelda tmc 3ds仓库地图:engine、port与platform/3ds三大目录的职责边界一次讲清 zelda tmc 3ds 是一个基于 Proj
一个人+AI做3DS移植是什么体验?zelda-tmc-3ds开发者亲述Codex与Claude Code工作流
一个人+AI做3DS移植是什么体验?zelda tmc 3ds开发者亲述Codex与Claude Code工作流 开源项目 zelda tmc 3ds 是《塞尔
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考