Pages: [1]   Go Down
  Print  
Author Topic: AWE DOS and Midi  (Read 5636 times)
0 Members and 1 Guest are viewing this topic.
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« on: May 15, 2006, 10:45:15 PM »

The Sound Blaster AWE32/Sound Blaster 32 isn't the greatest sound card ever made.  I have read about its sound output quality and the results aren't flattering.  In fact, if it weren't for the EMU8000 chip and Sound Font technology I would say shun the thing and stick with the Sound Blaster 16, at least for gaming purposes.  The AWE64 has much better audio output quality, especially the Gold, which has an SPDIF port built-in.  But the AWE32 has its good points:

Wavetable Connector
True Yamaha YMF-262 OPL3 Chip
ASP/CSP QSound Audio
Non-Plug'n'Play
Industry Standard 30-pin SIMM sockets

The EMU8000 effects processor has its attractions and the success of the AWE suggests that not a few games actually supported the device and programmed it, taking advantage of its reverb, chorus and insertion effects.  In Windows, there would be no problem for a game to work the device to its fullest; the drivers do all the work and memory constraints aren't a big deal.  In DOS, the story is quite different.

DOS games, of the vintage that the AWE32 would be expected to run, had eliminated the limits of conventional and expanded memory through the use of a DOS Protected Mode Extender.  These programs put the processor from the 20-bit Real Mode, with its 1MB RAM addressing limit, into the 32-bit Protected Mode, with a 4GB RAM addressing limit.  As DOS was a 16-bit operating system, the Extender had to maintain compatibility with existing DOS services.  A tricky task by any standard.  

Into this picture comes Creative with its latest and greatest, the Sound Blaster AWE32.  Creative's previous workhorse, the Sound Blaster 16, had hardware support for Roland's MPU-401 Midi Interface in UART Mode.  The UART Mode interface is easy to program and provides no real midi services, simply a conduit for midi data in either direction.  Creative decides that duplicating this interface in hardware on the AWE32, notwithstanding that they are doing just that for the rest of the Sound Blaster 16's functionality, is not in their plans.  

So, while the AWE32 has full support for Sound Blaster Midi, it has no hardware support for MPU-401 Midi, which is much more widely used by game programs.  This is an intolerable state of affairs, so Creative had to come up with a solution.  It created the AWEUTIL driver, a DOS TSR that emulated a MPU-401 Midi Interface.  Unfortunately, it had to use the NMI, (non-maskable interrupt), to do so.  DOS Games that used Protected Mode Extenders also used the NMI in such a way as to be incompatible with Creative's AWEUTIL.  The result is that games would be limited to the FM Synthesis of the OPL3 chip instead of the vastly superior Wavetable Synthesis of the EMU8000 chip on the AWE32.  

This is some problem, to be sure.  But I propose three solutions.  First is the waveblaster connector on the AWE32 (which is not on the SB32, AWE32 Value, or any AWE64 card.)  The wiki states that the you cannot access the Waveblaster through MPU-401 ports, but I don't really believe that.  Unlike the OPL2, which uses two of the EMU8000's 32 voices for effects processing, a hardware wavetable daughtercard would presumably have its own hardware for that purpose.  Also, if you wished to use the EMU8000 and Sound Fonts in addition to the Waveblaster device, you would have no voices left for the Sound Fonts once the daughterboard got through with them.  Finally, the Waveblaster II had an EMU8000 chip on the daughterboard for effects processing of its ROM samples.  I think that there is an MPU-401 interface on I/O 300 or 330 and there are jumpers to support that assumption.  

However, if the MPU-401 cannot communicate with the Waveblaster connector, there is always the gameport connector.  If it is to have any real usefulness, the MPU-401 must connect through the gamport otherwise it isn't very useful.  

Finally, Creative Labs did produce AWE32 upgrade cards for existing Sound Blaster 16 and Sound Blaster 32 owners.  This is a separate card which contains only the EMU8000 with its 512KB of on-board RAM and its two SIMM sockets.  It has a cable to connect its sound output with the Sound Blaster 16/32's output.  The cards are the CT-1920 and the CT-1922, the latter of which comes with S/PDIF output.  It uses the standard AWE32 I/O ports.  It still uses AWEUTIL, but this can be restricted to EMU8000 midi only as the Sound Blaster 16 doesn't need anything like that for its MPU-401 interface.  While it cannot provide EMU8000 effects to the OPL3 chip, well, nothing is perfect.  In exchange, however, the two voices taken by that chip on the main AWE32 should be returned to the EMU8000.
Logged

apeman
Senior Member
*
Offline Offline

Posts: 233



View Profile
« Reply #1 on: May 15, 2006, 11:31:32 PM »

And your question is...?
Logged

Roland CM-32L, CM-500, LAPC-I (w/ MCB-1), MPU-401AT, MT-32, SC-55mkII, SCB-55, SCP-55 (w/ MCB-3)
Yamaha MU10
Creative Sound Blaster 1.5, SB Pro 2, SB 16 ASP, SB 16 PnP, SB AWE64 Gold, SB Audigy 2 ZS, SB X-Fi Elite Pro
Zemus
Senior Member
*
Offline Offline

Posts: 1,366


View Profile WWW
« Reply #2 on: May 15, 2006, 11:49:43 PM »

Quote
The AWE64 has much better audio output quality, especially the Gold, which has an SPDIF port built-in.
My AWE32 has an S/PDIF output too.

Quote
So, while the AWE32 has full support for Sound Blaster Midi, it has no hardware support for MPU-401 Midi, which is much more widely used by game programs.
Well, there's still the actual MIDI/joystickport on the back which is the same as the one on the SB16. The AWEUTIL needs only be used for games that lack AWE32 support and where you don't want to use the OPL3. Has anyone tried to make an improved AWEUTIL that works with protected mode games?
Logged
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« Reply #3 on: May 16, 2006, 12:55:28 AM »

I am rapidly coming to the conclusion that in DOS, no midi output will be allowed, whether through the EMU8000, the waveblaster or the gameport without the MPU-401 emulator, AWEUTIL,  being loaded and running.  The only other alternative is that the program itself support the Sound Blaster Midi interface or programming the EMU8000.  

Therefore, the best way to retain proper MPU-401 UART compatibility but to use the power of the EMU8000 is with the third option I examined, use an upgrade card.  

The best way would be to disable the MPU-401 emulation on the card and use another device as an MPU-401 Interface, perhaps a Roland card with true Normal/Intelligent Midi capabilities.  You could still use the EMU8000 or an attached daughterboard in Windows, through the Sound Blaster Midi Interface and through native mode should the software support it.
Logged

Zemus
Senior Member
*
Offline Offline

Posts: 1,366


View Profile WWW
« Reply #4 on: May 16, 2006, 01:02:00 AM »

Quote
I am rapidly coming to the conclusion that in DOS, no midi output will be allowed, whether through the EMU8000, the waveblaster or the gameport without the MPU-401 emulator, AWEUTIL, being loaded and running.
which switch would you use to make it send the MIDI data to the gameport? The /S switch just sets the settings for the FM synth and unloads it. The /EM switch loads the program into the memory and actively redirects the MIDI data to the EMU8000.

Before I had an SCC-1, I used the gameport of my AWE32 to record music, and I managed to record both from TIE Fighter and Dark Forces, which are both protected mode games.
Logged
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« Reply #5 on: May 16, 2006, 02:22:50 AM »

Quote

Before I had an SCC-1, I used the gameport of my AWE32 to record music, and I managed to record both from TIE Fighter and Dark Forces, which are both protected mode games.


Presumably you were able to playback as well.  What sort of device did you have at the other end of the gameport?  They could have used Sound Blaster Midi instead of MPU-401 UART Midi, or possibly supported the AWE32 natively.  

I can see from the pictures that a true AWE32 uses the CT1745 Mixer Chip and on some models the CT1748 ASP/CSP chip.  The Sound Blaster 16 provides MPU-401 UART Mode through its CT1741 DSP and CT1746 Bus Interface Chips.  Both are unlikely to have been kept with the AWE32, because if they were then this would be all much ado about nothing.
Logged

Cloudschatze
Guest
« Reply #6 on: May 16, 2006, 02:51:10 AM »

Quote from: Great Hierophant
But the AWE32 has its good points:

True Yamaha YMF-262 OPL3 Chip


Eh, I don't recall seeing an actual Yamaha chip on any AWE32 card. I think they may use the little-known "CQM synthesis" adaptation.
Logged
Rhizome
Senior Member
*
Offline Offline

Posts: 542



View Profile WWW
« Reply #7 on: May 16, 2006, 05:04:56 AM »

Quote from: Cloudschatze
Eh, I don't recall seeing an actual Yamaha chip on any AWE32 card. I think they may use the little-known "CQM synthesis" adaptation.

I don't either, but, some of the AWE32 cards never had the "Creative OPL" chip either.
Logged
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« Reply #8 on: May 16, 2006, 11:27:17 AM »

Quote

Eh, I don't recall seeing an actual Yamaha chip on any AWE32 card. I think they may use the little-known "CQM synthesis" adaptation.


Actually, you are generally right, most AWE32s don't seem to have the YMF-262.  Neither do some of the later SB16s, but I did see an SB32 with a YMF-262, however.  Another strike against the AWE and towards my increasingly preferred solution.
Logged

Zemus
Senior Member
*
Offline Offline

Posts: 1,366


View Profile WWW
« Reply #9 on: May 16, 2006, 05:32:49 PM »

Quote
Presumably you were able to playback as well. What sort of device did you have at the other end of the gameport? They could have used Sound Blaster Midi instead of MPU-401 UART Midi, or possibly supported the AWE32 natively.
I had an SB Live! connected to the other side. What do you mean by Sound Blaster MIDI exactly? Is it some non-MPU-401-compatible protocol? I used the GM driver which was meant for SCC-1 and other GM compatible cards according to the game.

My card has an YMF chip as well. It's one of those cards that were sold without the 512kB of built-in RAM and labeled as the SB32. I did upgrade it with 8MB of RAM which according to the manual would make it a full AWE32. It also has a CD-ROM interface, but no waveblaster connector.
Logged
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« Reply #10 on: May 16, 2006, 08:16:06 PM »

Quote
I had an SB Live! connected to the other side. What do you mean by Sound Blaster MIDI exactly? Is it some non-MPU-401-compatible protocol? I used the GM driver which was meant for SCC-1 and other GM compatible cards according to the game.


I was originally going to put this in another post, but here goes:

I will compare the midi interfaces contained on the major ISA Sound Blaster cards.  All Sound Blasters support midi in some form, but there are some important differences to point out.  Here are the differences on each card:

Sound Blaster 1.0-1.5
These cards support the proprietary Sound Blaster Midi interface only.  No Roland MPU-401 Midi support is included and games requiring such for midi will not work on these cards.  Sound Blaster Midi has three disadvantages compared to Roland MPU-401 Midi.  First, sending data out requires you to send an output command every time.  This interrupts any midi data input because that requires another command to set the mode.  Second, because the midi port shares the same I/O ports, interrupt and interrupt status bit, you cannot play digitized sound and midi at the same time.  Third, MPU-401 is very different and most early games that support a midi device like the MT-32 expect it.  Some later Sound Blaster 1.5s use DSP version 2.0, whereas all 1.0s and the earlier 1.5s use DSP version 1.x, and this allows access to the features described in the next paragraph.  

Sound Blaster 2.0-Sound Blaster Pro 2.0
These cards support all of the above with two improvements.  First, a UART mode, not to be confused to the MPU-401 UART mode, was added to  facilitate the sending of midi data.  In short, this meant that one the mode was set, the programmer could send midi data to the port without a preceding write command.  It also allowed sending by writing to the DSP and receiving of midi data by reading from the DSP at the same time.  Second, for reading midi in data, a Time Stamp mode was added to let others know how long midi data should be played back.  

Sound Blaster 16
This family of cards support all of the above and add the MPU-401 UART mode.  The UART Mode offers a degree of compatibility with software that expect a Roland midi interface.  However, many games expect a genuine Roland MPU-401 Interface, where the Normal or Intelligent midi mode is also available, which can be used for the simple purposes for which games use midi.  If the game uses UART/Dumb Mode, it should work on the Sound Blaster 16, but if it uses Normal/Intelligent mode it will not work on the Sound Blaster 16.  The MPU-401 UART Mode behaves very similarily to the Sound Blaster Midi UART Mode, but for midi input it does not allow time stamping.  The main benefit to using MPU-401 mode is that the MPU-401 Mode has I/O ports independent of the DSP and uses a different interrupt status bit, so simultaneous output of midi and digitzed sound is now possible.  

Sound Blaster 16s do not contain sound-generating hardware that communicates via midi.  In all Sound Blasters up to this point, this hardware must be connected externally via a gameport-to-midi adapter.  The waveblaster connector allows the user to attach a daughterboard as well as use the gameblaster/midi connector.  The Waveblaster Connector allows for midi input signals only, whereas the gameport/midi connector allows for one midi in and one midi out.  

Sound Blaster AWE32/Sound Blaster 32/Sound Blaster AWE64
These cards do support the same midi interface as the Sound Blaster 16, but there is a catch.  The interface can only communicate with a midi device attached through the waveblaster connector or the gameport, it cannot communicate with the on the EMU8000 Effects Processor via the hardware interface.  In Windows, midi communication to the EMU8000 is supported through the drivers and works as well as the drivers that support it do.  

In DOS or games that use DOS Protected Mode Extenders, there comes a problem.  Creative Labs provided MPU-401 emulation through a TSR called AWEUTIL to get at the EMU8000.  Creative Labs used the NMI interrupt in their MPU-401 emulation.  Unfortunately, DOS Extenders have a problem with this and the result is that software that use DOS Extenders will not run with the AWE32's MPU-401 midi emulation unless the software specifically supports the AWE32's in native mode, programming the EMU8000 directly.
Logged

Cloudschatze
Guest
« Reply #11 on: May 16, 2006, 10:15:41 PM »

Quote from: Great Hierophant


Sound Blaster 16
This family of cards support all of the above and add the MPU-401 UART mode.  The UART Mode offers a degree of compatibility with software that expect a Roland midi interface.  However, many games expect a genuine Roland MPU-401 Interface, where the Normal or Intelligent midi mode is also available, which can be used for the simple purposes for which games use midi.  If the game uses UART/Dumb Mode, it should work on the Sound Blaster 16, but if it uses Normal/Intelligent mode it will not work on the Sound Blaster 16..



Creative released a support TSR called SBMPU401.exe, which, according to description, sounds like the same sort of software-trap that some of the later Ensoniq cards use to provide an MPU ACK.

Anyone ever tried this utility? In theory, it would allow those MT-32 games requiring "intelligent" MPU functionality to work with the SB16.
Logged
bzyphk
Member
*
Offline Offline

Posts: 28


View Profile
« Reply #12 on: October 25, 2009, 03:31:12 PM »

I know this is an ancient thread, but the answer is...no (on a CT2950).  This utility did not magically make SQ3 work with the standard MT32 driver.  The patched MT32SB driver did still work.
Logged
Pages: [1]   Go Up
  Print  
 
Jump to: