怎麼確認和原版一樣
技術篇
單元測試全綠,只代表程式內部自洽。要知道和原版差多遠,得讓原版真的跑起來,用同樣的狀態和輸入比對。這些專案把比對對象設成原版 DOS 程式,比對的東西是實際交給玩家的發行包。
對拍
對拍就是把重製版和原版在同一個狀態下的畫面拿來比。原版那一側由 dosgolem 跑真的 START.EXE,直接吐出 320×200 的色號陣列。比對在色號空間做,不用隔著截圖猜。
| 作品 | 對象 | 相同 | 比例 |
|---|---|---|---|
| 光芒之池 | 標題整張 320×200 | 63,866/64,000 | 99.79% |
| 光芒之池 | 第一人稱框 88×88 | 7,744/7,744 | 100% |
| 光芒之池 | 戰鬥畫面的外框 | 9,152/9,152 | 100% |
| 青色枷的詛咒 | 第一人稱 585 種牆面配置 | 1,498/1,498 張 | 100% |
《光芒之池》標題差的 0.21% 只有重製版自己加的按鍵提示,是一個 47×7 的方框。對拍腳本會檢查基準畫面是否由 dosgolem 產生,也會拒絕比原始碼舊的發行包,以免量到上一版。《青色枷的詛咒》那 1,498 張用的是 DOSBox 跑出來的原版畫面,EGA 量化之後比 16 色索引。
覆繪路線的比對方式不同。原版程式還在跑,所以比的是「加上中文和 HD 之後,原版有沒有被影響」。《黑暗之池》在同一條路線上比對 HD、無 HD、F12 原版和 2 倍四種情況,CPU、記憶體、色號、色盤與 127 個 DOS 檔案都一致。
通關的定義
「可以破關」要講清楚是怎麼破的。
- 《光芒之池》:作者決定用產品的作弊選單(鎖 HP、一擊斃命),從標題以正常按鍵跑到結局,就算主線通關。原版那一側同樣作弊跑一次,兩邊逐段對照必經的腳本區塊與旗標。收據要數得出敵方挑人、走位、出手和命中,隊伍照樣擲命中,證明機制和 AI 都有作用。
- 《青色枷的詛咒》:連續鍵盤輸入在第 14,380 幀觸發通關。這證明輸入層走得到結局,不等於一般強度隊伍的人工完整試玩。關閉強化的跑法遇到全滅是合法結果,不算缺陷。
- 覆繪路線的幾款沒有全程通關聲明。規則是原版自己在跑,驗證重點放在中文和 HD 有沒有影響原版、走過的路線有沒有漏字。
正常路徑和捷徑要分開算
傳送、注入旗標、修改記憶體都能很快走到想測的地方,但它們證明不了玩家走得到。所以截圖和驗收都要標明來源。《黑暗之后》的洞穴畫面來自快照還原和狀態注入,就在圖說上寫明,不當成正常冷啟動的證據。
證據也分等級。逆向筆記一律標成 exact、strong inference、hypothesis 或 unknown,位址和原始位元組保留,改名只用於導覽。兩款共用同一個 opcode,不代表每個位址和副作用都相同,換一款就要重新證明。
還沒驗過的部分
- Windows 和 macOS 真機:八款都還沒有完整的真機驗收。Windows 主要在 Wine 下抽驗,macOS 多半只驗結構,也沒有 Apple 簽署或公證。
- 音訊的人耳驗收:《青色枷的詛咒》和《黑暗之后》都標明尚未完成,《黑暗之池》的新編配樂試聽也還沒做。
- 日文和韓文:未經母語者校對。
- 覆繪路線沒走到的場景:保留原版或顯示英文,不外推。
沒做過的事就寫沒做過,讀者才知道現在的狀態到哪裡。
來源:光芒之池技術總覽、光芒之池對拍報告、青色枷的詛咒 README。其餘作品的數字來自各自的專案文件(private repo)。