移花接木,在Windows 3.x下驱动CMI8738 作者:蓬岸 Dr.Quest 编号:597056097 创建于:2023-01-06 00:17:57 修改于:2023-01-06 19:46:12 -------------------- 在 数字媒体的实验考古(四):多媒体电脑 (Link: https://zhuanlan.zhihu. com/p/453141018) 中,曾经介绍90年代IBM兼容机市场上最重要的变化之一, 过多媒体电脑,即Multimedia PC概念的流行。是而作为多媒体计算机市场协会 (Multimedia PC Marketing Council)的主导者,微软则将Windows 3.x作为实 现这一重要变化的主力平台。许多重要的多媒体软件,比如Adobe Premiere、Ca kewalk、 Macromedia Director、Authorware等都在这一时期出现或移植到Wind ows平台,虽然Windows 9x可以运行大部分Windows 3.x程序,但最“正宗”的体验 还是要在Windows 3.x上才能实现。 今天,搭建一部便宜而又可以原生安装Windows 3.x的电脑最大的挑战,则是声 卡驱动,相比之下,显卡驱动目前已经有较为通用的折衷方案,即SVGA256补丁 和SciTech Display Doctor 5.3a/6.53。 Generic SVGA Driver (Windows 3.1) Generic SVGA Driver (Windows 3.1) (L ink: https://winworldpc.com/product/generic-svga-driver-/generic-svga- driver-windows-31) SciTech Display Doctor (Link: http://www.win3x.org/win3board/viewtopic .php?t=5413) 背景 在准备数字媒体的实验考古课程时,我在网上购买了一块ECS P6SEP-Me主板,这 是一款使用SiS 620芯片的Socket 370主板,能够找到原厂的Windows 3.x显卡驱 动,但板载的CMI8738声卡却没有Windows 3.x驱动。 本来我已经打算再购买一块能够原生支持Windows 3.x的声卡,但忽然想到CMI87 38有较完整的DOS驱动,能够兼容大部分为Sound Blaster开发的DOS游戏,那么 有没有可能利用这种90年代声卡普遍具有的“声霸卡兼容”(Sound Blaster comp atibility)能力在Windows 3.x下安装SoundBlaster驱动而间接驱动它呢?CMI8 738是目前市场上最便宜的PCI声卡之一,如果能在Windows 3.x下驱动,将大幅 降低搭建类似复古计算、复古游戏环境的成本。 经过一番尝试,算是把这个流程走通,这一方法最早整理在http://vogons.org (Link: http://vogons.org) 上:PCI or PCI Express Sound Card for Window s 3.X Sound (Link: https://www.vogons.org/viewtopic.php?t=63310) 本文做了精简,把SoundBlaster 2.0驱动的部分替换为SoundBlaster Pro,这也 是CMI8738能兼容的功能最齐全的SoundBlaster驱动。 最初的试验:Windows 3.2自带驱动 Windows 3.2自带了SoundBlaster 1.0/1.5的驱动,支持OPL2的FM声音合成和8-b it数字音频,这应该是“声霸卡兼容”的基础要求了。 (Image: https://picx.zhimg.com/v2-57fbd98aac1c7915e2c78f54029676df_720 w.jpg?source=d16d100b) 但是Windows 3.2自带的SoundBlaster 1.5驱动只支持2、3、5、7四种IRQ,而走 PCI总线的CMI8738通常会把IRQ分配到11。因此首先要做的,就是通过修改BIOS 设置,将CMI8738的IRQ修改到上述四个值之一。 (Image: https://pic1.zhimg.com/v2-29732cb24ecbddb8e7bd709de327bfc8_720 w.jpg?source=d16d100b) 我在BIOS中把IRQ 10和11都改为Legacy ISA,避免它们被分配给PCI总线上的设 备,修改完成后,CMI8738被分配了IRQ 5 (Image: https://picx.zhimg.com/v2-ef7babd304f94b844e4e6314d69e4095_720 w.jpg?source=d16d100b) 这时我们在DOS下加载CMI 8738驱动,就会看到这样的提示“Set SB Port to I/O =220 IRQ=5 DMA=1” CMI 8738 DOS驱动下载: https://www.philscomputerlab.com/c-media-cmi873 8.html (Link: https://www.philscomputerlab.com/c-media-cmi8738.html) (Image: https://pic1.zhimg.com/v2-2ee96d8d2b9abc89f46b41769745d3e2_720 w.jpg?source=d16d100b) 接下来我们在Windows 3.2中按照上面的参数设置SoundBlaster 1.5驱动,就可 以让它在CMI8738的SoundBlaster兼容模式上工作起来。 但此时Windows 3.2无法播放MIDI文件,因为SoundBlaster 1.5驱动并没有90年 代Windows 3.x声卡典型的用OPL2/3模拟MIDI音源的功能,同时也不支持立体声 。 SoundBlaster Pro兼容驱动 如果说使用SoundBlaster 1.5驱动算是找出了CMI8738兼容性的下限,那么CMI87 37的兼容上限在哪里呢?在CMI8738的规格表里可以看到“Legacy audio SBPRO c ompatible”的字样,因此可以推断CMI8738应当可以兼容SoundBlaster Pro的功 能,这样我们就能够获得44.1Khz单声道或22Khz立体声的数字音频,和立体声的 FM合成了。 (Image: https://pica.zhimg.com/v2-0da5daa9705e2df0668cf89b53210a8b_720 w.jpg?source=d16d100b) 如果没有SB Pro声卡是不能直接安装的从网上并不难找到SoundBlaster Pro驱动 下载,但如果直接在CMI8738的电脑上安装,会提示找不到SoundBlaster硬件, 因此我们需要先在一台安装有SB Pro的电脑上安装,然后再“移植”到CMI8738的 电脑上。 SoundBlaster Pro驱动:VOGONS Vintage Driver Library (Link: http://vogo nsdrivers.com/getfile.php?fileid=62) DOSBox提供比较完整的SB Pro模拟,因此我们不需要真正的SB Pro硬件就可以解 包出驱动本身。在dosbox.conf文件中更改“sbtype”参数为“sbpro1”或“sbpro2” ,类似这样。 sbtype=sbpro2 然后就可以在DOSBox中安装SoundBlaster Pro的驱动了。如果你的DOSBox里没有 Windows,安装到下图这一步就可以直接退出了。在DOSBox的C盘SBPRO目录里, 已经有了包括Windows驱动在内的完整SoundBlaster Pro驱动。 (Image: https://pica.zhimg.com/v2-84acecd81a0ab9c6963089934e0f61bf_720 w.jpg?source=d16d100b) 接下来把DOSBox中的整个SBPRO目录复制到CMI8738的电脑上,如果CMI8738电脑 的Windows 3.x已经安装了SoundBlaster 1.5的驱动,记得在控制面板里先卸载 它,然后回到DOS下运行SBPRO中的Install.exe,选择“Setup Windows”,就会回 到上面的画面。安装完成后启动Windows,应当会听到Windows启动音乐,并会提 示创建程序组。 (Image: https://pic1.zhimg.com/v2-e6ae9a17bf252b60544f74ccd69b2fb0_720 w.jpg?source=d16d100b) 选择“OK”,然后就可以在CMI8738上使用SoundBlaster Pro的完整功能了!包括 由Voyetra / SoundBlaster SuperSAPI FM Driver提供的MIDI音色模拟功能,由 于MIDI乐器都是使用OPL2/3 FM模拟来实现的,所以肯定不如WinGroove等软波表 来的效果好,但却精确的还原了90年代初PC多媒体系统的限制,或者说特色。 (Image: https://picx.zhimg.com/v2-0d9e4b81a73ac92b189d0a57a6cfa25b_720 w.jpg?source=d16d100b) 有了声卡驱动,就可以尝试Marcomedia Director、Encarta、QuickTime等当时 的多媒体软件了! (Image: https://picx.zhimg.com/v2-af26ef3c7dc6dee6825a7047d453b601_720 w.jpg?source=d16d100b)