掌機時代玩得最多的是 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