Experimente mit CGA-Emulation

Ich hatte schon zuvor von jenen sagenhaften Tools gehört, mit denen man CGA-Spiele auf Hercules-Grafikkarten nutzen können soll. Jetzt wurde es Zeit das mal auszuprobieren. Ein bisschen was zu den existierenden Tools und ihrer Funktionsweise habe ich in diesen Artikeln gefunden:

Zunächst verwenden die verschiedenen Grafikkarten-Typen unterschiedliche Adressbereiche:

Die unterschiedlichen Basis-Adressen bei MDA und CGA ermöglichen den gleichzeitigen Betrieb beider Grafikkarten im gleichen System (ja, Zwei-Monitor-Lösungen gab es schon in den 80er-Jahren, siehe auch hier). Die gleichen Basis-Adressen bei MDA und Hercules sind für die Rückwärtskompatibilität notwendig (im Textmodus funktioniert eine Hercules-Grafikkarte genauso wie eine MDA-Grafikkarte). Aber in dieser Kombination ergibt sich eine weitere, besonders interessante Konstellation:

AdresseMDACGAHercules
0xB0000 - 0xB0FFF 4 KB 32 KB
0xB1000 - 0xB1FFF
0xB2000 - 0xB2FFF
0xB3000 - 0xB3FFF
0xB4000 - 0xB4FFF
0xB5000 - 0xB5FFF
0xB6000 - 0xB6FFF
0xB7000 - 0xB7FFF
0xB8000 - 0xB8FFF 16 KB 32 KB
0xB9000 - 0xB9FFF
0xBA000 - 0xBAFFF
0xBB000 - 0xBBFFF
0xBC000 - 0xBCFFF
0xBD000 - 0xBDFFF
0xBE000 - 0xBEFFF
0xBF000 - 0xBFFFF

Ein Programm, das eine CGA-Grafikkarte erwartet, wird seine Pixeldaten in den Speicherbereich von 0xB8000 bis 0xBBFFF schreiben, je 2 Bit pro Pixel. Der Trick bei der CGA-Emulation besteht nun darin, die Pixeldaten von dort zu lesen und in den Bereich von 0xB0000 bis 0xB7FFF zu übertragen, mit je 1 Bit pro Pixel. Dies wird mit einem TSR-Programm (Terminate and Stay Resident) erledigt, das nach dem Starten permanent im Hintergrund läuft, üblicherweise durch einen Timer-Interrupt getaktet. Der Haken an der Sache ist, dass dieses Programm oft genug dran kommen muss und dann auch eine Zeit beschäftigt ist -- Zeit die der eigentlichen Anwendung nicht mehr zur Verfügung steht. Je nach Art der Anwendung kann das mehr oder weniger störend wirken (siehe auch nachfolgende Berichte).

Ich habe zwei verschiedene Emulatoren in die nähere Auswahl genommen:

Grundsätzlich funktionieren beide Programme recht gut, jedoch hatte ich den Eindruck, dass bei HERC die Bildgröße nicht angepasst und das Bild somit nicht mittig dargestellt wurde. Ich hatte mir ein paar CGA-Spiele ausgesucht und mit beiden Emulatoren ausprobiert. Zur korrekten Einordnung meiner Bemerkungen sollte ich allerdings dazu sagen, dass ich die Spiele vorher nicht kannte und auch nicht weiß, wie gut sie generell auf einem XT-Rechner laufen. Es kann also sein, dass Kommentare wie "läuft recht zäh" nicht primär mit der CGA-Emulation zusammenhängen, sondern generell durch den Rechner verursacht werden.

Mein erstes Versuchsobjekt war Q*Bert von 1984. Beim Versuch ohne Emulation passierte erst ewig nichts, dann konnte man Töne aus dem PC-Speaker vernehmen, jedoch immer noch den DOS-Prompt sehen. Mit HGCIBM hingegen wurde das Hauptmenü sichtbar. Die Animation des Hersteller-Logos hat sich dabei arg ruckelig bewegt und eine Art "Bewegungsunschärfe" gezeigt, wie ich sie später bei vielen anderen Titeln auch gesehen habe. Das Spiel selbst ließ sich ganz gut steuern (nachdem ich die Controls umgestellt hatte), wenn auch etwas träge; aber allemal besser als nichts!
Mit HERC war die Ausgabe seltsamerweise viel langsamer, auch die Intro-Musik hatte nur mit halber oder noch geringerer Geschwindigkeit gespielt. An dieser Stelle hatte ich schon Bedenken, dass HERC gar nichts taugt, aber zum Glück schien das nur bei Q*Bert so extrem zu bremsen.

Als nächstes habe ich Bad Street Brawler probiert. Mit HGCIBM lief das Spiel ganz brauchbar, aber wäre auch noch mal einen Versuch auf einem schnelleren PC wert. Natürlich muss man Abstriche durch die monochrome Grafik hinnehmen; auf meinem Monitor mit bernsteinfarbener Darstellung sah die Spielfigur wie ein großer Fleischberg aus. Für HERC hatte ich mir notiert, dass das Gameplay viel schneller als bei Q*Bert, aber langsamer als mit HGCIBM war.

Uridium musste ich leider verwerfen -- weder mit HGCIBM noch mit HERC ging es nach dem Splashscreen von Mindscape weiter.

Etwas weiter ging es bei Paperboy: nach dem Intro scheint das Spiel zu starten, es wird eine Bildschirmmaske mit Leben, Bonus, etc. aufgebaut, aber dann kommt nichts mehr. Ich weiß nicht, ob ich hier zu ungeduldig war, aber es schien einfach nicht loszulaufen.

Lemmings hat mir ebenfalls zuerst einen Ladebildschirm gezeigt, dann einen schwarzen Bildschirm, und dabei blieb es.

Mit Zoom! setzte sich die Pechsträhne fort, wobei hier der Titelscreen zunächst hing, dann doch reagiert hat, das eigentliche Spiel gestartet wurde, aber dann doch fest hing. Und zwar in der Art, dass die Tastatur-Eingaben irgendwann zum Piepsen des Tastatur-Treibers führten.

Exodus: Ultima III hingegen hat mich nicht im Stich gelassen. Sowohl mit HGCIBM als auch mit HERC lief das Spiel, dessen Grafik doch schon recht ausgefeilt wirkt. Hier konnte ich eine interessante Beobachtung machen: die Grafik scheint sich manchmal etwas zu verschlucken, sodass Artefakte hängen bleiben, die jedoch verschwinden, wenn sich der Bildschirm weiter bewegt. Sieht ein bisschen danach aus, als würde das alte Bild wieder übermalt werden, jedoch auf Grund der Umrechnung von CGA auf Hercules irgendwie nicht die exakt gleichen Pixel treffen.
Von den bis dahin betrachteten Spielen könnte ich mir hier am ehesten vorstellen ein paar Abende zu investieren. Dadurch, dass Ultima nicht so actionlastig ist und nicht zu viele Bereiche des Bildschirms neu gezeichnet werden, kommt der XT mit der CGA-Emulation ganz gut mit.

Rick Dangerous und Rick Dangerous 2 wollten wiederum beide nicht richtig laufen und mussten aussortiert werden. Teil 1 blieb im Highscore-Screen hängen, bei Teil 2 blieb der Bildschirm komplett schwarz.

The Fellowship of the Ring ließ sich nur mit dem Parameter /4 für den 40-Spalten-Modus starten, aber hing auch hier nach der ersten Eingabe.

Soko-Ban hat ziemlich gut funktioniert und lief auch in sehr akzeptabler Geschwindigkeit (bei Puzzle-Spielen verbringt man ja meistens eh mehr Zeit mit Überlegen als mit Handeln). Das wäre auch so ein Titel, bei dem ich mir gut vorstellen könnte, dass ein Hercules-Rechner mit Emulation viele spaßige (und vielleicht auch etwas frustige) Stunden bringen kann und man die Einschränkungen der Monochrom-Grafik gerne in Kauf nimmt, wenn die Alternative "kein Soko-Ban" lautet.

Tetris hat mich ebenfalls sehr positiv überrascht. Auf Grund der kleinen Bildschirmfläche, die aktualisiert werden muss, stört die Emulation kaum und auch die Einschränkungen durch die Monochrom-Darstellung sind gut hinnehmbar. Insbesondere ist diese Tetris-Implementierung sehr fair was das späte Bewegen der Steine angeht und sorgt mit den zehn verschiedenen Hintergrundbildern (abhängig von der Geschwindigkeitsstufe) für Abwechslung.
Einen starken Unterschied zwischen HGCIBM und HERC konnte ich nicht feststellen, außer dass mit HERC das Bild kleiner war (fehlende Größenanpassung).

Auch Wheel of Fortune lief ohne Probleme und war interessant genug für mehrere Durchgänge. Ich habe zwar kein einziges Spiel gewonnen, aber spätestens bei Redewendungen ist man als Nicht-Muttersprachler ohnehin stark benachteiligt.

Insgesamt hat mich HGCIBM deutlich mehr überzeugt als HERC. Zum einen auf Grund der Bildgrößenanpassung, zum anderen weil die Spiele damit gleich gut oder besser liefen. Was die Sache an sich angeht ist natürlich etwas fragwürdig, warum man sich heutzutage CGA-Spiele in einer Hercules-Emulation antut, wenn man doch relativ leicht an eine CGA- bzw. EGA-Grafikkarte kommen kann. Aber mir ging es bei diesem Experiment ja auch darum zu erleben, wie viel mit einem ollen "Büro-Rechner" möglich war. Hätte ich vor über 30 Jahren Zugriff auf so einen Rechner gehabt, dann wäre CGA-Emulation sicher ein Thema gewesen; und ein bisschen wie Zauberei wirkt es auch heute noch, dass ein kleines TSR-Programm so etwas ermöglicht.


Zurück zur Hauptseite