GBA4iOS 折腾记

GBA4iOS 折腾记_第1张图片
GBA4iOS 玩高级战争2

掌机时代玩得最多的是 GBM(这货就是 GBA 的改良版),当年无聊的高中课堂都是在光明之魂和高级战争中度过的。iPhone 时代有 GBA4iOS 这款模拟器来重温 GBA 游戏也算一大幸事。这里记录下安装方式和一个『bug』的定位过程。

美好的过去一去不返(目前只有开发者能够安装)

App Store 从来是禁止模拟器 APP 上架的,不过就算苹果让商家,任天堂的律师团也不会放过开发者吧。早期 GBA4iOS 是可以通过企业证书来分发安装的,苹果封掉这个企业证书后,用户也可以通过修改系统时间的漏洞来安装。
iOS7 苹果修复这个漏洞后,一般用户是无法安装了。还好 GBA4iOS 是开源的,开发者安装没有问题。

开发者如何安装

GBA4iOS 的源代码托管在这。官方更新代码并不及时,在最新的 iOS9 Xcode7.1 下会有两个类库和 bitcode 不兼容的错。想省事的朋友可以直接拉取 saagarjha 的这个分支 。代码拉下来 pod install 一下,导入 GBA 游戏,Enjoy!

一个『bug』的定位过程

GBA4iOS 功能界面都很完善,不过我在玩《高级战争2》的时候却碰到了一个无法容忍的 bug:

游戏中假设金钱数是 4000,这时只要切到其它应用,比如去看个微信,再切回来,游戏其它进程一切正常,金钱数就变成了 0!

这个……这个……第一反应,切到后台缓存数据的机制有很大问题啊!可也想不通为什么只是游戏中金钱这部分有问题。
真机调试试试发现每次切到后台都会调用 [[GBAEmulatorCore sharedCore] updateCheats] ,并且都会报 Warning: Codes seem to be for a different game.\nCodes may not work correctly. 警告。
顺着代码才发现每次切到后台都会 reload 金手指,注掉这行代码金钱丢失的问题神奇的好了。
这才想明白当时随手上网搜的金手指有几个是错误的,这些错误的金手指每次后台切换都会重新加载,间接导致金钱丢失(金手指原因不清楚,细节不明)。
解决方法也很简单:

删除多余的几个错误金手指,重新读取游戏,反复测试,金钱数一切正常 ;)


create time: 2015-11-09 00:16

你可能感兴趣的:(GBA4iOS 折腾记)