Soundkarten konfigurieren
Soundblaster
allgemein gilt, dass zur Übergabe der Soundblaster
Ressourceneinstellung an Programme unter DOS die BLASTER
Umgebungsvariable genutzt wird.
Diese kann man sich durch den Aufruf des Befehls set ohne Parameter anzeigen und hat dieses Format:
BLASTER=Axxx Iy Dz Hv Pw Ekkk Tq
xxx - I/O Adresse, meist 220 ,
240 , 260
y - IRQ, meist 5, 7
z - DMA für 8 bit Transfer 0, 1, 3
v - DMA für 16 bit Transfer 5, 7
w - Port für Wavetable oder General Midi bzw. des Midi Ausgangs Ports,
meist 330 oder 300
kkk - Port des EMU8000 Chips der AWE32, meist 620
q - Typ der Soundblaster Karte
1=SoundBlaster v1.x (8-bit mono 22khz) or
compatible
2=SoundBlaster Pro (8-bit stereo) or SB Pro
compatible
3=SoundBlaster v2.x clone (8-bit mono 44khz) or
compatible
4=Soundblaster Pro 2
5=Soundblaster Pro MCA
6=SoundBlaster 16 or SB16 compatible
Typische Einstellung fuer aeltere 8 bit Soundblaster ist:
Port 220
DMA 1
IRQ 5
damit würde BLASTER=A220 I5 D1 P330 T3 sein. (für SB 2.x)
SB16:
16 bit DMA: 5 oder 7
damit würde BLASTER=A220 I5 D1 H5 P330 T6 sein.
AWE32:
EMU8k Port: 620
damit würde BLASTER=A220 I5 D1 H5 P330 E620 T6 sein.
Im Rahmen der Kartenkonfiguration existieren drei verschiedene Soundblaster Versionen:
vollständig jumperbar -
Dies erkennt man daran, dass neben Jumpern für die I/O-Adresse
(IOS0,IOS1) weitere Jumperblöcke für IRQ und DMA existieren.
Dies sieht man z.B. an dieser Soundblaster Karte, wo Jumper für IOS (Adressse), DASx (DMA low), DBSx (DMA high) und ISx (IRQ) existieren.
Hier schreibt man einfach in die autoexec.bat (am Beispiel einer SB16):
set BLASTER=A220 I5 D1 H5 P330 T6 - Hier sollte man natürlich die gejumperte Konfiguration einsetzen.
C:\SB\MIXERSET /P /Q
- den
Mixer einstellen
semi PnP -
Dies erkennt man daran, dass nur Jumper für die I/O-Adresse auf der Karte vorhanden sind. Wie z.B. bei dieser Soundblaster Karte.
Hier schreibt man einfach in die autoexec.bat (am Beispiel einer SB16):
set BLASTER=A220 I5 D1 H5 P330 T6 - Hier sollte die
gejumperte Adresse der Karte stehen hinter A... und bei DMA und IRQ die
gewünschten Ressourceneinstellungen.
C:\SB\DIAGNOSE /S
- Das Tool
Diagnose.exe übernimmt die Werte der BLASTER Umgebungsvariable und
konfiguriert IRQ/DMA der Karte.
C:\SB\MIXERSET /P /Q
- den
Mixer einstellen
vollständig PnP:
Dies erkennt man daran, dass die Karte keine Jumper für die Ressourceneinstellung hat. Wie z.B. bei dieser Soundblaster Karte.
Hier geht die Konfiguration leicht anders. Hat man die Treiber für
die PnP Soundblaster Karten vom Creative Server heruntergeladen, findet
man für DOS zwei wichtige Tools: ctcm und ctcu.
Weiterhin gibt es eine Datei ctpnp.cfg. In dieser Textdatei stehen die
Ressourcenvorgaben. Ruft man ctcm auf, liest es diese Datei aus und
versucht die Karte auf diese Ressourcen zu konfigurieren.
Sind diese Ressourcen nicht frei, versucht ctcm andere freie Ressourcen
zu finden. Ist es erfolgreich, so wird die Karte auf diese konfiguriert
und ctcm schreibt die Datei ctpnp.cfg neu mit den aktualisierten
Ressourcen.
Wenn man pragmatisch herangeht, ruft man einmal ctcm.exe manuell auf.
Findet ctcm freie Ressourcen, so setzt es die BLASTER Variable
entsprechend.
Durch Hardware Umbauten am System könnte es passieren, dass
ctcm.exe je nach Zustand andere freie Ressourcen findet und damit sich
die Einstellungen der Soundblaster ändern. Für Spiele, denen
man direkt im Setup die Soundblasterressourcen vorgibt, ist dies
natürlich unpraktisch, so dass es wünschenswert ist, dass
ctcm immer die gleichen Ressourcen probiert. Dies kann man erreichen,
indem man seine Wunschkonfiguration in die ctpnp.cfg einträgt und
diese Datei danach mit attrib +r ctpnp.cfg auf Nur-Lesen setzt.
in der autoexec.bat
SET CTCM=C:\CTCM - oder
wo sich ctcm.exe sonst befindet
C:\CTCM\CTCM.EXE
- ctcm aufrufen, es die Karte konfiguriert und BLASTER gesetzt
C:\SB\MIXERSET /P /Q - den
Mixer einstellen
für AWE32/64 PnP kommt noch das hinzu:
in autoexec.bat
SET MIDI=SYNTH:1 MAP:E MODE:0
C:\SB\AWEUTIL
/S
- aktiviert die Adlib OPL3-Funktionalität auf der AWE Karte.
Hierbei wird aweutil nicht resident geladen, sondern nur der OPL3-Chip
durch den EMU8000-Chip laut geschaltet. Das feste Routing des OPL3
durch den EMU8000 Chip auf der AWE32 nimmt in jedem Fall 2 Stimmen weg,
so dass 30 Stimmen für den Wavetable Synthesizer übrig
bleiben.
Um mit einer SB32/AWE32 General Midi Kompatibilität zu bekommen muss man
AWEUTIL resident laden, mit:
AWEUTIL /EM:GM
statt GM kann man auch GS fuer General Sound oder MT32 fuer Roland MT32
Emulation wählen.
Die Dateien Synthgm.sbk , Synthgs.sbk und Synthmt.sbk müssen sich
dafür im Verzeichnis befinden.
AWEUTIL /U entläd den Emulator aus dem Speicher.
AWEUTIL funktioniert nicht mit Software, die den Protected Mode
nutzt, also allen Programmen, die z.B. DOS Extendern wie DOS4GW
oder ähnliches nutzen.
Weiterhin kann AWEUTIL keinen MPU401 Smart Modus emulieren.
In einer Windows9x DOS-Box benötigt man kein AWEUTIL und die
General
Midi Emulation wird über den Windows Treiber zur Verfügung
gestellt. Sie ist recht gut, nur leider laufen in der Win9x Dosbox
nichtmehr alle Spiele. Wenn man Speicher auf der Karte aufgerüstet
hat, empfiehlt
sich das Laden eines guten SoundFonts mit dem AWE Control Panel.
Ein Nachteil der SB16 und AWE ist, dass sie als SB Pro
angesprochen nur Mono ausgeben. Leider liefern gerade ältere
Spiele die noch auf Disketten erschienen sind oft nur 8 Bit Samples und
dazu passende SB Pro Unterstützung mit. Falls man Wert auf Stereo
Wiedergabe bei solchen Spielen legt, ist zu überlegen eine
günstige Karte eines Drittherstellers zu nutzen. Diese
sind oft SB Pro kompatibel.
Sogut wie alle Soundblaster Karten lassen sich ueber die CTxxxx Nummer identifizieren. Diese steht auf der Karte
drauf.
Gravis Ultrasound
Bild (eines Nachbaus?)
Die Hardware der GUS wird normalerweise per Jumper festgelegt.
Guenstig ist Port 240, IRQ Aufnahme und IRQ Wiedergabe auf 7 und DMA
Aufnahme und Wiedergabe auf 7.
Dadurch kann man nicht mehr gleichzeitig Aufnehmen und Wiedergeben,
jedoch hat nur einen IRQ und DMA belegt und Port 220 für Soundblaster
frei.
Nach der Installation der GUS Software (aktuell 4.11, gussetup
schlägt immer fehl beim testen von DMA - kein Grund zur Sorge)
trägt man in der
autoexec.bat ein:
SET ULTRASND=240,7,7,7,7
SET ULTRADIR=C:\GUS
- oder wo man sonst seine GUS Software hin installiert hat.
C:\GUS\ULTRINIT.EXE -dj
- Initialisiert GUS und deaktiviert Game Port (aktuell V2.31)
Das reicht für die GUS aus.
Die GUS hat keinen direkten digitalen Ausgabekanal wie eine
Soundblaster. Sie besitzt einen Digitalen Signalprozessor (GF1) mit
Speicher (512KB
original, 1MB aufgerüstet und Standard).
Jede digitalen Audiodaten müssen erst in den Speicher geladen werden
um sie dann auszugeben. Die GUS bietet 32 unabhängige Stimmen, die vom
GF1 unabhängig von der originalen Sample Rate hochgesampled,
interpoliert und gemixt werden. Durch die begrenzte Rechenleistung
ergibt sich ein Abfall der internen Sampling-Rate bei der Nutzung von vielen
Stimmen:
Active Playback Active
Playback Active Playback
voices
rate voices
rate voices rate
14
44100
21
29400
27 22866
15
41160
22
28063
28 22050
16
38587
23
26843
29 21289
17
36317
24
25725
30 20580
18
34300
25
24696
31 19916
19
32494
26
23746
32 19293
20 30870
Daher deaktiviert gute Playersoftware ungenutzte Stimmen. Trotz diesen
Einschränkungen bietet diese Karte mehrere Features, die sie besonders
macht.
Sie ist sehr gut dokumentiert und hat viel Software Support.
Insbesondere Demos der Demoszene unterstützen die GUS direkt,
seltener eine SB.
Sie entlastet den normalen Computer vom mixen der Audiostimmen, was bei
älteren CPUs erheblich Performance kostet. So ist beispielsweise
ein 386DX-16 mit dem einfachen Mixing von 6 Stimmen schon
vollständig ausgelastet.
Auch ein schneller Pentium ist ausgelastet, wenn 32 Stimmen mit
qualitativ hochwertigerer Interpolation über die FPU per Software
gemixt werden müssen. Bei älteren Spielen, die diese Methode
der Musikwiedergabe genutzt haben, wurden also eher schnelle und
einfache Softwaremixing Routinen ohne Interpolation verwendet. Hier hat
eine GUS den Vorteil, dass diese Berechnung vollständig und in
hoher Qualität auf der Soundkarte abläuft und damit
einerseits die CPU davon befreit und gleichzeitig qualitativ besser ist
als die das Software-Mixing.
Der Speicher wird als dynamischer Wavetable bei Midi Wiedergabe
genutzt, wobei nur die für den Song nötigen
Instrumentensamples geladen werden.
Daher bekommt man trotz geringen onboard Speichers eine sehr gute
Samplequalitaet. Der gesamte Instrumenten Sample Pool liegt dabei
auf Festplatte und umfasst knapp 6,5 MB. Damit hat man 1 MB
Wavetable RAM pro Song zur Verfügung. Eine normale AWE32 im
Vergleich hat alle 192 Instrumentensamples in 1 MB ROM.
Gravis hat fuer nahezu jedes ältere DOS Spiel Treiber nachgeliefert,
die die GUS direkt unterstützen.
Desweiteren gibt es einen Emulator der Soundblaster und General Midi /
MT32 umfasst und nur knapp 2 kb im unteren Speicherbereich benoetigt.
Er heisst MegaEm (aktuell 3.11) und benötigt EMM386 , QEMM386 oder
einen ähnlichen V8086 Speichermanager.
Er wird per megaem -gm
aufgerufen. Statt gm kann man auch mt schreiben fuer MT-32 Emulation.
Mit megaem -i kommt man in einen interaktiven Modus, wo man über ein Menü den Emulator auch einstellen kann.
megaem beinhaltet die Funktionalität von Ultramid (siehe weiter unten).
Hat man die ältere 2.x Version von Megaem ist das Setup eine getrennte Datei: mesetup.exe
Bei der Wahl des emulierten MIDI-Ports kann man einen real
vorhandenen 'überdecken'. MegaEm
gibt zwar einen Hinweis, aber funktioniert trotzdem. Es fängt die
Ausgabedaten ab, bevor sie das eventuell vorhandene echte Gerät
erreichen und spielt über die GUS ab.
Beim ersten Start baut sich Megaem einen General Midi Soundfont
aus den *.pat Dateien. Für eine GUS mit 1 MB RAM wird z.B. eine
Datei mit dem Namen large.bnk erstellt.
Falls man nur himem.sys laden darf, kann man nur ultramid.exe nutzen.
Für die GUS gibt es auch eine Soundblaster Emulation. Hierbei
sollte jedoch gesagt werden, dass die GUS sich konzeptionell stark von
einer Soundblaster unterscheidet, was die Emulation erschwert.
Daher ist zu empfehlen eine echte Soundblasterkarte parallel zur GUS zu
nutzen. Durch die Häufigkeit der verfügbaren SB-Karten ist es
vergleichsweise einfach eine zu besorgen.
Falls man die Soundblasteremulation der GUS trotzdem nutzen will:
Nutzt man einen V8086 Speichermanager wie EMM386, so kann man die SB Emulation in MegaEm 3.x aktivieren.
Falls man ein Spiel hat, das nicht mit EMM386 funktioniert, kann man
immernoch SBOS (aktuell 3.82) benutzen.
Für die Audio Interface Libraries (AIL bzw. Miles Driver) muss man
vorher die Funktionalität von ultramid laden. Also entweder megaem oder ultramid.exe.
UltraMid dient dazu die 32 Stimmen der GUS für die AIL Treiber
aufzuteilen. Einige Stimmen bekommt der AIL Treiber für die
Ausgabe der digitalen Samples und andere der AIL Treiber für die
Musikwiedergabe.
Typisch wählt man in diesen Spielen im Soundsetup immer zwei
Soundlösungen aus, eine für Digital und eine für Musik.
Mit ultramid -f kann man das TSR wieder entladen.
In seltenen Fällen startet man ultramid mit dem Parameter -c , der
die *.pat Dateien in den Speicher der GUS vorläd. Im allgemeinen
übernimmt das das Spiel selbständig.
Bei Spielen die den AIL32 Treiber nutzen, wie Sim City 2000 muss man kein ultramid laden.
Ein weiteres erwähnenswertes Tool ist GusDrive
II , womit man den Speicher der GUS als RAM Drive nutzen kann.
Startet man es von der Kommandozeile, so verhält es sich wie
ultrinit.exe (nur mit mehr Ausgabe von Informationen zur Karte).
Der Gusdrive Treiber benötigt nur ein paar hundert Byte Speicher, wenn man ihn in der config.sys läd.
Natuerlich sollte man nicht gleichzeitig die GUS fuer Musik benutzen.
Das RAM Laufwerk behält selbst nach einem Computerkaltstart die Dateien
und ist danach wie vorher verfügbar, wenn man GusDrive II wieder läd.
Das Basispaket findet man hier.
(ca. 16 MB)
Enthalten ist:
GUS Software V4.11 incl. der Midi Patches
MegaEm 3.10b
Ultramid 1.12
Ultrainit 2.31
SBOS 3.82
alle AIL Treiber (Miles)
Digpak Treiber
alle? verfügbaren Zusatztreiber für Spiele
GusDrive2
Falls jemand wirklich ALLES möchte (ca. 114MB ohne EAW Patches), möge
er mir doch bitte eine mail schicken.
Maxi Sound 64 Home Studio
Bild der
Karte
Bei dieser Karte handelt es sich um eine spaete ISA Soundkarte, die wie
der Name schon vermuten laesst 64 unabhaengige Stimmen beherrscht.
Kernstueck ist der Dream SAM9407. 9407 heisst der Chip weil er im Juli
1994 erschien. Dieser Chip ist ein Digitaler Signalprozessor mit
eigener Firmware.
Um der Karte noch etwas mehr Standards zu geben wurde ein Crystal 4236
davor verbaut. Dieser Chip liefert SB, SB Pro, Windows Soundsystem und
Adlib Kompatibilitaet. Dazu ISA PnP und der SAM9407 wurde als externer
Midi Synthesizer eingebunden. Wie man auf dem Bild sieht kann man
Wavetablespeicher zu den 4 MB Wavetable Rom nachruesten, bis zu 32 MB.
Weiterhin bietet der Dream Chip nicht nur Midi Funktionalitaet, sondern
auch 8 digitale Stereokanaele bis 64khz als Ausgabe und 2 als Aufnahme
- gleichzeitig. Dazu kann der DSP noch die
ueblichen Effekte wie Reverb, Chorus usw. auf die Kanaele rechnen.
Klingt soweit absolut super und um einiges fortgeschrittener als der
EMU8000 der auf den SB AWE verbaut ist.
Wenn da nicht die Software wäre...
Zurück nach 1994, es gab noch kein Windows 95 und Dream lieferte eine
Standard Firmware fuer den SAM9407 und einen Referenztreiber fuer
Windows 3.1.
Dies wurde nahezu 1:1 von Guillemot übernommen. Als Windows 95
herauskam, wurde der alte Windows 3.1 Treiber nur insoweit geändert,
als dass man Schnittstelle schrieb, die den 16bit Treiber Win9x fähig
machte. Die Software zu dem Crystal Chip wurde immer aktuell gehalten,
weil dort ja neue Referenztreiber von Analog Devices kamen.
Der DSP hat eine eigene Firmware, durch deren eigene Änderung man
beliebig viele neue Faehigkeiten hinzufügen kann. Da die Karte 2
Stereo Ausgänge hat, z.B. 5.1 Sound oder ähnliches.
Terratec hat es mit ihrer EWS64XL, die eine nahezu identische Hardware
hat vorgemacht, dass es durchaus möglich ist.
Einen ambitionierten Programmierer schien es jedoch bei Guillemot
gegeben zu haben, der die Maxi Sound 64 Utilities geschrieben hat, die
jedoch irgendwann im Beta Stadium abgebrochen wurden und
daher noch recht buggy sind.
Zurueck zur Konfiguration und wie man trotzdem die Faehigkeiten bei DOS
Spielen aktiviert. Da der Crystal Chip nur SB Pro Kompatibilitaet
bietet, liegt das Hauptaugenmerk auf der General Midi Faehigkeit des
Dream Chips.
Zuerst muss man den Crystal Chip konfigurieren, dazu gibt es das
Programm CS4232C.EXE das die Ressourceneinstellungen aus der
CWDAUDIO.INI liest.
Man muss beachten dass die Einstellungen fuer die WSS und SB Pro
Ressourcen bei Int, DmaPlay und DmaCapture dieselben sind.
Hinter CDIO und CDInt verbirgt sich der Dream Chip, meist auf 330, 9.
cs4232c ist eines der Programme die über PnP konfigurieren und den
Chip initialisieren. Mit /O /C erzwingt man die Einstellungen zu
setzen, wie in der *.ini Datei vorgegeben..
Nun sollte der Crystal Chip sichtbar sein und damit auch der Dream
Chip. Dieser muss auch noch initialisiert werden.
Dazu gibt es zwei Programme:
94dinit.exe oder eine aus Korea, was zur
Hoontech Soundtrack 97 mitgeliefert wird, die auch nahezu baugleich ist
und pnp97set.exe heisst.
Mit diesen Programmen muss man die Firmware in den DSP laden und soll
auch einen Soundfont laden können, wobei ich das bisher nicht
geschafft habe.
Keines der Programme bringt eine Fehlermeldung, wenn man eine Datei statt ROM angibt, aber 10MB sind
irgendwie auch nicht in 1s auf einem langsamen Rechner geladen... (ohne
Smartdrv und Festplattenaktivität?!?)
Auf jeden Fall muss man den Port angeben, mit dem man den Dream Chip
konfiguriert hat und die Firmware.
Falls jemand 'wirklich' unter DOS einen Soundfont geladen bekommen hat,
möge er mich mach anschreiben :-)
Danach sollte der Dream Chip im General Midi Modus bei Port 300
oder 330 (je nachdem) verfügbar sein und einen guten Klang liefern.
Wenn man mehr möchte, kann man vorher Win9x hochfahren einen Soundfont
mit den Maxi Utilities laden und dann das DOS Spiel im Fenster starten.
Fuer die 8 digital Stimmen des DSPs gibt es wohl keine Unterstützung
unter DOS.
Hier nun noch die Ressourcen zu der Karte sortiert.
Treiber Version 5 fuer Win 9x
Treiber die DirectX5 unterstuetzen
fuer Win 9x (neuer als V5)
Treiber V3.0 fuer NT4
Treiber fuer die Hoontech
Soundtrack 97, teilweise auch fuer die Maxisound nutzbar
Der DLS Reader von Dream
Maxi Sound 64 Utilities fuer Win9x und
NT4, trotz Beta und Bugs ein sehr nuetzliches Programm
9 MB General Midi Soundfont
11 MB General Sound Soundfont
Hier noch ein wenig Dokumentation zum Dream Chip, die ich im Netz
gefunden habe:
Dream 9407 Datasheet
Dream 9407 Treiber API
Mittlerweile gibt es auch einen Treiber für Win 2K/XP. Es handelt
sich um eine Auskopplung des SAM9407 Treibers der Maxi Sound 64 Home
Studio Pro. Diese hat als Codec einen Chip von ESS.
Dazu installiert man unter Win2K zuerst den recht allgemeinen Treiber
für den Crystal 4236 Codec. Danach installiert man den SAM9407
Treiber.
Falls jemand diesen Treiber möchte -> mail.