使用現代基於 PCI(板載和附加卡)的音效卡在純 DOS 中模擬 Sound Blaster 和 OPL3。
MPXPlay 的原始碼用於支援以下音效卡/晶片。
啟用並工作:
sc_ich
:英特爾 ICH/nForce/SIS 7012sc_inthd
:英特爾高清晰度音訊 (HDA)sc_via82
:威盛VT82C686、VT8233/37sc_sbliv
:SB 直播! /奧迪吉sc_sbl24
: SB Audigy LS (CA0106)sc_es1371
: 安索尼克 ES1371/1373sc_cmi
:C-Media CMI8338/8738支援編譯,但未經測試:
sc_via82
:威盛VT8235原始碼存在,但“尚未運行”:
sc_sbxfi
: 創意 X-Fi EMU20KXjiyunomegami 移植的其他 Linux 驅動程式
對於記憶體管理,請使用:
JEMMEX
:同時提供 HIMEM + EMMHIMEMX
和JEMM386
:獨立的 HIMEM + EMM在這兩種情況下,請在啟動SBEMU
之前使用JLOAD
(來自 Jemm 發行版)載入QPIEMU.DLL
,以便啟用實模式支援。如果不載入JEMM+QPIEMU(或QEMM),則僅支援保護模式應用程式。
如果您想在不建置 SBEMU 的情況下使用它,請閱讀 README.txt 以了解設定和命令列選項清單。
支援 macOS、Linux 和 Windows。對於 Windows,請考慮使用 WSL2 + Linux 二進位。如果您需要經常在本機 DOS 上進行偵錯/測試,可以使用 makefile.dos。
用於為 DJGPP 建立最新 GCC 工具鏈的腳本可在此處取得:
如果您不想自己建立 DJGPP,還有工具鏈的預先建置版本。目前版本(2023 年 10 月)使用 GCC 12.2.0,但將來可能會提供更新的 GCC 版本:
這假定安裝的是 Debian/Ubuntu。如果您正在使用任何其他發行版,我假設您了解相關方法,並且可以將這些說明轉換為您的特定發行版。
要取得make
和其他工具,最簡單的方法是安裝主機建置工具:
sudo apt install -y build-essential
在 MacOS 上,安裝 Xcode 命令列工具,它應該為您提供make
和其他主機實用程式。
如果您打算從原始程式碼建立 DJGPP,則需要一些額外的建置工具。有關詳細信息,請參閱build-djgpp
自述文件。
隨著原始碼的增加,不建議從DOS建置。此外,DJGPP DOS 建置不使用 -O2 和 -flto,因為 GCC 版本很舊且 -O2 有錯誤。
如果需要在 DOS 上建立項目,請從這裡下載原始 DJGPP:https://www.delorie.com/djgpp/zip-picker.html 它也有 make 實用程式。
Which operating system will you be using?
中選擇MS-DOS,OpenDOS,PC-DOS
。落下,Which programming languages will you be using?
C++
Tell me which files I need
DOSLFN 也需要執行建置。在建置之前需要正確設定 PATH env。 set PATH=%PATH%;C:DJGPPBIN
建議放入autoexec.bat中,然後
make -f makefile.dos
您也可以使用 RHIDE 進行即時編輯和建置:將SET DJGPP=C:DJGPPDJGPP.ENV
新增至 autoexec.bat,然後透過命令列在專案根目錄中執行rhide
。使用Alt+C
啟動Compile
選單,然後選擇Make
進行依賴項建置或Build all
進行乾淨建置。
DJGPP 工具鏈的bin
資料夾需要位於$PATH
中,以便以下命令可以運作並輸出 DJGPP GCC 版本:
i586-pc-msdosdjgpp-gcc --version
如果可行,建立專案就像這樣簡單:
make
因為您在具有多核心CPU的現代機器上,所以進行並行構建,這會更快,例如,對於四核心CPU,使用8個並行進程來加速構建:
make -j8
建置完成後,您將在名為output
的資料夾中找到建置結果,即output/sbemu.exe
。
DOS 中的 CD 音訊支援需要兩個部分:
MSCDEX
(或SHSUCDX
)進行音訊控制(播放/暫停/搜尋/...)對於第一部分,您需要有一個帶有類比音訊輸出的 CD-ROM 驅動器和一個與 MSCDEX 相容的 CD-ROM 驅動程式設定。
第二部分(音量控制)由 SBEMU 在啟動時負責。
若要調整 CD 音訊的音量(預設為 100% 音量),您可以使用任何 Sound Blaster 相容程序,例如“SBMIX”,因為 SBEMU 會模擬和轉發 CD 音訊混音器設定。
不要忘記,要真正聽到任何聲音,您需要將類比音訊電纜從 CD-ROM 驅動器連接到音效卡(或用於板載聲音的主機板)上的 4 針 CD-IN 接頭連接器。
您可以將 SBEMU 配置為將其偵錯訊息輸出到序列埠而不是控制台。當遊戲全螢幕時,這也可以在背景運行,因此對於調試非常有用。
要建立具有調試輸出的 SBEMU,請使用:
make DEBUG=1
然後,使用此命令啟動 SBEMU 以在 COM1 上偵錯輸出(9600、8N1)(對 COM2 使用/DBG2
):
sbemu /DBG1
若要在運行時停用串行埠偵錯輸出,請使用:
sbemu /DBG0
預設情況下禁用串行調試輸出。