This article applies to both the AWE 32 and AWE 64 cards, since the AWE 64 is | |
nothing more than a slightly improved version of the AWE 32. | |
Even though they are one of the best DOS-compatible sound cards, the | |
SoundBlaster AWE cards have their quirks when it comes to MIDI and FM. Here | |
below I list a few observations I made during the years. | |
====== MPU-401 ====== | |
There is no real MPU-401 under port 330h. Applications are expected to use | |
the EMU8000 chip directly instead (usually via I/O 620h). However, a funky | |
MPU-401 emulation layer is provided for desperate people, it requires you to | |
load AWEUTIL as a TSR. AWEUTIL uses some NMI magic to catch I/O events on | |
port 330h, and translates them into EMU8000 messages. This works only with | |
real-mode applications, and even then - not every one. I noticed for example | |
that if I try to use XMS calls right after having output a note to AWEUTIL, | |
the driver will crash (and my PC reboots). If I wait 2ms between AWEUTIL | |
calls and XMS calls, then everything works fine. Also, it won't run correctly | |
on computers that do not support NMI. All this to say: don't count on AWEUTIL | |
as a 100% reliable method to get music (I wasn't able to make it work with | |
Wacky Wheels for instance, no regrets though, since Wacky Wheels MIDI is | |
awful anyway - the OPL music in this game is much brighter). | |
Additional note: for the above-mentionned MPU-401 AWEUTIL emulation to work, | |
the card MUST have the "MFBEN" jumper (JP4) set. This appears to be | |
responsible for generating NMIs. If you do NOT wish to emulate MPU-401 via | |
AWEUTIL, then I'd advise to unset the MFBEN jumper - otherwise you might | |
experience crashes sometimes when an application tries to access the I/O port | |
330h (a message appears on the screen then, saying something like "no NMI | |
handler found" or so). | |
====== FM MUSIC ====== | |
The FM part is not a fully standard OPL3 either (or at least - not directly | |
wired on the I/O port 388h like the original YMF262 should be). It works | |
pretty well and all, but unlike real OPL3, it needs to be activated | |
("rerouted?") by the AWEUTIL driver first (AWEUTIL /S is enough, no need for | |
the TSR part). Note, that at least some AWE boards have a bug that makes FM | |
either muted or noisy whenever an application plays with the EMU chip. The | |
only solution to restore proper FM sound is to re-run AWEUTIL /S again. I | |
observed this bug on two SB64 cards: a CT4500 and a CT4390 ("Gold"). I did | |
not notice it on a SB32 CT2760. | |
====== CUSTOM SOUND FONTS UNDER DOS ====== | |
Applications that use the AWE chip directly cannot be forced into using a | |
specific sound font, they have the total control over sound fonts (and most | |
of the time, they simply use the default ROM sound font). However, it you use | |
the AWEUTIL MPU-401 emulation (with all the troubles and limitations already | |
explained), you can load a custom sound font into your AWE card so it won't | |
use the 1 MB ROM fonts. This can be interesting if your card has more than | |
1 MB of RAM (for example the AWE64 Gold card comes with 4 MB of RAM, while | |
many other models allow to extend RAM with additional SIMM chips). To load | |
your custom sound font, your will have to find a suitable *.SBK font file | |
first, since AWEUTIL doesn't load SF2 fonts. Then, simply replace the | |
synthgm.sbk file from your SoundBlaster AWE drivers directory by your own SBK | |
file, and you're good to go. Note, that it can take a longish time for | |
AWEUTIL to load the sound font into AWE RAM, so your system's boot time will | |
be delayed by that much. On my PII system, AWEUTIL takes about 6s to load a | |
2 MB SBK file into the SoundBlaster AWE 64 Gold. | |
====== BOOT CONFIG ====== | |
Finally, here I provide my autoexec.bat & config.sys lines related to the SB | |
gold initialization, I hope it will help: | |
=== CONFIG.SYS === | |
DEVICE=C:\SYSTEM\SB64\CTCM.EXE | |
=== AUTOEXEC.BAT === | |
SET MIDI=SYNTH:1 MAP:E MODE:0 | |
CD C:\SYSTEM\SB64 | |
CTCU /S | |
DIAGNOSE /S | |
AWEUTIL /S | |
REM Uncomment the memory hog below only if desperate for MPU-401 emulation | |
REM AWEUTIL /EM:GM /KEY- | |
MIXERSET /P /Q | |
CD \ | |
Note, that I have no BLASTER variable set at all. The BLASTER variable is | |
automatically set by the DIAGNOSE driver. On my system, I obtain this: | |
C:\SET BLASTER | |
BLASTER=A220 I5 D1 H5 P330 E620 T6 | |
SBK sound fonts | |
AWE64FAQ.txt | |
SoundBlaster AWE 64 Gold Install CD.7z |