SuperAPI AI 工具集

mgba-scripting

通用与其它

查看项目

更新于 10-15 20:13

技能介绍

用途:mGBA 自 0.10 版起内置脚本功能,目前仅支持 Lua,可用于游戏自动化、内存修改(金手指)、帧级回调、输入操控、存档管理和 ROM 读取等。入口为菜单 Tools → Scripting...,打开控制台后可加载并运行 Lua 脚本。

主要能力:顶层对象包括 emu(核心适配器,加载游戏后可用)、C(导出常量)、callbacks(回调管理)、console(控制台输出)、util(工具函数)、socket(TCP 套接字)。核心 API 覆盖 ROM 操作(loadFile、getGameTitle、getGameCode、romSize、platform、checksum)、存档(saveStateFile、loadStateFile、saveStateSlot/loadStateSlot、saveStateBuffer)、帧控制(runFrame、step、currentFrame、frameCycles、frequency)、输入(setKeys、addKeys、clearKeys、getKey、getKeys,常量如 C.GBA_KEY.A、C.GB_KEY.UP)、内存读写(read8/16/32、readRange、write8/16/32)以及内存域访问(如 emu.memory["wram"]、["cart0"],可读取 base、bound、size、name)。还支持 ARM 与 Game Boy 寄存器读写(readRegister/writeRegister)。回调类型有 frame、start、reset、shutdown、crashed、keysRead、savedataUpdated、sleep、stop、alarm 等。socket 提供 tcp、connect、bind、listen、accept、send、receive、hasdata、poll、事件回调,常量中列出平台、存档标志(SCREENSHOT、SAVEDATA、CHEATS、RTC、METADATA、ALL)与套接字错误码。console 可输出 log/warn/error,并可创建 TextBuffer 显示信息。

使用方式:在脚本控制台中编写 Lua,注册回调(如 callbacks.add("frame", function() ... end)),在帧回调里读写内存、模拟按键或保存状态。资料提供金手指、自动刷取、RAM 监视、自动存档、截图、RNG 修改、速度通关计时、TAS 输入录制回放等示例。

限制与注意:socket connect 为阻塞调用;部分游戏按键轮询方式不同,建议用 addKeys 而非 setKeys;按键使用后应 clearKeys 避免保持按下;地址需自行用内置作弊搜索或内存查看器确认;资料未提供收费、版本兼容性或性能等信息。