open_agb_firm 使用指南:用 3DS 内置 GBA 硬件原生运行 GBA 游戏的完整方法
【免费下载链接】open_agb_firmopen_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.项目地址: https://gitcode.com/gh_mirrors/op/open_agb_firm
把 GBA ROM 放进 3DS 的 SD 卡,开机选一下,游戏就跑起来了,存档直接写回 SD 卡。open_agb_firm 就是一个裸机程序,直接调用 3DS 芯片里自带的 GBA 硬件来运行 GBA 游戏,不是模拟器。
它适合谁
定位很明确:给已经刷了 Luma3DS 等自启固件、想"原汁原味"玩 GBA 的 3DS 用户。
- 走原生路线:跑在真 GBA 芯片上,时序、音效都来自硬件;而模拟器(mGBA、VBA)是软件翻译,两者取向不同。
- 存档直接落盘:存档写入 SD 卡,不需要虚拟主机插槽,也不占主机记忆体。
- 存档类型自动识别:自带数据库自动查表选对存档类型,少了一类最常见的存档损坏问题。
它还顺带修掉了旧版 AGB_FIRM 的"花屏"问题,与 SD 卡簇大小无关。
三步完成安装并首次运行
准备清单
- 刷好 Luma3DS 等 CFW 的 3DS
- 一张有剩余空间的 SD 卡
- GBA ROM 文件(体积超过 32 MiB 的游戏无法运行)
获取并安装
从发布包获取最新 release,解压后把open_agb_firm.firm拷到 SD 卡/luma/payloads目录;再把整个3ds文件夹拷到 SD 卡根目录,提示合并时选择合并。
首次运行验证
开机时按住 START 键,启动项里选择 open_agb_firm。成功标志是看到文件浏览器界面,翻到 ROM 所在位置点一下即可进游戏。如果只装了裸机 ROM 而没看到浏览器,检查3ds文件夹是否拷全。
把游戏跑起来:加载、截图与存档
默认按键与 GBA 一一对应:A/B/L/R/START/SELECT 就是同键位功能。三个实用组合:
- SELECT + Y:把当前画面存成 BMP,落到
/3ds/open_agb_firm/screenshots/,文件名带日期时间。 - X + UP/DOWN:按
backlightSteps步进调节屏幕亮度;X + LEFT/RIGHT直接开关背光。 - 启动时按住 X:跳过自动补丁。
默认存档写在/3ds/open_agb_firm/saves文件夹里,与 ROM 分离,换卡、整理 ROM 目录都不影响进度。
颜色发灰、手感不对?改 config.ini
配置统一存在/3ds/open_agb_firm/config.ini。
调颜色:colorProfile提供gba、gb_micro、gba_sp101、nds、ds_lite、nso、vba、identity、none九种选项,用来模仿不同机器的 LCD 观感。只调对比度、饱和度就选identity。
[video] colorProfile=gba contrast=1.1 saturation=1.0改手感:[input]段把 3DS 按键映射到 GBA 键,一条映射可以写多个键。注意映射可能带来最多 1 帧的输入延迟,所以默认不再提供摇杆映射。
[input] UP=UP,CP_UP DOWN=DOWN,CP_DOWN LEFT=LEFT,CP_LEFT RIGHT=RIGHT,CP_RIGHT摇杆的CP_UP等代表 Circle-Pad,TOUCH代表任意触摸。
进阶定制:单游戏存档、补丁与 EEPROM 修复
按游戏定制:每款游戏可在/3ds/open_agb_firm/saves里放一个与 ROM 同名的 INI,手动指定存档类型,覆盖自动检测。
[game] saveSlot=1 saveType=flash_512k_sst想手动选就打开saveOverride=true,选完游戏后会弹出存档类型菜单。
自动补丁:IPS/UPS 补丁文件改成和 ROM 同名(example.ips对应example.gba)即自动应用,改版、汉化都能直接用。
EEPROM 修复:模拟器存进来的 EEPROM 存档多半读不了,因为两者格式不通用。用社区工具 gba-eeprom-save-fix 转换一下即可,反向转换也支持。
故障速查
| 现象 | 原因 | 解决 |
|---|---|---|
| 游戏存档丢失或异常 | 存档类型选错。官方游戏靠数据库自动识别,改版和自制游戏走自动检测,容易出错 | 单游戏 INI 里手动指定saveType,或开saveOverride |
| 模拟器存档读不进来 | EEPROM 存档格式与 open_agb_firm 不一致 | 用 gba-eeprom-save-fix 转换 |
| 颜色发灰发淡 | 3DS 的 LCD 出厂未校准 | 设colorProfile=gba,再微调contrast/saturation |
| 声音有杂音 | GBA 芯片的硬件问题,无软件解法 | 调低volume或换耳机 |
| 换游戏需要重启 | 硬件限制,不能热切换 | 按电源键重启重进 |
| 截图后画面卡住 | 已知 bug | 按 HOME 键恢复 |
给想深入的人
架构上是个双核固件:ARM9 只做占位待机,真正的文件浏览、画面转换、补丁全部跑在 ARM11。想读源码看 source/arm11/;补丁逻辑在 source/arm11/patch.c;存档数据库由 tools/gba-db/ 里的脚本生成。
编译需要 devkitARM 工具链加firm_builder/firmtool,make出调试版,make release出发布包,产物就是那个.firm文件。项目采用 GPL v3 许可,近期仍在活跃维护,提过文件浏览路径修复、存档数据库更新等改动。遇到新 bug 直接给仓库提 issue 即可。
下一步
如果你的 3DS 已经刷好机,把 ROM 拷进 SD 卡、按 START 启动 open_agb_firm,两三分钟就能看到第一帧画面。
【免费下载链接】open_agb_firmopen_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.项目地址: https://gitcode.com/gh_mirrors/op/open_agb_firm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考