PCSX-Redux 把模擬器的內部攤開:PS1 逆向工程用得到的免費工具箱
摘要
PCSX-Redux 是 PCSX 的開源分支,拿掉外掛架構改成單一程式庫,再把除錯設施一次補齊:GDB 服務、Ghidra 對接、腳本介面與 VRAM 檢視器。它沒有版本號,各平台發的是主幹的滾動快照。
推薦- 軟體名稱
- PCSX-Redux
- 版本
- 20261021
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsLinuxmacOS
- 更新時間
- 2026-10-21 15:58
市場上不缺 PS1 模擬器,缺的是能讓人看清楚內部在做什麼的那一種。PCSX-Redux 把手術台擺了出來:反組譯、記憶體、VRAM、中斷點、腳本,想弄明白一台 PlayStation 到底在跑什麼的人,都能在裡面找到對應的視窗。
它沒有版本號
先講一件在軟體介紹裡少見的事:這個專案沒有可以寫進標題的版本號。倉庫裡既沒有正式發布,也沒有打任何版本標籤,Windows、Linux、macOS 的發行檔都是跟著主幹滾動的開發快照。官方按平台給了五個包:Windows 64 位元、Windows 64 位元命令列版、Linux 64 位元與 arm64 兩種、以及 macOS 的 Apple Silicon 版。
滾動發行的代價是沒有「穩定版」可以依靠,好處是拿到手的永遠是最近的程式碼。這類專案的活躍度只能從提交紀錄看,而它的主幹幾乎每天都在動。
它是 PCSX 的分支
倉庫的自述寫得很直接:這是一套圍繞 PS1 開發與逆向工程建立的集合,裡面裝著工具、研究資料、硬體設計與程式庫;而核心產品 PCSX-Redux 本身,是經典 PS1 模擬器 PCSX 的又一個分支。
專案以 GNU 通用公共授權第 2 版發行,主語言是 C++,倉庫星標一千餘、派生一百五十餘,從 2018 年底開始維護。放在模擬器這個圈子裡,這個體量不算大,但換來的是一套相當完整的除錯設施。
五條目標,其實指向同一件事
README 把目標列成五條,讀完會發現它們是一件事的不同側面:把程式庫帶到更新的標準上;拿掉外掛架構,做成統一的單體程式庫來處理模擬的全部環節;把一切建在 OpenGL3+ 與 ImGui 之上,換取可攜性與可讀性;改善除錯體驗;改善繪製體驗。
外掛架構在上一個時代是主流做法,好處是各部件能單獨替換,代價是跨部件的狀態永遠對不齊:圖形外掛拿不到 CPU 那邊的時序細節,除錯器想同時看兩條線就得自己搭橋。做成單體之後,除錯器與模擬核心共享同一份記憶體視圖,中斷點可以同時讓兩條線停住——這才是「可讀」的實際含義。
介面與繪製統一壓到 OpenGL3+ 與 ImGui 上,則解釋了它為什麼長得不像一台遊戲機,而像一件開發工具:視窗可以任意停駐、可以同時開好幾個面板、面板之間的資訊能互相引用。

選單列就是一塊儀表板
官方手冊的選單章節值得細看,因為它把「這台模擬器給誰用」寫得毫不含糊。選單列常駐顯示四組狀態:CPU 模式、遊戲 ID、ImGui 的畫面更新次數、以及訪客畫面更新次數,外加以毫秒與畫格計的音訊緩衝大小。手冊特別註明,那個 ImGui 的數字不是 PS1 內部的畫面速率,只是介面自己的更新速度。
真正有意思的是「訪客畫面速率」的定義:它統計被模擬的軟體每秒移動多少次顯示起點,也就是遊戲翻轉緩衝區的方式。按一幀內的模擬垂直同步來計,視視訊設定取 50 或 60;當同一塊緩衝一直留在畫面上時它讀 0——交錯掃描、單緩衝的遊戲、以及部分暫停畫面都會這樣。讀 0 不等於卡死,這一點手冊專門提醒過。
兩個畫面計數與音訊緩衝只在模擬執行時出現,否則選單列就顯示「Idle」。一個把「閒置」與「執行中」分得這麼清楚的介面,顯然不是給插上光碟就玩的人準備的。
除錯這條線鋪得很全
說明站把除錯拆成幾塊:與 PCSX-Redux 配合的 GDB 服務、把 Ghidra 接進來、中斷點、內嵌組譯、記憶體與暫存器的讀寫。也就是說,外面那些成熟的逆向工具可以直接連上來,把它當成一台可以被除錯器附著的 PS1。
再往下一層是腳本。專案內建 Lua 介面,手冊裡開了一整支:載入程式庫、基礎的 Redux 介面、繪製、檔案讀寫、建構光碟映像、套用 PPF 修補、記憶體與暫存器、擴充卡、事件、中斷點、內嵌組譯、處理 PSX 二進位檔。連「建構光碟映像」和「套用修補」都做進腳本層,意味著改一張盤的流程可以寫成可重複執行的腳本,而不是每次手動點。
另有两塊是可視化:VRAM 檢視器與 GPU 日誌。前者看的是那 1MB 視訊記憶體裡到底被寫成了什麼,後者記錄繪製命令。對於要弄清某個畫面為什麼長成那樣的人,這兩塊往往比中斷點更省時間。
OpenBIOS 與硬體目錄
倉庫裡還有兩樣東西值得單獨說。一是 OpenBIOS:一個 MIPS R3000A 的 BIOS 實作,可以在沒有零售 BIOS 的情況下啟動 PS1 軟體——面向的是自製程式與開發場景。二是 hardware 目錄,裡面放著若干可用於 PS1 的硬體設計;另有 wiki 目錄收納與模擬器本身沒有直接關係的研究資料。
這兩塊說明專案的定位比「模擬器」寬:它同時是一個關於 PS1 的資料庫與實驗台。對做自製軟體的人來說,能在真實硬體與一個可除錯的模擬環境之間來回切換,是很實際的便利。

適合哪些人
把它當普通模擬器用,會看到一堆用不上的面板;反過來,想弄清一段 PS1 程式碼在做什麼、某張貼圖是怎麼拼出來的、某個畫面為什麼會抖,它幾乎是現成的一整套環境。免費、開源、跨三個平台,這幾點讓它成為學習與研究的低門檻入口。
需要提醒的是,模擬器本身只提供執行環境,遊戲映像與零售 BIOS 的取得應當遵守當地法律與著作權規定;專案面向開發與逆向研究,官方給的社群入口也分成「只談這個模擬器」與「談 PS1 開發與逆向工程」兩個。
PCSX-Redux 的價值不在相容性清單的長短,而在它願不願意把內部打開:從選單列那幾行狀態,到 GDB 與腳本介面,再到 VRAM 與繪製日誌,每一處都假設使用者想看清楚,而不是只想玩。這類工具平時不顯眼,真要做點研究時,能省下的時間是以天計的。