開發故事發表日期 Thor's Workshopv0.9.13
寫錯的一個數字
世嘉創世紀的遊戲在 Android 上完全無法執行。原因是一個數字:畫面高度被記錄得比實際少十六行。層層檢查都沒能發現,持續了數月。
發佈前開發記錄N-EMU 支援十一種機型。每種機型的畫面尺寸都不同,因此這些數字集中放在一處,由 iOS 和 Android 共同讀取。寫一次就不會兩邊不一致——當初是這麼想的。
世嘉創世紀那一欄寫的是 320x224,而核心實際給出的畫面是 320x240,多出十六行。
Android 會依據那個數字建立存放畫面的容器。容器少了兩萬位元組,畫面放不進去,只留下「Native engine error 7」。世嘉創世紀的遊戲一格也沒有畫出來。
iOS 沒有問題。它不會把畫面複製進容器,而是直接在畫面所在的位置繪製,所以即使尺寸記錯也傷不到它。
沒能發現的原因就在這裡。iOS 的檢查早就知道世嘉創世紀會輸出 224 行或 240 行,並且寫成兩者都接受。知道真相的一方不會受傷,會受傷的一方卻沒有檢查。兩邊的檢查都是綠燈。
發現它靠的不是運氣而是順序。清點實機上究竟執行過什麼之後,發現有六種機型一次也沒有啟動過。為了在沒有遊戲的情況下也能驗證,製作了測試卡帶,在平板上逐個執行,輪到世嘉創世紀時出現了錯誤。
數字已改為 320x240。遊戲即使選擇 224 行模式也能容納其中,畫面比例也恢復為與實機相同的 4:3。此外還新增了一項檢查,確認每種機型實際輸出的畫面不超過所記錄的尺寸——加進去的那一刻就抓出了這個問題。
相關開發故事
- 開發故事v0.9.11
與任天堂 DS 相似的摺疊螢幕
摺疊螢幕展開後可以把螢幕分成兩塊使用,任天堂 DS 同樣有兩塊螢幕。利用這一相似結構,在展開的螢幕上像掌機本體那樣把上螢幕放大,並把觸控螢幕放在方向鍵與按鍵之間。
- 開發故事v0.2.0
把多個機種放進一個 App
連接多個模擬器核心,讓不同機種的遊戲也能在同一個遊戲庫選擇和管理存檔。