Emulation

為什麼在 PS1 模擬器中讀/寫儲存卡很慢?

  • October 16, 2021

自 PS1 時代以來,快閃記憶體和其他儲存的速度有了相當大的提高——現在一些模擬器在遊戲中載入“CD”時可以提供比本機更高的讀取速度(例如,PS Vita 的內置 PSPEMU 可以做到這一點)。然而,不知何故,這並沒有影響我使用的所有模擬器中讀取或寫入 PS1 儲存卡的速度。檢測儲存卡很慢,寫入很慢,讀取很慢——即使遊戲顯然沒有重新載入遊戲世界,而只是讀取了幾個數字。考慮到現代標準下 PS1 存檔的微小尺寸,它們應該立即被讀取或寫入。

我很好奇:是什麼限制了模擬器中 PS1 儲存卡的速度?

模糊地似乎遊戲正在使用卡做一些低級的電子設備,而不是委託給控制台的 API - 所以模擬器必須保留原始時間並且不能以更快的方法劫持正在發生的事情。如果這就是原因,那麼這種與儲存對話的方法在當時有多普遍?它是在 PS2 一代還是之後被引入的?

它絕對與時間有關。請記住,雖然 PS1 在當時是先進的,但按照今天的標準,它仍然是相當基本的。兩個 CD 讀取時間都是固定的,因為我們是儲存卡寫入時間。這意味著,如果開發人員願意,可以在某些讀寫操作發生時執行或啟動一些操作。開發人員可以啟動儲存卡寫入,並確切知道需要多少 CPU 週期才能完成。

實際上,可能有一個子系統是我們用來將保存數據的任何 RAM 塊寫入儲存卡的。一旦該過程完成,將呼叫一個中斷,基本上告訴單元“寫入儲存卡,完成!”。如果開發人員知道 X 循環來完成將 256 字節寫入記憶體卡 RAM 時,他們可以使用這些後台循環來預載入階段或準備 RAM 數據,以管理遊戲中接下來發生的任何事情的玩家互動。

總的來說,PS1 的時序控制非常嚴格。正因為如此,開發人員可以將其用作“技巧”來預載入數據並使遊戲整體感覺更快。這個技巧的缺點是多年後,我們不得不模仿對我們來說很慢的速度。

但是有魚子醬!顯然,索尼部分破解了花費其中一些操作而不破壞許多遊戲的程式碼。我不能代表 PS3,但有一些選項可以加快 PS2 中 PS1 遊戲的載入時間。我知道有人警告說該功能可能不適用於所有遊戲,因此索尼意識到這是一個使用者自擔風險的生活質量功能。據我所知,PS2 並沒有集成更快的記憶體保存操作,所以他們肯定知道這是一個他們不應該更改的功能(儘管 PS1 的最大寫入速度可能是該決定的一部分。)

我猜 PS1 仿真的狀態不是智能地克服某些遊戲需要特定定時正確行為的可能性所需要的狀態。我的直覺告訴我,如果在現代模擬器中實現了這樣的功能,開發人員會希望在庫中的數百個遊戲中徹底測試該功能。誠然,它可能是每個遊戲切換並保存在使用者設置中的功能,但我猜它還不是優先事項。

我建議在任何託管任何主線模擬器的 GitHub 上提出這樣的功能請求。我相信開發人員可以給你一個更具體的答案,說明為什麼故意延遲,以及克服模擬器中的問題所涉及的障礙。但是,將其作為可以在每個遊戲中設置並被認為是“實驗性”的功能提到它可能是他們有一天會嘗試實現的東西。

引用自:https://gaming.stackexchange.com/questions/391338