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:
Adresse | MDA | CGA | Hercules |
---|---|---|---|
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.