金盒子繁體中文化

怎麼確認和原版一樣

技術篇

單元測試全綠,只代表程式內部自洽。要知道和原版差多遠,得讓原版真的跑起來,用同樣的狀態和輸入比對。這些專案把比對對象設成原版 DOS 程式,比對的東西是實際交給玩家的發行包。

對拍

對拍就是把重製版和原版在同一個狀態下的畫面拿來比。原版那一側由 dosgolem 跑真的 START.EXE,直接吐出 320×200 的色號陣列。比對在色號空間做,不用隔著截圖猜。

作品對象相同比例
光芒之池標題整張 320×20063,866/64,00099.79%
光芒之池第一人稱框 88×887,744/7,744100%
光芒之池戰鬥畫面的外框9,152/9,152100%
青色枷的詛咒第一人稱 585 種牆面配置1,498/1,498 張100%

《光芒之池》標題差的 0.21% 只有重製版自己加的按鍵提示,是一個 47×7 的方框。對拍腳本會檢查基準畫面是否由 dosgolem 產生,也會拒絕比原始碼舊的發行包,以免量到上一版。《青色枷的詛咒》那 1,498 張用的是 DOSBox 跑出來的原版畫面,EGA 量化之後比 16 色索引。

覆繪路線的比對方式不同。原版程式還在跑,所以比的是「加上中文和 HD 之後,原版有沒有被影響」。《黑暗之池》在同一條路線上比對 HD、無 HD、F12 原版和 2 倍四種情況,CPU、記憶體、色號、色盤與 127 個 DOS 檔案都一致。

通關的定義

「可以破關」要講清楚是怎麼破的。

正常路徑和捷徑要分開算

傳送、注入旗標、修改記憶體都能很快走到想測的地方,但它們證明不了玩家走得到。所以截圖和驗收都要標明來源。《黑暗之后》的洞穴畫面來自快照還原和狀態注入,就在圖說上寫明,不當成正常冷啟動的證據。

證據也分等級。逆向筆記一律標成 exact、strong inference、hypothesis 或 unknown,位址和原始位元組保留,改名只用於導覽。兩款共用同一個 opcode,不代表每個位址和副作用都相同,換一款就要重新證明。

還沒驗過的部分

沒做過的事就寫沒做過,讀者才知道現在的狀態到哪裡。

來源:光芒之池技術總覽、光芒之池對拍報告、青色枷的詛咒 README。其餘作品的數字來自各自的專案文件(private repo)。