open_agb_firm 使用指南:用 3DS 内置 GBA 硬件原生运行 GBA 游戏的完整方法
2026/8/24 21:31:27 网站建设 项目流程

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提供gbagb_microgba_sp101ndsds_litensovbaidentitynone九种选项,用来模仿不同机器的 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/firmtoolmake出调试版,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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询