Soundblaster 16 und Roland SCB-55 quirks

Auswahl, Einrichtung und Betrieb von Rechnern und Komponenten
Antworten
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Soundblaster 16 und Roland SCB-55 quirks

Beitrag von elianda »

Hallo,

so nun habe ich ein Roland SCB-55 erstanden.

Zum System:
Pentium 233 MMX auf GA586HX, GUS 3.4 + SB 16 SCSI 2 (CT1770) und paar Kram.

Zuerst wollte ich das SCB-55 auf die Maxisound 64 meines anderen DOS-PCs stecken, musste aber feststellen, dass der Speicherriegel des Dream-Wavetables im Weg ist.
http://mail.lipsia.de/~enigma/neu/pics/maxisound.jpg

Da meine AWE32 keinen Waveblaster Anschluss hat, habe ich im Schrank noch 2x SB16 gefunden. Die AWE32 ist genaugenommen eine SB32 IDE PnP.
http://mail.lipsia.de/~enigma/neu/pics/sb32_ide_pnp.jpg
Aber auch die SB AWE32 IDE PnP hat keinen Waveblaster Anschluss:
http://mail.lipsia.de/~enigma/neu/pics/ct3620.jpg
(der Unterschied der Karten ist der fehlende 512kB RAM bei der SB32 PnP)

Die SB16s sind eine MCD ASP und eine SCSI-2 (auch mit ASP).
(Ich hatte auch noch diverse SB16 Vibra, die aber alle keinen Waveblaster Anschluss mehr haben)
SB16 MCD ASP:
http://mail.lipsia.de/~enigma/neu/pics/ct2230.jpg
DSP 4.13, halb PnP ueber Diagnose /S

Also habe ich die AWE32 herausgenommen und das SCB-55 zuerst auf der SB16 MCD ASP probiert.
Ging auch super bis auf ein leichtes knacken bei der Tonwiedergabe. Also habe ich die SCSI-2 genommen, und das knacken war weg.
http://www.cooling-station.net/hardware ... arten/297/
(SB16 SCSI-2 DSP 4.12, alles wird gejumpert, man braucht nur SET BLASTER=...)

Einbau SB16+SCB-55 General Midi -> alles super.


Das erste auffaellige kam mit dem Spiel Gabriel Knight (von Sierra). Da klang die Wiedergabe so, als ob Daten verloren gehen wuerden bzw. falsche Daten ankommen.
Effekt ist, man hoert
- weniger Spuren, meistens bleibt es am Anfang eine ganze Weile still, bis mal aus einer Spur zufaellig Noten kommen
- falsche Instrumente, man kann die Melodie ahnen
- es klingt bei jedem Testlauf anders
- scheinbar IRQ Bursts die den Rechner auslasten

Und speziell fuer 5u3: Es passiert auch, dass Noten haengen bleiben, weil es Note Offs verschluckt.


Ich habe eine Weile gebraucht, um herauszufinden wo das Problem ist.

Das ganze scheint ein Timingproblem zu sein, das mit der Implementierung des MPU401 Treibers des jeweiligen Spiels zusammenhaengt. Wenn ich mit cpucache.com den Cache des Pentiums deaktiviere, dann spielt die Musik in Gabriel Knight korrekt. Wenn ich nur die Turbotaste druecke und er von 3.5x66 auf 3.5x50 taktet -> 175 MHz reicht das nicht aus.

Den gleichen Effekt gibt es bei Lotus Turbo Challenge und Monkey Island. Vermutlich auch noch bei anderen Spielen.

Weitere Seltsamkeiten:
Die ueblichen DOS Midi Player wie Midplay, Megamid und GSPlay spielen anstandslos auch auf 233 MHz (Langzeittests stehen noch aus)

Fuer die Umschaltung auf Variation 127 bzw. 128 fuer MT32 Wiedergabe habe ich mir die Tools fuer das SCC-1 heruntergeladen.
SongCanvas 3.0, CHKSCC mit MPUPLay und SCMode.

Diese betagteren Programme zeigen ein interessantes Verhalten:

SongCanvas erkennt immer ein MIDI Geraet. Ist der PC schnell dann wird es aufgrund von IRQ Bursts? unglaublich langsam sobald man etwas abspielen will. Macht man den PC langsam spielt es zwar, aber irgendwie stimmen die MIDI presets nicht, so dass es falsch klingt. Auch GS-Reset wirkt da nicht.

CHKSCC in der HIMEM Konfiguration gebootet findet kein MPU Geraet. Mit QEMM oder EMM gebootet findet es ein MPU Geraet bei Port 330 IRQ 5 (das ist der SB-IRQ seltsamerweise), friert dann aber ein sobald man etwas abspielen will.
MPUPlay zeigt ein aehnliches Verhalten, mehr oder weniger zufaellig erkennt es mal Port und/oder IRQ, wenn es doch mal spielt, sendet es aber nichts. Gilt auch wenn man Port und IRQ explizit vorgibt. Hier ist egal ob ich den PC langsamer mache.

SCMode findet kein MPU-Geraet egal was ich mache.

Das heisst keines der Tools funktioniert, obwohl z.B. SCMode auch fuer SCB-55 gehen soll.


In meinem anderen DOS-Rechner ist eine Maxisound 64 drin mit einem Dream basierten GM/GS Geraet. Das sieht genauso wie ein dediziertes MPU401 Geraet auf 330,2/9 aus. Dort gehen die Spiele ohne dass ich den Rechner verlangsame. Ok der Rechner ist ein Pentium 166 MMX, also noch 9 MHz langsamer als der Pentium 233 MMX mit Turbo-Off (aka 175 MHz).
Ich glaube aber nicht, dass es dieser Geschwindigkeitsunterschied ist, sondern dass bei dem SCB-55 ein Timingproblem auftritt. Ich weiss auch nicht ob es an der Kombination mit der SB16 liegt und andere Traegerkarten davon nicht betroffen sind.

An 5u3: Bitte nimm mal eine Konfiguration wo du Hanging Notes mit einer Soundblaster Traegerkarte hast und verlangsame den Rechner. Gibt es die Hanging Notes immernoch?
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1986
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Beitrag von ChrisR3tro »

Hallo elianda!

Bei Creative+Waveblaster hatte ich auch nur Probleme. Ich bin letztendlich zu dem Schluß gekommen, daß die MPU-Implementation von Creative einfach Schrott ist und den ganzen Aufwand nicht wert.

Die einzigen Creative-Karten die bei mir keine Probleme mit hängengebliebenen Noten machten waren die ersten Soundblaster 16-Modelle der Revision CT17XX. Allerdings rauschen die wie ein Wasserfall.

Mit Creative als Hostkarte ist man grundsätzlich schlecht beraten, finde ich. Deshalb setze ich auch entweder auf externe MIDI-Geräte oder auf Standalone-Lösungen wie SW60XG oder SCC-1.

Ich hab' also praktisch resigniert was die Problemlösung mit Creative-Waveblaster angeht.

Gruß,
Christoph
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

Nach deaktivieren von passive Release im Bios spielt Musik in
Gabriel Knight, Lotus Turbo Challenge und Monkey Island aber mit Hanging Notes.
Wenn ich trotzdem noch cpucache deaktivieren, dann spielt es ohne Hanging Notes...

http://www.techarp.com/showFreeBOG.aspx ... &bogno=125

Zusammenfassung:
P233 MMX, Passive Release Enabled:
GK : totaler Midi Trash (quasi random data)
Lotus : totaler Midi Trash (quasi random data)
Monkey: totaler Midi Trash (quasi random data)

P175MMX, Passive Release Enabled:
GK : totaler Midi Trash (quasi random data)
Lotus : totaler Midi Trash (quasi random data)
Monkey: totaler Midi Trash (quasi random data)

P233MMX, Passive Release Enabled, Cache OFF:
GK : works
Lotus : works
Monkey: totaler Midi Trash (quasi random data)

P175MMX, Passive Release Enabled, Cache OFF:
GK : works
Lotus : works
Monkey: works only with EMM or QEMM loaded in Virtual80x86 Mode

P233MMX, Passive Release Disabled, Cache ON:
GK : totaler Midi Trash (quasi random data)
Lotus : works
Monkey: totaler Midi Trash (quasi random data)

P175MMX, Passive Release Disabled, Cache ON:
GK : works
Lotus : works
Monkey: totaler Midi Trash (quasi random data)

P233MMX, Passive Release Disabled, Cache OFF:
GK : works
Lotus : works
Monkey: totaler Midi Trash (quasi random data), rarely works with hanging notes

P175MMX, Passive Release Disabled, Cache OFF:
GK : works
Lotus : works
Monkey (HIMEM): works, hanging notes
Monkey (EMM/QEMM): works !

NU7.0 Sysinfo speed rating:
P233MMX: 794
P175MMX: 595
P233MMX Cache Off: 56.7
P175MMX Cache Off: 42.5

ScummVM / Win98 works (full speed)
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

Ich denke ich habe die Loesung:

Es war auffaellig, das zusaetzliche Zeit durch herabsetzen der CPU Speed oder Overhead durch Vx86 Manager den Zustand verbessert hat. Weiterhin war auffaellig, dass nicht jedes Spiel betroffen ist und es scheinbar von der Implementation des MIDI Treibers abhaengt...
Die Frage war nur noch, ob es um IRQ Latenz oder I/O Zugriffe geht.

Wenn ich 16 Bit bzw. 8 Bit I/O Recovery Time im BIOS hochsetze spielt es vom Sound Canvas problemlos. (ja auch Monkey Island bei Full Speed)
http://www.techarp.com/showFreeBOG.aspx?lang=0&bogno=1
http://www.techarp.com/showFreeBOG.aspx?lang=0&bogno=25

Ich habe in einem ersten Versuch das Maximum gewaehlt von 4 bzw. 8 (vorher stand es auf 1 / 1)

Ich werde mir heute Abend das ganze noch etwas genauer anschauen. Unter Umstaenden kann man Passive Release auch wieder aktivieren.


Eine Frage, die ich in dem Zusammenhang auch gleich noch testen werde ist, ob man damit den SpeedBug bei der Musikwiedergabe von Day of the Tentacle auch erschlagen kann.

Ich haette gerne mal Response von den anderen, die SB16 + Wavetable Board betreiben ob das die Probleme dort auch loest.
Benutzeravatar
5u3
Kommandozeilenfetischist
Beiträge: 184
Registriert: Do 21. Sep 2006, 17:05
Wohnort: Wien

Re: Soundblaster 16 und Roland SCB-55 quirks

Beitrag von 5u3 »

Hallo allerseits,

Ehrlich gesagt bin ich nicht sicher, ob wir dasselbe Problem meinen. Daher hier eine kurze Liste mit den Symptomen, die das "hanging notes"-Problem charakterisieren. Alle Punkte dieser Liste wurden von mehreren Leuten bestätigt:
  1. Betroffen sind alle SoundBlaster-Karten mit folgenden DSP-Revisionen: 4.11, 4.12, 4.13.
  2. Das Problem tritt dann auf, wenn man MIDI und SB-Digitalsound gleichzeitig verwendet.
  3. Zurzeit ist kein Hardware- oder Software-Patch bekannt, der den Fehler beseitigt.
  4. Es konnte bisher nicht nachgewiesen werden, daß das Problem mit der Rechnerkonfiguration zusammenhängt.
So weit, so schlecht. Nun zu eliandas Tests:
elianda hat geschrieben:Ich habe eine Weile gebraucht, um herauszufinden wo das Problem ist.
Das ganze scheint ein Timingproblem zu sein, das mit der Implementierung des MPU401 Treibers des jeweiligen Spiels zusammenhaengt.
Ich stimme zu, daß das Problem möglicherweise durch die Art und Weise ausgelöst wird, wie der MPU401 durch den Spieletreiber angesprochen wird. Allerdings tritt der Fehler bei Karten mit dem 4.05er DSP niemals auf, was eher darauf hindeutet, daß Creative bei den späteren DSP-Revisionen irgendwas Grundlegendes verpfuscht hat und die Spieletreiber eigentlich gar nichts dafür können.
elianda hat geschrieben:Den gleichen Effekt gibt es bei Lotus Turbo Challenge und Monkey Island. Vermutlich auch noch bei anderen Spielen.
Bei diesen beiden Spielen gehe ich eher dvon aus, daß etwas anderes den Effekt verursacht. Beide Spiele geben keinen Digitalsound aus wenn man die Roland-Option auswählt, daher sollte der Fehler erst gar nicht auftreten (siehe Punkt 2 oben). Allerdings unterstützen beide Spiele auch kein General-MIDI, sondern nur MT-32. Die SCB-55 hat zwar einen Emulationsmodus für MT-32, dieser kann aber eine MT-32 nicht vollständig nachbilden. Ich nehme einmal an, daß hier der Hund begraben liegt.
elianda hat geschrieben:Weitere Seltsamkeiten:
Die ueblichen DOS Midi Player wie Midplay, Megamid und GSPlay spielen anstandslos auch auf 233 MHz (Langzeittests stehen noch aus)
Das ist gar nicht seltsam, die genannten MIDI-Player verwenden auch keinen SB-Digitalsound nebenbei, daher tritt der Bug auch nicht auf.
elianda hat geschrieben:SCMode findet kein MPU-Geraet egal was ich mache.
Das heisst keines der Tools funktioniert, obwohl z.B. SCMode auch fuer SCB-55 gehen soll.
Soweit ich weiß, benötigt SCMode ein 100% MPU401-kompatibles Interface, d.h. es funktioniert nicht, wenn die SCB-55 auf einer SoundBlaster-Karte steckt.
elianda hat geschrieben:An 5u3: Bitte nimm mal eine Konfiguration wo du Hanging Notes mit einer Soundblaster Traegerkarte hast und verlangsame den Rechner. Gibt es die Hanging Notes immernoch?
Das war eines der ersten Dinge, die ich getestet habe. :wink:
Der Vollständigkeit halber die Daten: 486DX 25 MHz, alle Caches aus, Turboschalter aus (=zusätzliche Waitstates), Speicher- und ISA-Timings auf Schneckentempo: Die Hanging Notes waren immer noch da. In dieser Konfiguration waren die meisten Spiele unspielbar, weil zu langsam.

Ich werde heute abend auch noch ein paar Tests machen, vielleicht fällt mir noch etwas auf...
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

Ok ich werde heute Abend das Timing Problem noch weiter eingrenzen und danach nochmal auf Hanging Notes testen, bei gleichzeitigen digital Sound ueber die SB16.
(wobei Tyrian ausgfaellt, da es die SB16 als Soundblaster nicht erkennt ;) )
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

Ergebnis:
16 Bit I/O recovery time auf NA = 3.5 cycles
8 Bit I/O recovery time auf 6 = 9.5 cycles
Passive Release Enabled

funktioniert anstandslos.

Konnte bisher auch keinen Hanging Notes Bug feststellen.
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

Noch eine kleine Randnotiz: Jetzt erkennt Tyrian auch die SB16 als Soundblaster.
Antworten