昨天ChisFlash群友讨论为什么缩小帽等游戏的休眠无法使用,本着精益求精的原则研究了修复方法
使用No$gba或者其它调试工具打开游戏,进入睡眠模式
此时反汇编堆栈为:
[此处应有图片]
停留在 显示 "swi 3h ;Stop/Sleep" 的命令上
往上8行左右,会发现
movs r1, 0C0h
lsls r1,r1,6h
这样的命令,关键在0C0h这个值,movs r1, 0C0h的地址为0x08056108,
转化为物理地址(一般去掉前面两位就是了)0x56108
用HEX文本编辑器打开ROM,把0x56108这个位置的C0改成40,保存即可修复
[此处应有图片]
如果还未修复,可能是GBA改装高亮屏的OSD按键和休眠冲突,可以考虑切断改装屏幕和GBA主板的按键飞线
带图片的教程:https://docs.qq.com/doc/DVkFSUW5ESFNqZnp5
参考资料:https://web.archive.org/web/20180904111600/https://ezflash.sosuke.com/viewtopic.php?f=16&t=12662
上一篇:
GB/GBC汉化经验分享之十二--《圣剑传说》的汉化思路下一篇:
求教一个Switch 日版面联的问题。