使用现代基于 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
默认情况下禁用串行调试输出。