開發故事發表日期 thorv1.3.0
用預先執行讓按鍵反應更快
遊戲讀取按鍵後,要過一幀以上才會把結果畫到畫面上。預先執行會提前執行這些幀,讓反應更快,但計算量增加,也會更耗電。
封閉 Beta 測試
遊戲讀取按鍵後,要過一幀以上才會把結果畫到畫面上。在模擬器中還要加上顯示與輸入處理的延遲,按下後的反應可能會顯得遲緩。
預先執行會提前執行遊戲原本會晚畫出的幀。每顯示一幀,都先讓遊戲前進一幀並記住該狀態,再依設定的數量多執行幾幀,顯示更靠後的畫面,然後回到記住的狀態。按鍵結果因此提前顯示,遊戲仍一次只前進一幀。
只使用最後顯示的那一幀的聲音和震動,未顯示幀的聲音和震動會被捨棄。為避免提前執行的進度留在遊戲內存檔中,mGBA 還會另外複製即時存檔中未包含的卡帶存檔記憶體,並一同還原。倒帶紀錄和即時存檔只保留提前執行前的狀態。
代價是計算量。每顯示一幀,都要比設定的數量多執行一幀,而且每次都要儲存和讀取狀態。因此預設關閉,並且僅在 1× 時生效,因為快轉時沒有必要讓反應更快。
可提前執行的幀數依機種設定。多數最多 2 幀;超級任天堂和 Mega Drive 在實機測量成本前限制為 1 幀。任天堂 DS 和 PSP 的即時存檔有數 MiB 到數十 MiB,PSP 核心在提前執行的幀中也需要圖形處理,因此不提供。
開發過程中還發現了另一個問題。以 ares 執行的 6 個機種在畫面交接較慢時,偶爾會一次前進兩幀。預先執行必須一次只前進一幀才能正確運作,因此改為等到畫面交接完成;平時遊玩中偶爾一次前進兩幀的問題也一併消失。
尚未在實機上測量幀時間和電量的變化。
相關開發故事
- 開發故事v1.2.0封閉 Beta 測試
在遊戲中寫入遊戲內存檔
遊戲內存檔以前只在切換到背景或結束遊戲時才寫入檔案。從 1.2.0 起,資料在最後一次變更後維持 1 秒不變就會寫入。
- 開發故事v1.2.0封閉 Beta 測試
減少暫停畫面的重複處理
畫面靜止時,繪製仍可能重複進行。1.2.0 區分了需要重繪的時機,並允許先試用設定再儲存。