N-EMU · 懷舊遊戲模擬器v0.9.13贊助開發者
開發故事發表日期 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。此外還新增了一項檢查,確認每種機型實際輸出的畫面不超過所記錄的尺寸——加進去的那一刻就抓出了這個問題。

  1. 開發故事v0.9.11

    與任天堂 DS 相似的摺疊螢幕

    摺疊螢幕展開後可以把螢幕分成兩塊使用,任天堂 DS 同樣有兩塊螢幕。利用這一相似結構,在展開的螢幕上像掌機本體那樣把上螢幕放大,並把觸控螢幕放在方向鍵與按鍵之間。

  2. 開發故事v0.2.0

    把多個機種放進一個 App

    連接多個模擬器核心,讓不同機種的遊戲也能在同一個遊戲庫選擇和管理存檔。

返回清單支援主機與功能

支持 N-EMU 開發

歡迎支持 N-EMU 的開發。支持款項將用於開發者帳號、測試裝置,以及持續改善 App。是否支持不會影響可用功能。