[黑客人生] D-Fend Reloaded

聲明:會寫這種東西就表示最近工作壓力實在太大了,需要有地方可以抒發。可惡啊,好多遊戲都還沒玩,我一定要趕快把手邊的工作告一段落啊啊啊!

很多人都知道 D-Fend Reloaded 是個 DOSBox 的圖型介面前端 (GUI Frontend),我從很久以前就會把它裝起來,但是卻很少拿出來用,一直到最近因為種種緣故暫時不能使用平常在用的電腦,在備援機上才真的稍微花了點功夫把玩 D-Fend Reloaded,結果意外地發現它實在是個無比強大的遊戲管理軟體,除了 DOS 時代的老遊戲外,甚至連各種模擬器以及 Windows 平台的遊戲,也都可以整合進去,實在是相見恨晚啊!

想到很多玩遊戲的朋友可能因為沒有在玩 DOS 時代的老遊戲,就略過 D-Fend Reloaded,實在是太可惜了,所以決定野人獻曝,花點時間來寫這一篇介紹,讓大家看看它的種種進階用法。

註:為了避免在奇怪的地方遇到預料外的瑕疵,所以雖然 D-Fend Reloaded 有提供繁體中文介面,我還是從一開始就選擇用英文;文中的描述仍然會以中文為主,但是都是用我自己的慣用譯法,跟實際的繁體中文介面可能有所不同,請注意。另外我其實都是設定成全螢幕執行遊戲,但是為了抓圖說明,所以暫時會切換成視窗模式。

遊戲管理

話說 Windows 7 有個「遊戲總管」(遊樂場)的功能,會陳列你所安裝的遊戲,以便玩遊戲或更新等;但是這個功能需要遊戲開發者/發行者的配合,不是所有你裝的遊戲都會列進去(老遊戲就不要想了),而且有時候會出現一些不大對勁的現象,例如同一個遊戲列出好幾個等等。
圖:Windows 7 遊樂場

這樣的功能想法很好,至少讓我可以清掉一些桌面上的捷徑(我是習慣桌面上捷徑越少越好的那種人,畢竟很難有機會看到桌面……),要是能夠方便自己管理這些遊戲,那就更好了。結果當我把本次主角 D-Fend Reloaded 弄起來後,「遊樂場」就沒有機會出場了,因為 D-Fend Reloaded 更好用!
圖:D-Fend Reloaded 遊戲清單(圖示)
圖:D-Fend Reloaded 遊戲清單(報表)

D-Fend Reloaded 除了一樣可以直接用搜尋框來尋找遊戲外,還多了一個「我的最愛」,另外也能用遊戲類型、開發人員、發行人、發行年份、遊戲語言、遊戲授權方式、遊戲平台等條件來分別檢索;如果你覺得這樣還不夠,D-Fend Reloaded 甚至可以讓你自訂分類的依據。

為了要能夠分類,D-Fend Reloaded 必須要知道各個遊戲的資料。這些資料可以手動維護,但是 D-Fend Reloaded 內建直接從 MobyGames 下載資料的功能,你只要給個名稱片段,就能夠輕鬆下載相關的資訊,就連遊戲的相關圖片也能一起抓下來。要是很不巧地,你的遊戲在 MobyGames 上面沒有資料,也別擔心,因為 D-Fend Reloaded 還可以讓你很方便地用 SquakeNet.ComTheLegacyKultpower、Google、Wikipedia 等網站來搜尋遊戲資訊。如果你覺得預設的這些資訊欄位還不夠(例如你想要註明遊戲版本),D-Fend Reloaded 還提供了自訂欄位的功能,實在是超貼心的啦!
圖:D-Fend Reloaded 程式(遊戲)資訊
圖:D-Fend Reloaded 讀取(下載)遊戲資訊

註:抓下來的資料中,可能會有遊戲發行的「日期」,但是其實管理時只需要用到「年份」,所以這邊需要自己修改一下。遊戲類型、遊戲語言、遊戲授權方式等三項資訊可以用中文來描述⸺但是你一定不會想要每次下載資料後就手動修改,所以請善用程式設定中的「遊戲清單的非英語翻譯」功能(這個選項要在進階模式中才會出現),這樣 D-Fend Reloaded 就會自動幫你翻譯。
圖:D-Fend Reloaded 設定非英文資訊的自動翻譯

Windows 遊戲

雖然 D-Fend Reloaded 是 DOSBox 的前端,但是也可以用來管理 Windows 平台的遊戲:新增設定檔的時候,選擇 Windows 遊戲,然後一樣選擇遊戲的執行檔即可;執行檔路徑不用包進「"……"」內,如果執行檔需要加上參數,則要另外填在程式參數的欄位,這跟 Windows 捷徑的寫法不大一樣,請注意。另外你也可以在程式設定中,設定執行 Windows 遊戲時,自動把 D-Fend Reloaded 最小化(這個選項要在進階模式中才會出現)。

DOS 遊戲

DOS 遊戲就不用說了,D-Fend Reloaded 當然是支援的,特別之處在於 D-Fend Reloaded 內建一堆(上千個!)預先定義好的「模版」,當你要加入遊戲的時候,它會自動判斷你加入的是什麼遊戲,看看有沒有可以直接套用的模版。
圖:D-Fend Reloaded 自動設定模版

如果你手上的 DOS 遊戲是原始磁片或光碟(或者是它們的映像檔/壓縮檔),D-Fend Reloaded 也會很聰明地判斷出這需要安裝後纔能使用,幫你先弄出安裝環境。
圖:D-Fend Reloaded 自動遊戲組態

註:如果你安裝 D-Fend Reloaded 的時候選擇「設定檔存放在使用者目錄」(這是 Windows 7 的建議選項),D-Fend Reloaded 預設會把 %UserProfile%\D-Fend Reloaded\VirtualHD\ 掛載成 C 槽,所以你應該把遊戲解成此路徑中的子目錄。

除了模版外,D-Fend Reloaded 還內建「遊戲存檔修改」資料庫,可以用來作弊,是修改軟體外的另一個選擇。
圖:D-Fend Reloaded 遊戲存檔修改(作弊)資料庫

把遊戲檔案放到 %UserProfile%\D-Fend Reloaded\VirtualHD\ 目錄下還有許多管理上的好處,例如可以一次把很多遊戲放進去,然後用「掃描新遊戲」的功能迅速建立一堆遊戲設定檔,也可以把這些遊戲「匯出」成套件⸺如此在其他電腦上也可以輕易匯入 D-Fend Reloaded;事實上 D-Fend Reloaded 的網站上就有提供一大堆預先準備好的「套件」,多是免費版、試玩版、展示版、共享版的遊戲,也可以從 D-Fend Reloaded 當中直接選擇下載,還怕沒有遊戲玩嗎?
圖:D-Fend Reloaded 建立遊戲套件
圖:D-Fend Reloaded 下載遊戲套件

QuickBASIC 遊戲

說到 DOS 遊戲,還記得當年 DOS 裡面附了一套 QuickBASIC 嗎?就算你不記得,總知道「大猩猩」(Gorilla)跟「貪食蛇」(Nibbles)這兩個歷久彌新的經典遊戲吧?它們當年可都是附在 QuickBASIC 的遊戲喔,直接是提供 .BAS 的源碼格式,要用 QuickBASIC 載入後執行。
圖:大猩猩(Gorilla)
圖:貪食蛇(Nibbles)

如果你用過 DOSBox,就會知道你需要手動執行 QuickBasic,手動載入 .BAS 源碼,手動執行遊戲。再一次地,D-Fend Reloaded 可以簡化這個步驟!指定 QBasic 的程式路徑後,建立遊戲設定檔時可以直接指定 .BAS 源碼檔案,之後 D-Fend Reloaded 就會自動幫你載入跟執行!超方便啦!
圖:D-Fend Reloaded 整合 QuickBASIC

註:QuickBASIC 可以從微軟的技術支援網站「CD-ROM Extras for Microsoft Windows 95 Upgrade」下載 Olddos.exe,這是個自我解壓檔,建議解壓縮到 %UserProfile%\D-Fend Reloaded\VirtualHD\Olddos\ 內,如此在 D-Fend Reloaded 設定時可以直接按「搜尋按鈕」(像望遠鏡那個)瞬間設定完成。

如果除了 QuickBASIC 外,你還有其他類似用直譯器執行源碼的遊戲或程式呢?D-Fend Reloaded 有個「使用者自訂直譯器」的設定選項(這個選項要在進階模式中才會出現),看你想要定義什麼,都沒問題!

ScummVM 遊戲

如果你是冒險遊戲愛好者,一定會知道 ScummVM 這個模擬器,除了 LucasArts 的 SCUMM 引擎外,ScummVM 還支援一大堆不同的冒險遊戲,包括 Activation、Horrorsoft、Coktel Vision、Revolution Software、SIERRA、Humongous Entertainment 等公司的冒險遊戲。由於 ScummVM 比 DOSBox 更適合拿來玩這些遊戲,所以 D-Fend Reloaded 也支援整合 ScummVM!同樣地,安裝好 ScummVM 後(就算是 64 位元的 Windows 也建議安裝 32 位元的 ScummVM,之後會提到原因)按下望遠鏡狀的「搜尋按鈕」,一切就搞定啦,之後新增遊戲設定檔時,就可以直接選擇遊戲目錄,D-Fend Reloaded 會知道要用 ScummVM 來執行遊戲。
圖:D-Fend Reloaded 整合 ScummVM

超任模擬器遊戲

如果你還會玩超級任天堂的遊戲呢?我習慣用的模擬器是 Snes9x,一樣可以整合到 D-Fend Reloaded 裡面!方法是在「其他模擬器」(這個選項要在進階模式中才會出現)裡面設定 Snes9x 的執行檔,別忘了在「資料檔案副檔名」填上 SMC,之後新增遊戲設定檔時,就可以選擇用這個模擬器,並且直接選擇 ROM 檔案了。
圖:D-Fend Reloaded 整合 Snes9x
圖:D-Fend Reloaded 新增 Snes9x 遊戲設定檔

如果你想要用其他模擬器,也是按照這樣的方法來設定(當然資料檔案的副檔名會有所不同),以後就可以統一由 D-Fend Reloaded 來啟動各種遊戲啦。

壓縮格式支援

還記得前面提過可以直接把壓縮檔餵給 D-Fend Reloaded 而不用事先解壓縮嗎?D-Fend Reloaded 內建支援 zip7z 壓縮格式,如果你習慣用其他的壓縮格式也沒關係,可以任意設定不同格式的壓縮程式(這個選項要在進階模式中才會出現)。

圖:D-Fend Reloaded 整合 WinRAR
由於 D-Fend Reloaded 不只是會幫你解壓縮檔案,也可以幫你壓縮及更新檔案,所以你必須逐一設定不同用途的指令⸺嘿,可是當我選了 WinRARARJ32 後,D-Fend Reloaded 就自動幫我把這些指令填上了!省得查指令說明文件,真好。

FreeDOS、4DOS、Doszip Commander

D-Fend Reloaded 在安裝過程中可以讓你選擇安裝 FreeDOS,最大的好處是你同時會獲得 4DOS⸺相信經歷過那個年代的朋友,都會知道 4DOS 的強大,這個原本由 JP Soft 發行的命令列直譯器,後來也成為開放源碼軟體,真是一件好事。附在 FreeDOS 裡面的 4DOS 版本為 7.50.130,但是 4DOS 目前最後的版本為 8.00.200,所以你可能會想要自己下載,覆蓋到 %UserProfile%\D-Fend Reloaded\VirtualHD\FREEDOS\ 裡面。

嘿,猜猜看怎樣,我自己十多年前弄出來的 4DOS 設定檔(含中文註解)以及當時留下來的 4DOS 功能變數中文說明檔,通通還在唷,有興趣的朋友不妨抓去用
圖:D-Fend Reloaded 整合 4DOS

dfr-4DOS-AddOn.rar 解開後會得到一些檔案,茲說明如下:

4ALIASES.INI
自訂指令縮寫(別名)用的設定檔,在 DOSBox 中若更動此檔案設定,只要執行「aaa」即可重新載入生效
4DOS.INI
4DOS 的主要設定,各選項均提供中文註解
4LICENSE.TXT
4DOS 的授權說明
4README.TXT
4DOS 的「讀我」文件
4START.BTM
4DOS 的自動執行檔,由 4START.SRC 編譯而來
4START.SRC
4START.BTM 的源檔,每次更動後在 DOSBox 當中執行「BATCOMP 4START.SRC」即可編譯出對應的 4START.BTM
4VAR.TXT
4DOS 功能變數中文說明文件

另一個隨著 D-Fend Reloaded 裝進去的,是個叫 Doszip Commander 的工具,這是類似 Norton Commander(天啊,真令人懷念)的檔案管理工具;不過 D-Fend Reloaded 裝進去的 Doszip Commander 版本為 2.08,而 Doszip Commander 目前最後的版本為 2.09,所以你可能會想要自己下載,覆蓋到 %UserProfile%\D-Fend Reloaded\VirtualHD\DOSZIP\ 裡面。
圖:D-Fend Reloaded 整合 Doszip Commander

MIDI

認真玩 DOS 時代遊戲的人,就會知道 MIDI 音源的重要性。這方面已經有別人寫過了,所以我不贅述,基本上我的 DOSBox 是按照《GM 軟體音源 in Windows 7 64bit》這篇的說明,用 loopMIDI 搭配 TiMidity++ 使用 Shan's GM Soundfont;ScummVM 則是按照《D-Fend Reloaded + ScummVM + 軟體音源》這篇的說明,用 FluidSynth 搭配 Shan's GM Soundfont,並使用 MT-32 emulation。

註:.sfArk 變成 .sf2 其實是「解壓縮」而不是轉換,上述文件中的描述可能會造成誤解。另,我還有手動把 TiMidity++ 的 TWSYNTH GUI 放進 Windows 的啟動資料夾,讓它一開機就自動跑起來。

開放源碼

最後,雖然本文中沒有特別提出,但是下列這些軟體都是開放源碼專案的產物喔!

  • D-Fend Reloaded
  • DOSBox
  • ScummVM
  • Snes9x
  • FreeDOS
  • 4DOS
  • Doszip Commander
  • TiMidity++
  • FluidSynth

後記:結果通通設定好後,就要繼續工作,沒有空打電動了……

jedi.org: