#257 – retro PC madness – Sysline SLT450 – VII

Was waren das für Speicher-Engpässe, mit denen wir uns da beim letzten Mal herumschlagen mussten! 😀 Ich hoffe, dass es heute nicht ganz so eskaliert und wir einfach ohne größere Probleme noch ein paar Games zum Laufen bringen können. Bevor wir aber starten, habe ich eine gute Nachricht: Nach Tagen der Recherche habe ich tatsächlich den Hersteller und Typ des Mainboards herausgefunden!

Ich kann euch gar nicht sagen was das für ein Aufwand war! xD Ich musste mir hunderte (vielleicht sogar tausende) Bilder, bzw. Skizzen von Mainboards in verschiedensten Datenbanken ansehen, um endlich auf das richtige Board zu kommen. Trotzdem war es die Mühe wert, denn mittlerweile wissen wir, dass es sich bei dem guten Stück um ein Board vom Typ „486-20/25/33/50SC (REV. A)“ der Firma „First International Computer, Inc. (FIC)“ handelt. Das ist insofern wichtig, da wir jetzt auch im passenden „Jumper Manual“ nachsehen können, wie die Jumper auf der Platine gesetzt sind und was sie eigentlich bedeuten. Spätestens wenn wir etwas an der Hardware des PCs verändern (müssen), werden diese Informationen relevant. 🙂

Schön für mich, aber das interessiert euch vermutlich eher wenig. Vielleicht sollten wir lieber schnell zurück zu den Spielen kommen. Als erstes würde ich gerne die restlichen Spiele der „Zehn Adventures“-CD angehen:

Mit „Maniac Mansion“ und „Zak McKracken and the Alien Mindbenders“ sind zwei ganz frühe LucasArts-Werke (in denen die Firma noch unter dem Namen Lucasfilm Games geführt wurde) am Start. Um ehrlich zu sein, möchte ich gar nicht groß auf beide eingehen. Ja, es sind Point-and-Click-Adventures und ja, es sind zwei absolute Klassiker der Videospielgeschichte. Punkt. 😛 Mir persönlich sind die beiden Frühwerke im Vergleich zu späteren LucasArts Spielen allerdings etwas zu „roh“ und ungeschliffen. Aus Nostalgiegründen dürfen sie aber trotzdem auf unserem Retro-PC nicht fehlen! 😉

Doch was ist das? Leider ertönt kein Sound. Ok, es sind zwei sehr alte Spiele, dementsprechend erwarte ich keine Audioausgabe über die PC-Boxen, aber zumindest über den Systemlautsprecher (auch PC Speaker oder Buzzer) genannt sollten wir doch ein paar Töne hören, oder?

Ich traue es mich gar nicht zu sagen, aber auch in der Analyse dieses Problems habe ich nochmal die ein oder andere Stunde versenkt. Ich habe natürlich zuerst mit Softwareproblemen oder fehlenden Konfigurationsdateien gerechnet. Aber nein, wisst ihr was der Fehler ist? Der dumme Lautsprecher ist defekt! Kein Witz – wer kommt denn auf sowas?! Das habe ich erst herausgefunden, als ich den PC Speaker eines anderen Computers an den Sysline-PC angeschlossen habe und dieser hat funktioniert!

Wir müssen also den Buzzer tauschen. Glücklicherweise habe ich einen gleichwertigen Ersatz auf eBay ergattern können:

Not so fun Fact: Es war gar nicht so einfach, so einen alten PC Speaker aufzutreiben. Heutzutage sind solche Piepser – wenn überhaupt noch – direkt auf dem Mainboard verlötet oder in Form von sehr kleinen Piezo-Lautsprechern in Computern oder Laptops verbaut. Diese alten, größeren PC-Speaker sind wohl vermutlich schon längst auf irgendwelchen Schrottplätzen gelandet… 🙁

Um den Mini-Lautsprecher zu tauschen, müssen wir die Metallhalterung abschrauben, den alten Buzzer entfernen und den neuen dafür einbauen. Ausnahmsweise mal kein Hexenwerk! 😉

Ganz ohne Probleme geht es aber auch hier nicht, denn leider besitzt der neue Lautsprecher nur eine Buchse, die für 3 Pins vorgesehen ist, während der Stecker des alten Speakers vier Pins hatte. An und für sich ist das kein Problem, da die beiden mittleren Pins sowieso nicht verwendet werden, aber so lässt sich der Stecker nicht am Mainboard anstecken. Da ich keinen Pin am Mainboard abzwicken möchte und eigentlich auch keine Lust habe, den Stecker des Speakers umzulöten, habe ich einfach zwei Jumperkabel dazwischen geklemmt. Sicherlich nicht die beste Lösung, aber da wir bei der BIOS-Batterie bereits so gepfuscht haben, bin ich relativ schmerzbefreit was die Verkabelung angeht! 😀

Wusstet ihr, dass man über den Befehl „echo STRG+G“ (um das Zirkumflex und den Buchstaben „G“ einzugeben) einen Pieps-Sound auf dem PC-Speaker ausgeben kann? Ich nicht! 😀 Damit lässt sich aber prima testen, ob der Lautsprecher geht. Läuft! 🙂

Nach diesem kleinen, ungeplanten Hardware-Abstecher, sollten wir schnell zurück zu den restlichen Spielen kommen. Einer meiner absoluten Favoriten, was DOS-Spiele angeht, ist der Adventure-Klassiker „Day of the Tentacle“. Die skurrile Geschichte rund um ein durchgedrehtes, purpurfarbenes Tentakel, welches die Weltherrschaft an sich reißen will (weil es giftiges Wasser getrunken hat und ihm dadurch Arme gewachsen sind), weiß mich auch nach all den Jahren immer noch zu begeistern.

Nach einem entspannten Installationsvorgang dank relativ komfortablen (sogar mit der Maus bedienbaren) Setup-Menü werden wir aber beim Spielstart mit einer Fehlermeldung konfrontiert:

Oh nein – nicht schon wieder der Arbeitsspeicher. Ich schwöre es euch – ich denke mir das alles nicht aus, so läuft es eben manchmal in der Praxis! 😀 Was ist es denn diesmal? Das Spiel meckert, dass es zu wenig „EMS“ findet. Was ist das nun wieder? Nun, EMS steht für „Expanded Memory“ (EMS), eine weitere, längst vergessene Art von Arbeitsspeicher aus den Anfängen der x86-PCs. Auf Grund des 640kB-Limits wurden verschiedene Lösungen geschaffen, um Anwendungen zu ermöglichen, auf mehr Arbeitsspeicher zuzugreifen. Bevor es XMS als Lösung für den Zugriff auf höhere Speicherbereiche gab, wurden spezielle Steckkarten (genannt „Memory Expander“) verkauft, die zusätzlichen RAM (für gewöhnlich ein bis vier zusätzliche Megabyte) enthielten und dem PC zur Verfügung stellten. Wie später auch bei XMS, blendeten diese Karten einen Teil ihres Speichers an einer bestimmten Stelle im 1-MB-Adressraum ein, so dass ein Programm darauf zugreifen konnte.

Fun Fact: Tatsächlich war EMS der einzige Weg um älteren Systemen bzw. Prozessoren (8088, 8086 und 80286) die kein XMS (also die Adressierung von Speicherbereichen oberhalb der 1MB-Grenze) unterstützen, eine Möglichkeit zu bieten, mehr Arbeitsspeicher nutzen zu können!

Soviel zur Theorie, denn leider haben wir in unserem Computer keine dieser speziellen Karten verbaut, um dem System etwas EMS-Speicher zu spendieren. Ein Kauf kommt für mich auch nicht in Frage, denn leider sind diese ISA-Einsteckkarten kaum mehr zu bekommen und wenn dann nur für einige hunderte Euros – nein danke! 🙁

Fun Fact: Theoretisch könnte man so eine Karte (sofern man sich eine entsprechende Platine herstellen lässt) auch selber basteln, aber ich sehe es in der aktuellen Situation (Rohstoffengpässe, etc.) als unrealistisch an, alle benötigten Teile zu einem bezahlbaren Kurs zu ergattern. Schade! 🙁

Fail. Und jetzt? Wir haben Glück, denn es gibt auch eine Möglichkeit EMS-Speicher ohne externe Hardware zur Verfügung zu stellen. Unser guter Freund, der Speichermanager EMM386 kommt uns dabei nochmal zu Hilfe. Dieser kann nämlich den „Expansionsspeicher“ (so wird EMS auf Deutsch genannt) simulieren und uns einfach Bereiche aus dem „Erweiterungsspeicher“ (XMS) als EMS zur Verfügung stellen. Letztendlich ist das das gleiche Prinzip, wie wir es bereits in Artikel 256 bei den UMBs für die Gerätetreiber oder Betriebssystemkomponenten kennengelernt haben! 😉

Dafür muss der bisher konfigurierte EMM-Parameter „NOEMS“ durch die Werte „RAM“ und den gewünschten EMS-Speicherbereich in Megabyte ersetzt werden:

Hat sich was verändert? Tatsächlich – laut „mem“ haben wir jetzt tatsächlich 2MB (virtuellen) EMS-Speicher frei. Dafür hat sich der verfügbare XMS-Speicher etwas verringert – logisch, irgendwo muss der Arbeitsspeicher ja herkommen. Leider sieht es so aus, als würde der EMM-Speichermanager wohl auch etwas konventionellen Speicher benötigen, um den EMS-Speicherbereich zu simulieren. So haben wir anstatt der beim letzten Mal extra freigeräumten 598.176 Byte nur noch 532.128 Byte zur Verfügung. Das ist nicht gut, denn so laufen einige Programme (wie z.B. Electro Body, welches 580.000 Bytes benötigt) nicht mehr. Mist! 🙁

Immerhin – Day of the Tentacle funktioniert jetzt ohne Probleme. Ein kleiner Erfolg…? 🙂

Fun Fact: Wer das Spiel auf einem modernen System spielen möchte, dem kann ich die remasterte Version (z.B. auf Steam, Xbox oder PS4 erhältlich) ans Herz legen! 😉

Trotzdem liegt mir der sehr geringe, freie konventionelle Speicher im Magen. So können wir das nicht lassen, schließlich sollen ja alle Spiele funktionieren. Aber wie? Nach einiger Recherche habe ich herausgefunden, dass sich der EMM noch mit einem weiteren Parameter, welcher ihm die zusätzliche Nutzung eines UMB-Speicherbereichs („I=B000=B7FF“) erlaubt, optimieren lässt.

Fun Fact: B000-B7FF ist ein Speicherbereich, welcher verwendet wird, wenn man ein monochromes Display an den Computer anschließen würde. Da wir einen Farb-Monitor (VGA-Display) verwenden, können wir den Speicherbereich bedenkenlos dem EMM zur Verfügung stellen!

Tatsächlich hat das was gebracht und schon haben wir 561.952 Bytes freien Arbeitsspeicher. Leider ist das immer noch etwas zu wenig, damit wirklich alle (bzw. die meisten) Anwendungen laufen.

Auf der Suche nach weiteren Optimierungsmaßnahmen ist mir der üppige Logitech-Maustreiber ins Auge gefallen. Diesen haben wir zwar bereits in der AUTOEXEC.BAT mit Hilfe von LOADHIGH (zumindest teilweise) in den hohen Speicherbereich verlegt, trotzdem liegt ein Teil des Treibers immer noch im konventionellen Speicherbereich und verbrät ein paar Kilobyte!

Da hilft nur eins: Wir müssen das Teil durch einen etwas schlankeren Treiber ersetzen. Mit „CuteMouse“ habe ich da auch genau die richtige Software gefunden. Das Programm belegt nicht mal 4kB Speicher und sollte uns somit wesentlich mehr Spielraum für andere Games lassen. Analog dem bisherigen Maustreiber wird CuteMouse über die AUTOEXEC.BAT gestartet. Den „fetten“, originalen Maustreiber habe ich bei der Gelegenheit deaktiviert:

Not so fun Fact: Erst habe ich es mit einer aktuellen Version (2.1) probiert, aber die hat die Logitech-Maus nicht erkannt. Ironischerweise funktioniert es mit einer älteren Version (1.9). IT sucks! 😀

Natürlich sollten wir auch noch prüfen, ob die Maus auch mit dem neuen Treiber läuft. Und siehe da – das Eingabegerät funktioniert noch (hier am Beispiel von „The Secret of Monkey Island“ sichtbar):

Und das beste: Durch die Aktion haben wir wieder genügend konventionellen Speicher freigeräumt. Damit sollten wir gut gerüstet sein und so ziemlich jedes Spiel laufen lassen können! 🙂

Um ein für alle Mal das Thema „Speicherbelegung“ hinter uns zu lassen, habe ich noch den MIDI-Treiber der Soundkarte (Yamaha SW20-PC) nach Anleitung im Handbuch in den höheren Speicher Bereich geladen. Das bringt zwar nicht viel, aber Kleinvieh macht auch Mist! 😉

Uff, wo waren wir? Wollten wir uns nicht eigentlich ein paar Spiele ansehen? 😛 Also gut, abschließend möchte ich mit „Prehistorik“ noch ein kleines Jump ‘n‘ Run installieren. Nach dem Kopiervorgang der Dateien auf die Festplatte kann das Spiel beim ersten Start konfiguriert werden. Leider gibt es auch hier Probleme. Obwohl unsere Yamaha-Soundkarte SoundBlaster-kompatibel arbeiten sollte, wird sie nicht erkannt. Scheinbar fehlt ein Treiber namens „CT-VOICE.DRV“.

Die meisten Spiele kommen tatsächlich ohne zusätzliche Soundtreiber aus, aber einige sind auf spezielle Treiber und teils sogar spezielle Versionen der einzelnen Treiber angewiesen. Damit wir Prehistorik zum Fliegen bekommen, müssen wir die CT-VOICE.DRV (welche mit SoundBlaster Pro Karten 1992 verkauft wurde) herunterladen und in das Spielverzeichnis packen. Anschließend lässt sich der SoundBlaster über das Spielsetup konfigurieren und wir können das Spiel mit Sound spielen.

Not so fun Fact: Zu allem Überfluss sind in einigen dieser Treiberbibliotheken die Systemparameter (z.B. IRQs, etc.) fest verdrahtet. Somit braucht man nicht nur die richtige Version für ein bestimmtes Spiel, sondern teilweise sogar die richtige Treiberversion für die eigene Systemkonfiguration! Uff…

Egal. Es funktioniert. Dank der SoundBlaster-Konfiguration hört sich das Intro ganz anders an, als ich es über den PC Speaker gewohnt bin! Ich denke, der Aufwand hat sich gelohnt! 😉

Und schon sind wir wieder am Ende des Beitrags angekommen. Ist es nicht verrückt, wie man sich immer wieder durch irgendwelche technischen Fehler und Probleme ablenken lassen kann? 😛 Was soll‘s, dann drehen wir eben noch eine kleine „Ehrenrunde“ und schließen das Thema beim nächsten Mal dann aber endgültig ab.

In diesem Sinne – bis die Tage, ciao!

Write a comment