GBA 模拟器 gpsp 移植 fx-CG100,带 JIT 加速
又是 Codex + Claude Code 一起 Vibe Code 的结果~
gpsp 原生的解释器版本性能不够,在羸弱的 SH-4 上基本跑不动。所以直接大力出奇迹,烧了 100M Claude token(顺便烧光了 Fable 5 的周额度) + 1 Billion GPT 5.5 token 搞了一个 targetting SuperH SH-4 架构的 ARM7TDMI JIT(如此复杂的项目,真的难以想象用 AI 只要一两周就做完了……)
Claude Fable 5 确实在修复各种 JIT 导致的 bug 以及优化 JIT 性能上要更强。看上去主要是因为 Fable 5 懂得更好地利用 emulator,harness 做得更好。
能实现以 30 ~ 60 fps 运行各类 GBA 游戏,如高级战争、塞尔达四人之剑、逆转裁判、密特罗德等。跳帧后部分游戏甚至能原速运行。当然如果 ROM 是 16 MiB 的那就完全塞不下了( <del> 比如宝可梦红蓝绿宝石、火红叶绿 </del> 实际上只要把 ROM 的 padding 去掉就可以塞得下了!当然需要扩容到 16 MiB
基本信息:
- 按 ON 键呼出菜单。菜单基本照抄 gpsp for NSpire。
- 默认键位为 OK 键对应 A,CATALOG 键对应 B,PrevTab 对应 L,NextTab 对应 R,PageUp 对应 Select,PageDown 对应 Start。
- 支持键位重映射。
- 不支持声音输出。
- 支持快速保存(注意首次创建存档比较慢)。
- 支持原生 1:1(240×160)、4:3(320×212,保留原始比例)、全屏(384×216,横向有 1.2 倍拉伸)三种分辨率。支持 CRISP / SHARP / SMOOTH 三种插补方式。
- 支持自制 ROM(非对齐页表)。
Ptune4 能有效提升游戏体验,不过用用默认 Preset 就好,不然还挺容易出现 bit flip 之类的问题。
新增 fx-CG50 支持。
下载:
https://github.com/KaraRyougi/gpsp-sh4-jit/releases
话说怎么调AI的 五体投地 能否像gbc模拟器一样,压缩游戏rom体积 国外这么多年都没有出gba模拟器,大佬全球首发 嘿嘿 发表于 2026-7-8 10:39
国外这么多年都没有出gba模拟器,大佬全球首发
几个月前就有了:https://www.planet-casio.com/Fr/programmes/programme4632-1-fxgba-lightmare-jeux-add-ins.html CalcLoverHK 发表于 2026-7-8 14:19
几个月前就有了:https://www.planet-casio.com/Fr/programmes/programme4632-1-fxgba-lightmare-jeux-ad ...
区别大不大呀,哪个性能好? BCX74687 发表于 2026-7-7 20:07
话说怎么调AI的
- 用的是 Max Plan,Opus 4.8 开 Ultracode。
- 多用 /goal /loop。
- 先基于 https://github.com/Heath123/casio-emu 造了一个足够逼真的模拟器,让 AI 可以用模拟器来验证正确性。当然写 JIT 的时候也会改一些模拟器的 API 之类的来方便 harness。 我看了一眼代码,发现你只给CG50开了Bfile_GetBlockAddress。这个syscall在OS 2.00.X202版本的等效地址是0x80333cf2。 CalcLoverHK 发表于 2026-7-9 14:07
我看了一眼代码,发现你只给CG50开了Bfile_GetBlockAddress。这个syscall在OS 2.00.X202版本的等效地址是0x ...
嗯嗯,CG100 其实也用了 NOR Flash Mapping / GetBlockAddress,确实就是 direct call to ROM address 0x80333cf2。是参考了您的 Prizoop fx-CG100 移植。 嘿嘿 发表于 2026-7-8 14:42
区别大不大呀,哪个性能好?
那肯定是我这个性能好……上面那个能不能运行某些 ROM 都是个问题…… 朔雪X忆 发表于 2026-7-9 13:53
- 用的是 Max Plan,Opus 4.8 开 Ultracode。
- 多用 /goal /loop。
- 先基于 https://github.com/Heath1 ...
豪啊,没钱只能用free plan{:13_322:} 嘿嘿 发表于 2026-7-8 10:36
能否像gbc模拟器一样,压缩游戏rom体积
现在性能依然是瓶颈,再解压缩就更慢了。
但是 GBA ROM 可能有 padding,做了一个把 padding 去掉的网页:
https://kararyougi.github.io/gpsp-sh4-jit/、
这样就能把宝可梦绿宝石从 16.00 MiB 变成 14.24 MiB,然后就能塞进机器了。
页:
[1]