Articles

Magazine Articles 雜誌文章 / PlayStation 模擬器

刊登於 LinuxPilot 2005 年第四季

文章已過時。ePSXe 在 1.6.0 後有新的版本,而 PCSX 可以說不再維護。PCSX-df 是 PCSX 一個較佳的分支,請閱讀 PCSX 「安裝套件」部份。

Game Console Photo

在 Linux 上,最多人玩的遊戲機模擬器有兩種,一是超任系列的模擬器 (像 Snes9xZSNES 等等),另一種是 MAME (街機模擬器),特別是後者,在模擬器的范疇裡已經是無人不識。但其它種類的遊戲機也不是無人問津的,這裡筆者介紹一些模擬 Play Station 的給大家:ePSXePCSX


ePSXe

ePSXe (Enhanded PSX Emulator) 雖然只有 binary 可以下載,但也沒有引起兼容性的問題,下載官方網站兩年前編譯的 binary 後,在筆者的電腦中依前運作暢順,而且和 PCSX 比較穩定性,ePSXe 稍為佔優。

不過要安裝 ePSXe (甚至所有同類的模擬器) 不是只下載一個壓縮檔就成,因為它們都使用插件作為影像和音效輸出,所以要將插件一併下載和安裝。還有最重要的部份,亦即是 Play Station 的 BIOS,這部份雖然在網上稍為搜尋一下就可以找到,也不該隨便下載,因為這些 BIOS 都有版權。如果本身沒有 PlayStation 而下載 BIOS,有些國家會判定這樣為侵犯版權的行為,雖然筆者不清楚香港的法例是否完全一樣,不過機會很大。但無論如何,要自行在 PlayStation 抽取 BIOS 的手續頗困難,所以如果有 PlayStation 的話,讀者可以在之後的部份找到下載 BIOS 的方法。

ePSXe 啟始畫面

ePSXe 啟始畫面

在 ePSXe 的官方網站中,下載名為 epsxe160lin.zip 的壓縮檔後,用 unzip 指令或者別的圖形介面解壓軟件,隨便將 ePSXe 解壓至任何一個資料夾都可以,因為 ePSXe 不需要讀取特定的資料夾。為方便解說,假設 ePSXe 安裝在 home directory 的 ePSXe 目錄之下:


mkdir ~/ePSXe
cd ~/ePSXe
unzip ~/epsxe160lin.zip

裏面有幾個子目錄,每個都有不同用途,細列如下:

plugins/ 各種影像和音效的插件
memcards/ 記憶卡的 dump
cfg/ 所有和插件有關的設定檔和設定程式
bios/ Play Station 的 BIOS

下面的部份會討論如何加上需要的檔案。這些目錄下還有些名稱像 kill.me, delete.me 等等的檔案,目的只是為了解釋這些目錄有甚麼用途,不用管。

插件、設定檔、設定程式

在早期的 PlayStation emulator 中,有幾個是比較出名的,包括 Bleem!Virtual Game StationPSEmu Pro (雖然以上幾個模擬器的網站都不在了)。PSEmu Pro 的模擬能力和速度都不弱,但最值得一提的是它的插件架構 — 不論 GPU, SPU, CDRom, Joypad 等等都採用插件方式處理,用家可以因應需要選用不同的設定。之後所有的 PlayStation 模擬器幾乎都採用同一架構,有些 (例如 ePSXe 和 PCSX 的 Win32 版) 甚至可以達到 binary 兼容的程度。

這些插件在網上通稱為 GPUSPU。目前運行得最好的要算是由 Pete Bernert 編寫的插件。他的插件全部都是 Open Source 的,而且都放在 SourceForge 內。可以下載的 Linux 插件計有:

  1. Soft GPU (不使用 OpenGL)
  2. XGL2 GPU (即有硬件加速的 OpenGL)
  3. MesaGL GPU (沒有硬件加速的 OpenGL)
  4. OSS/ALSA SPU (一般 Linux 音效)
  5. Null SPU (不發聲)

音效方面,用普通的 SPU 在絕大部份的 Linux 上應該都沒問題,只有出問題時才應考慮使用 Null SPU – 這個是當然的,玩遊戲時沒聲音,就像是用水煮菜不加調味料,淡而無味。相反,GPU 方面卻是 Soft GPU 兼容性最好,因為只要基本的 X Window,CPU 不會太慢就能玩了,相反地要在 X Window 設定硬件加速和設定 3D 支援則不是一般用戶能處理的課題,也超出了本文的範圍。但有 3D 顯示卡 (例如 nVidia, ATI)、Linux distribution 版本比較新的用戶可以考慮一試,相信會比 software rendering 的效果來得好。

安裝程序方面,首先下載 GPU tarball。筆者推薦先用 Soft GPU 試試,運作正常才再試別的插件。到該頁底部下載 P.E.Op.S. Soft GPU (Linux) 的最新版 (筆者撰文時為 1.17 版),檔案名稱 gpupeopssoftx117.tar.gz。將之解壓在 plugins 目錄之下。其中有兩個名稱有 cfg 字樣的檔案,和影像設定有關,要移至 cfg 目錄之下:

cd ~/ePSXe/plugins
tar zxf ~/gpupeopssoftx117.tar.gz
mv cfgPeopsSoft gpuPeopsSoftX.cfg ../cfg/

完成後,到另一頁下載 1.9 版的 OSS/ALSA SPU,然後依樣畫葫蘆,再做一次:

cd ~/ePSXe/plugins
tar zxf spupeopsoss109.tar.gz
mv cfgPeopsOSS spuPeopsOSS.cfg ../cfg/

產生記憶卡檔案

PlayStation 記憶卡

PlayStation 記憶卡

這個大可放心,不用想得太複雜,我們根本不需要想辦法 dump 整塊記憶卡的內容。讀者只要在 memcards 資料夾中用 touch 指令制作兩個檔案:

touch memcards/epsxe000.mcr memcards/epsxe001.mcr

之後執行 ePSXe,當有需要時它自然會寫入正確的記憶卡檔案格式。


BIOS

下載 BIOS 的地方多的是,在網絡的搜尋器找一下就可以。和 Play Station 有關的 BIOS 檔案名稱是 scph1001.binscph7502.bin,將這些檔案複製到 bios/ 目錄下就可以。其實這些 BIOS 各有不同,可能會影響某些遊戲的運行,例如用英文 BIOS 執行日文的遊戲,或者用日文 BIOS 執行英文的遊戲,都有些微機會導致不可預計的後果。就筆者所知,以下的 BIOS 檔案名稱相應於不同的版本:

檔案名稱 版本 地區 日期 附註
scph1000.bin 初版 日本 1994-09-22
scph5000.bin 2.2 日本 1995-12-04
scph5000a.bin 2.2 日本 1995-12-04 可能不能用
scph1001.bin 或 dtlh3000.bin 2.2 美國 1995-12-04
scph1002.bin 或 dtlh3002.bin 2.2 歐洲 1995-12-04
scph5500.bin 3.0 日本 1996-09-09
scph7003.bin 3.0 美國 1996-11-18
scph5502.bin 或 scph5552.bin 3.0 歐洲 1997-01-06
scph7000.bin 4.0 日本 1997-08-18
scph7001.bin 4.1 美國 1997-12-16
scph7502.bin 或 bios41a.bin 4.1 歐洲 1997-12-16

ePSXe 開發者測試過,和 ePSXe 兼容性最好的 BIOS 是 scph1001 和 scph7502,所以讀者們最好沿用這兩個。順帶一提 Linux 檔案名是區分大小寫的。

下載套件

Debian 的用家有福了,Frédéric Brière 已經將 ePSXe 製作成 Deb 套件,包括程式本身和所有插件,包裝這東西的工作可不簡單。(連 BIOS 也有套件下載!)

更新:rpmfind.net 的最後一個 rpm 都沒了。目前 rpm.pbone.net 有列出 OpenSuSE 的套件,雖然不是最新版本,但該也可以用的。

相反,使用 RPM 的 Distribution 的用家就沒這麼幸運了,因為根據筆者在網絡搜尋所得,只有一個給 SuSE 9.0 使用的套件,在別的 distribution 裡未必一定能夠執行;但用家想試的話,也可以摶一下。在 rpmfind.net 中搜尋 “epsxe” 這個字串,它就會顯示唯一的一個 binary RPM。下載後用 rpm 指令安裝:

rpm -ivh epsxe-1.5.2-209.i586.rpm

筆者建議不要用這個 rpm,一來是版本舊了,二來比較自行安裝並不會節省多少功夫。

執行 ePSXe

ePSXe 選單

ePSXe 選單

ePSXe 的選單主要有 4 部份:

  • File — 選擇運行 CD-Rom、CD image 還是 BIOS 本身
  • Run — 可 reset 模擬器、載入和儲存進度 (即是說遊戲本身沒有儲存功能也可以儲存!)
  • Config — 各種(模擬)硬件設定
  • Options — 少數額外的設定

如果有 Play Station 的 CD,放入電腦本身的 CD-Rom 沒問題,ePSXe 可以直接讀取。倒是將之抽取成 CD image 要特別工具,而且基本上都是在 Windows 運行的。另外如果遊戲要換碟,也是在 File 選單之下,選 Change Disc。

Run 選單沒甚麼好說了,不過它經常可以救你一命 (特別是遇到當機、停電、或者玩 RPG 半途失敗時)。要在遊戲半途儲存,可以在遊戲途中任何時間按 ESC 鍵,它就會暫停遊戲,進入版頭畫面,這時你便可以儲存或者載入進度。

設定是最麻煩的一部份,主要都是有關影像和音效的設定。有時某個遊戲的設定可能和其它遊戲不同,要個別調整。想在畫面精細度和速度方面取得平衡得花點工夫。

OSS/ALSA Driver 音效設定 ePSXe OSS Driver 音效設定 ePSXe OSS Driver 音效設定
SoftX Driver 影像設定 ePSXe SoftX Driver 影像設定 ePSXe SoftX Driver 影像設定

使用方面,上下左右箭咀代表方向,ZXSD 代表手掣右邊 4 個按鈕,CV 分別是 select 和 start,WERT 代表 L1, L2, R1, R2 按鈕。如果不記得,可以到 gamepad 設定中看看,稍為用一下就會習慣了。

ePSXe gamepad 設定

ePSXe gamepad 設定

更新:力生早被 Sony 弄得雞毛鴨血,被迫關門大吉了。

另外,力生公司有售賣 PS 手掣轉換至 USB 的接駁器,這樣在 PC 上也可以用 PS 手掣;只是筆者沒有買,所以不知道效果好不好。各位讀者可以試試看,如果所有東西設定得好的話,可能會像某些人般索性用模擬器代替真實的 PlayStation 也說不定。

設定技巧

  • 如果覺得速度太慢,可以在影像設定中考慮使用較低的解像度和使用跳格 (frame skipping);相反地太快的話可以限制速度 (Use FPS Limit)
  • 如果音樂不穩定,可改用單聲道,有時可減低不穩定因素。

PCSX

PCSX 標誌

PCSX 是另一個頗出名的 PlayStation 模擬器,一樣有 Linux 版和 Win32 版。它的架構和 ePSXe 差不多一樣,都是將插件、BIOS、設定程式等等放在不同的目錄下,然後直接執行。

最新版本是 1.6 beta,不過剛才說過了,編譯的過程異常繁複:gcc 4.x 無法編譯這個怪物,官方網站沒有提及在哪裡下載 plugin,特別是當你想有完整的 GTK+ 2.x 介面時,更要修改每個 plugin 的 Makefile 和程式碼,恐怕單是這個過程就夠出一本書了,筆者花了十多小時才編譯成功,成績也不理想,所以不會在這裡介紹自行安裝的方法。撇開這些不談,讓大家先睹為快:

PCSX 啟始畫面

PCSX 啟始畫面

PCSX 中的 Final Fantasy 9

PCSX 中的 Final Fantasy 9

PCSX 插件設定

PCSX 插件設定,安裝後它會自動偵測,不用填上

PCSX joypad 設定

PCSX joypad 設定,是少數插件中功能比較強的一個

安裝套件

更新:一方面 PCSX 已成為 Debian 的正式套件,另一方面據聞 pcsx-df 比較好 (是取代 PCSX 的分支,其實 PCSX 可說已經入了墳墓;PCSX 的開發團隊早已致力於開發 PCSX2,即 PlayStation 2 的模擬器) ,但插件還是要自己在外面找。有關情況可閱讀 pcsx-df 的 README。RPM 方面目前似乎下載 OpenSUSE 的 pcsx-df 較妥當,因為有積極維護,ALTLinux 的套件太舊了。暫時我未有測試。

Debian 的話,和 ePSXe 一樣,到之前提過的網址可以下載 Debian 套件 (可別忘了其它相關的 plugin!)。RPM 的話,最好的搜尋結果是在 rpm.pbone.net,只列出了 SuSE 9.x 和 ALTLinux 的套件,而且 SuSE 的套件不要也罷,版本舊得太過份了。筆者試過 ALTLinux 的套件,基本上運作得不錯,比筆者自己編譯的還要好,所以在這裡介紹一下安裝程序:

  1. 在 rpm.pbone.net 搜尋 pcsx 後,按 ALTLinux 套件的連結,然後下載 Pcsx-1.5-alt3.i386.rpm
  2. rpm -ivh 是不能夠安裝的,因為欠缺某些依賴的檔案。可以用以下指令試試欠缺了甚麼東西,然後逐個補上:
    rpm -ivh –test Pcsx-1.5-alt3.i386.rpm
  3. 如果只欠 shlibbz2.so.1,而系統中的 /usr/lib 目錄又有 libbz2.so.1,可以用以下指令強行安裝:
    rpm -ivh –nodeps Pcsx-1.5-alt3.i386.rpm
  4. 第一次在指令列執行 pcsx 時會進行設定,只要接受預設值即可,之後可以慢慢修改。不過在筆者的 Linux 裡設定完後程式就結束了;再執行多一次就可以玩遊戲。

1 Incoming Link

Leave a Reply

E-mail is not disclosed nor shared. Required fields are marked *