
ProjectPSX 是原始 Sony Playstation (Playstation 1/PS1/PSX) 的 C# 編碼模擬器
這是一個個人項目,旨在了解硬體和模擬器的開發。
ProjectPSX 不使用任何外部依賴項,並使用相當簡單的 C# 程式碼。
目前已實施以下內容:
未實現的內容(但應該......):
注意:運行模擬器需要有效的 PlayStation Bios。 SCPH1001.BIN 是開發中的預設 BIOS,但據報導其他一些如 SCPH5501 或 SCPH7001 也可以工作。
沒有相容性列表。儘管有些遊戲可能會出現隨機問題,但許多遊戲都會啟動並進入遊戲。我測試過的一些喚醒遊戲有:《山脊賽車》、《惡魔城月下交響曲》、《最終幻想7》、《古惑狼1、2 和3》、《小龍斯派羅》、《鐵拳1 、2 和3》、《Toshinden》、《時間危機》、《Tobal 1》和2、《流浪物語》、《街頭霸王零3》、《洛克人/洛克人8/X4》、《寄生前夜》、 《潛龍諜影》、《急速小隊賽車》…還有一些像是《最終幻想IX》、《GT賽車》、《生化危機3》或《Marvel vs Capcom》引導,但有隨機問題需要修復。
注意:記憶卡檔案被硬編碼到根目錄中的「memcard.mcr」。如果沒有,儲存時會產生一個新的。
ProjectPSX 核心本身就是一個無頭函式庫,沒有相依性。解決方案附帶 2 個附加項目 ProjectPSX.Winforms 和 ProjectPSX.OpenTK。 Winforms專案使用NAudio來輸出聲音。
使用 Winform 專案時,執行時會出現一個檔案對話方塊提示。選擇 Bin 檔案(使用 track1)或 Cue 檔案來產生 CD 軌道以饋送到 CDROM。
使用 OpenTK 專案時,只需將 bin/cue 檔案拖曳到視窗中即可。
BIOS 和擴充檔被硬編碼在 BUS 類別上。
上電後,輸入映射為:






是的,你可以,但你不應該。還有很多其他功能更強大的模擬器。這是一個正在進行的個人項目,旨在了解模擬器和硬體實現。它可能並且將會在模擬過程中中斷,因為有許多未實現的硬體功能。
這是 VRAM 檢視器。它包括遊戲機軟體使用的所有紋理、顏色鎖定表和顯示緩衝區。它用於調試目的。您可以按下鍵盤上的 TAB 來切換它。
可能是由於未實現硬體或不正確實現硬件,主要是 cdrom/dma/mdec 計時。
取消 CPU 主循環上的 BIOS.verbose() 或 TTY() 函數的註解。您也可以 dissasemble() MIPS CPU 指令和 printRegs() 目前操作碼。
我對模擬硬體感興趣已經有一段時間了。我開始製作 Java Chip8 和 C# Intel 8080 CPU(用於經典街機 Space Invaders)。後來我做了任天堂 Gameboy。我想繼續做一些 3D,所以我最終選擇了 PSX,因為它有一個很好的遊戲庫...
我主要使用了關於Playstation 硬體的Martin Korth PSX-SPX 文檔,網址為https://problemkaputt.de/psx-spx.htm 另外,#playstation 頻道的emudev 不和諧頻道的人員https://discord.gg/ dkmJAes 是非常有幫助。
Winforms 對我來說是最簡單的輸出方式,因為它可以快速原型化。目前,UI 與核心分離,因此只要實作了 IHostWindow 接口,就可以新增任何視窗系統。還有一個關於在 Linux 上運行的解決方案的 OpenTK 專案。
在這個專案開始時,我是一個從事與編碼無關的無聊工作的人。我不想一輩子都這樣,所以我開始學習,試著改變職業。最終學會了(一點)並開始寫任何讓我高興的東西。最後找到了一份 Android 開發人員的工作...