Tschaak, Tschaak, Tschaak… Wer kann sich nicht an das Rotor-Geräusch des Hubschraubers aus dem Film Apocalypse Now von Francis Ford Coppola aus dem Jahr 1979 erinnern? Der typische Klang eines Helikopters stand vielleicht auch für die Macher des hier besprochenen Videospiels Pate. Denn zweifellos kann auch frühe Heimcomputer-Shooter Fort Apocalypse als ein Action-Meilenstein und wichtiger Klassiker bezeichnet werden.
Die Melange aus Choplifter und Caverns of Mars (dem Vorgänger von Scramble) konfrontiert den Spieler von Beginn an mit der erbarmungslosen und apokalyptischen Härte des menschenfeindlichen Kralthan-Systems. Hier wird geballert, was das Zeug hält. Das Spiel fordert Achtsamkeit. Wer siegen will, muss kämpfen. Stillstand bedeutet Untergang. Kein Wunder also, dass dieser Actionprotz die Fans seiner Generation zum Nachahmen animiert hat.
So können wir euch heute David Riehl vorstellen, der seinerzeit so begeistert von Fort Apocalypse war, dass er das ursprüngliche Spiel selbstständig mit spannenden Elementen umfänglich erweitert und auf diesem Wege Fort Apocalypse II für den Commodore 64 und einen Port den VC 20 programmiert hat. Wir wollten von David wissen, was ihn persönlich dazu motiviert hat und wie er seine Vorhaben technisch umsetzen konnte.
Hinweis: am Ende dieses Beitrags findet ihr die Downloads zu Fort Apocalypse II für den C64 und Fort Apocalypse für den VC 20.
Interview vom 9. Februar 2009
Hallo David, Du scheinst in den legendären Heimcomputer-Tagen ein großer Fan von Fort Apocalypse gewesen zu sein. Wie kamst Du auf die Idee, selbst eine Fortsetzung für das Spiel zu entwickeln? Offiziell hat es ja nie einen zweiten Teil dieses Klassikers von Steve Hales und Joe Vierra gegeben.
Da hast Du Recht. Es gab keine offizielle Fortsetzung von Fort Apocalypse. Hier eine kurze Zusammenfassung: Ich habe mich 1988 hingesetzt und wollte mal schauen, was ich so schaffen kann. Dazu habe ich mir die Grafik des Originalspiels nach einem Reset aus dem Speicher des Commodore 64 geholt und ein bisschen hin- und herprogrammiert. Dann habe ich die Bildschirmteilung durch Interrupt entdeckt, modifiziert und den gelben Hubschrauber flugtechnisch nachprogrammiert… so ging es immer so weiter, bis ich ein fertiges Fort Apocalypse II entwickelt hatte. Ich habe damals den Code mit dem Hexmon Byte für Byte eingegeben, da ich keinen Assembler hatte…
Dann hatte ich mir in BASIC noch einen Creator für die Hintergrundbilder und Höhlen gebaut. Am Ende hatte ich das Spiel bis auf den fremden blauen Hubschrauber komplett nachprogrammiert. Allerdings ist in der Kristallhöhle noch lange nicht Schluss. Es gibt dann noch drei weitere Höhlen. Und ganz unten in der fünften Höhle ist dann erst das Lager, das zerstört werden muss. Außerdem kann man noch ein paar Einstellungen vornehmen: beispielsweise wie lang die Schüsse der Panzer einen verfolgen oder wie viele feindliche Geschosse vorhanden sind. Normalerweise kann ein Panzer einen Schuss abgeben. Erst wenn dieser abgestürzt ist oder getroffen hat, kann ein neuer Schuss abgegeben werden. Sogar wie lang ein Panzerschuss in Richtung Hubschrauber fliegen kann, bis er herunterfällt oder wieviele Schüsse bei der Anwesenheit mehrerer Panzer abgeschossen werden können, ist einstellbar.
Ich denke, die meisten unserer Leser wissen nicht, wie Du das Spiel aus dem Speicher des Commodore 64 herausholen, oder wie Du mit dem Creator neue Höhlen bauen konntest. Wie hast Du das technisch genau gemacht?
Zuerst lud ich das Originalspiel in den Speicher des Commodore 64 und startete es. In der ersten Höhle, also ganz am Anfang des Spiels, führte ich dann einen Hardware-Reset durch Verbinden von Pin 1 und 3 am C64-Userport aus. Danach habe ich mir mit den dafür notwendigen Pokes alle Speicherbereiche durchgesehen, um den für mich offensichtlich für Landschaft, Panzer und Luftminen verwendeten Zeichensatz herauszusuchen. Als ich diesen gefunden hatte, legte ich ihn erst einmal auf Disk ab. Dann suchte ich die Höhle, die in Form von bestimmten Bytefolgen im Speicher zu finden sein musste. Eine optische Erkennung im Hexmon reichte dazu aus, wenn man sich den Speicher in normalen ASCII-Codes angeschaut hat. Also speicherte ich das Bild ab. Das waren 10k.
Das Ganze wiederholte ich auch als ich im aktuellen Spiel in der zweiten Höhle war. Somit hatte ich die Grafik. Dann waren da noch die Sprites. Die suchte ich genau wie den Zeichensatz zuvor. Ich pokte mir ein paar Sprites auf den Bildschirm und pokte dann die verschiedenen Speicherseiten, so dass man die Sprites finden musste. Die beiden so gefundenen Höhlen bereinigte ich dann, indem ich die vorhandenen Luftminen und Panzer entfernte. Im Ergebnis hatte ich dann die beiden leeren Höhlen.
Der Creator bietet nicht sehr viel Komfort. Am Anfang lädt man entweder eines der fertigen Bilder oder man fängt bei null an. Es wird dann das gesamte Bild gezeigt, in welchem man sich per Joystick in alle vier Richtungen bewegen kann. In der Mitte befindet sich ein schnell blinkender Cursor und ein ASCII-Zahlenwert ist voreingestellt. Mit Fire am Joystick setzt man das aktuelle Zeichen in die Gesamtgrafik ein. Mit einem beliebigen Tastendruck kann der ASCII-Wert zwischen 0 und 127 verändert werden. Ist man fertig, so kann man das Bild mit „E“ speichern oder man beendet den Creator.
Es folgen einige Screenshots des BASIC-Creators, der eigens für die Entwicklung von Fort Apocalypse II programmiert wurde.
Als ich die beiden Höhlen hatte, habe ich mir ein kleines BASIC-Programm geschrieben, das mir den im Spiel aktuell gezeigten Bildschirmausschnitt der gesamten Höhle aus den 10k in den aktuellen Bildschirmspeicher pokte. Da dies in BASIC zu lange dauerte, hatte ich hierzu Maschinenroutinen geschrieben. In einer BASIC-Schleife fragte ich den Joystick ab. Je nachdem in welche Richtung ich diesen bewegte, wurde der sichtbare Bildschirmausschnitt um eine Spalte/Zeile bewegt. Dabei wurde auch die spezielle Endlosschleife realisiert.
Damit meine ich, dass wenn man immer weiter nach rechts läuft, man automatisch wieder an der selben Stelle herauskommt. In der Mitte baute ich einen kleinen flimmernden Cursor ein. Mit F7 wurde auf normalen Zeichsatz umgeschaltet und man konnte einen Dezimalwert eingeben. Dieser war dann das aktuelle Zeichen. Wenn ich wieder in die Ansicht ging, dann konnte ich durch die Feuertaste am Joystick das ausgewählte Zeichen in die Höhle „einmalen“. Somit konnte ich die aktuellen Höhlen verändern, aber eben auch neue Höhlen malen. Ich malte insgesamt drei neue Höhlen.
Woher hattest Du ausreichend Programmierkenntnisse, dieses umfangreiche und komplexe Spiel entsprechend zu erweitern? Der Hexmon war ja nicht unbedingt jedem C64-Spieler bekannt. Und auf die Idee einen Creator in BASIC zu programmieren, kamen sicher auch nicht viele.
Ich war schon immer ein Mensch, der sich kaum Informationen von außen besorgte, sondern das nutzte, was gerade so da war. Das ist heute ein bisschen einfacher, da es leichter ist, im Internet etwas zu finden. Damals gab es kein Internet. Ich habe das 64er-Handbuch gehabt. Das musste genügen. Dort stand natürlich nichts über Assembler. Aber durch Kontakte zu Freunden und durch meine Ausbildung, wusste ich, dass der Prozessor 6510 nur Maschinensprache versteht.
Von irgendwo hatte ich den Editor Hexmon erhalten. Diesen benutzte ich eines Tages und gab ein paar Zahlenwerte ein. Der Hexmon schrieb dann die dazugehörigen Assemblerbefehle hin. Über eine 64er-Zeitschrift eignete ich mir das Wissen über die Programmierelemente Akkumulator, X-Register, Y-Register, bedingte Sprünge und Jump Subroutinen an. Das genügte, um später den gesamten Code für Fort Apocalypse II zu entwickeln. Ich fing mit jeder Routine bei einer runden Hexzahl an, damit ich nach unten genügend Platz hatte, falls die Routine länger wurde. Ja ich weiß, dass sind die unprofessionellsten Methoden, aber sie haben zum Ziel geführt. Ich habe es sogar geschafft, dass die Highscoreliste auf Diskette gespeichert wird. Das konnten die meisten 64er-Spiele damals nicht. Ein Umstand, der mich immer geärgert hat. Für die Erstellung der Höhlen habe ich ein BASIC-Programm geschrieben, da es dort nicht auf Performance ankam und es mit BASIC schneller erstellt werden konnte.
Hast Du Fort Apocalypse II nur für Dich allein entwickelt, oder hast Du Deine Version auch mit Freunden getauscht?
Ich habe Fort Apocalypse II meinen Freunden geschenkt. In der Laufschrift, die am Anfang des Spiels erscheint (überspringen natürlich mit SPACE) steht auch extra geschrieben, dass das Spiel weiter kopiert werden soll. Da ich wegen der nicht von mir erstellten Grafik, sowieso keinen Verkauf anstreben konnte und wollte, bin ich diesen Weg gegangen. Außerdem wollte ich dem kommerziellen Vertrieb schon damals entgegenwirken. Dieses Prinzip wurde dann später als Public Domain Software bekannt und ist heute als Open Source Software etabliert.
Fort Apocalypse war das erste aufwendig programmierte Spiel, das ich auf dem C64 gesehen hatte. Am Anfang dachten mein Freund und ich, dass man nur oben die Panzer abschießen muss. Wir entdeckten mehr und mehr, bis wir endlich das ganze Spiel geschafft hatten. Das Umherfliegen in einem virtuellen großen Bild in zwei Dimensionen, beeindruckte uns damals.
Kennst Du noch andere Versionen als die Commodore 64-Fassung? Zuerst wurde das Spiel ja für den Atari 400/800 entwickelt.
Ich kenne nur noch die Version des Spiels für den Colour Genie, den einer meiner Klassenkameraden besaß. Und noch eine Version für den VC 20. Die war ebenfalls von mir, aber in BASIC programmiert. Die Atari-Version kenne ich nicht.
Kannst Du noch etwas mehr über die Programmierarbeit für die VC 20 Version erzählen? Gab es hier Unterschiede im Vorgehen zu dem Commodore 64?
Als ich bei meinem Kumpel Fort Apocalypse auf dem Commodore 64 sah, wollte ich das Spiel auf meinem VC 20 nachprogrammieren. Erst kürzlich gelang es mir, den VICE-Emulator so einzustellen, dass ich die D64-Dateien von den VC 20-Disketten lesen und starten konnte. Da habe ich dann auch noch einmal meine Fort Apocalypse-Version für den VC 20 gespielt.
Beim VC 20 ist das allergrösste Problem, der sehr geringe Speicherplatz. Ich hatte das Super Expander-Modul. Somit hatte ich 6519 Bytes für BASIC-Programme frei. Darin musste ich alles unterbringen. Beim VC 20 ist mit 6519 BASIC Bytes Free ist leider nicht viel zu machen. Die Vorgehensweise musste also anders sein. Ich musste zusehen, was ich in dem kleinen Speicher alles unterbringen konnte. Somit blieb vom Originalspiel nur übrig, dass es einen gelben Hubschrauber gab, grüne Panzer, die schossen und dass man Männchen sammeln musste. Ein Bildschirmscrolling wurde hier nicht umgesetzt. Wenn ich das Spiel eingeladen hatte, waren -136 Bytes frei. Also ein negativer Wert. Ich lud mehr in den Speicher, als Platz vorhanden war, da dies im Zusammenhang mit der Zeichensatzänderung notwendig war. Also sehr gut ausgenutzter Speicher.
Fort Apocalypse II für den Commodore VC 20
Es folgen einige Screenshots von Fort Apocalypse II für den Heimcomputer VC 20. Diese weltweit einzige Version wurde ebenfalls von David Riehl entwickelt.
Wie lange hast Du für die Umsetzung auf dem Commodore 64 insgesamt gebraucht und was waren die größten Schwierigkeiten bei der Erweiterung des Spiels?
Für meine damaligen Projektlaufzeiten erstaunlich schnell. 1988 hatte ich den ganzen Sommer Zeit. Innerhalb von wenigen Wochen hatte ich das Originalspiel nachprogrammiert. Die Entwicklung von Details und vom Navatron dauerten dann doch noch bis Ende 1988.
Zum einen wusste ich nicht, wie ich es schaffen sollte, den unteren Bildausschnitt weich scrollen zu lassen und gleichzeitig oben alles still und flimmerfrei zu halten. Ich wusste, man muss irgendetwas mit dem Bildschirmaufbaustrahl und Interrupts machen. Ich fand eine passende Programmroutine, analysierte sie und bastelte sie mir zurecht. Zum anderen fiel mir keine Lösung ein, wie ich das Navatron zum laufen bringen sollte. Es gab kein Multiprozessing, kein Multithreading und alles was ich programmiert hatte, war einfach zu langsam. Ich entschied mich dann für die Nutzung der langsamen Routine, diese aber immer nur Stück für Stück arbeiten zu lassen. Das kann man auch merken, wenn man spielt. Da ich den Programmcode komplett selber neu erstellt und nur die Grafik übernommen habe, kann man eigentlich gar nicht von Erweiterung sprechen. Beim Spielen sieht es aber so aus.
Und dann war ja noch der Sound. Den habe ich mir im Originalspiel genau angehört und ihn dann aus Erfahrungen mit einem selbst erzeugten Soundprogramm Musikomat programmiert. Um Geräusche erzeugen zu können, mussten auf dem C64 einige Pokes ausgeführt werden. Da dies von Hand mühsam war, habe ich mir ein Programm hierfür geschrieben. In dieses Programm konnten alle Möglichkeiten des SID-Soundchips mit erläuterten Kurzbefehlen in drei Spalten (ähnlich zu einem Textverarbeitungsprogramm) eingegeben werden. Anschliessend konnte alles kompiliert und per Maschinensprachprogramm, welches sich auf den Interrupt gesetzt hatte, abgespielt werden. Durch diese Möglichkeit konnte ich mir die Sounds erarbeiten. Mit Musikomat konnte man auch schöne Musikstücke von Notenblättern in der entsprechenden Syntax einhacken und anschliessend abspielen.
Musikomat
Der Musikomat kann alles aus dem SID ansteuern, was offiziell dokumentiert ist und noch ein paar Zusatzfeatures mehr. Die Musik, die mit relativ logischen Kommandos in drei Spalten (für je eine der drei Stimmen) in einen Editor eingegeben wird, muss mit dem eingebauten Compiler in ein eigenes Musiksteuerformat in den Speicher geschrieben werden. Dort kann es auf Knopfdruck im Hintergrund abgespielt werden, indem ein kleines Maschinensprachen-Programm den Code interpretiert und die entsprechenden SID-Pokes ausführt. Fertige Musikstücke können dann in andere Programme leicht integriert werden.
Erzähle uns bitte ein bisschen mehr über Dich persönlich. Woher kommst Du und wie hat Deine Videospielkarriere begonnen?
Computerspiele sind mir als Kind bei meinem Cousin das erste Mal begegnet. Er hatte diese typischen Telespiele mit Paddle-Steuerung. Das hat mir schon gut gefallen. Jahre später war ich mit meinen Eltern in Italien im Urlaub. Dort gab es eine Spielothek, so wie es sie zu dieser Zeit in Deutschland noch nicht gab. Dort standen die ganzen Kisten: Asteroids, Pac-Man und weitere. Am besten fand ich Pac-Man. 1982 bekam ich dann meinen ersten Homecomputer geschenkt. Einen Commodore VC 20 mit 3583 BASIC Bytes free. Damit beschäftigte ich mich fortan. Ich lernte mit diesem System programmieren und entwickelte mir meinen ersten eigenen Pac-Man.
Hattest Du zu dieser Zeit noch andere Lieblingssysteme und Videospiele?
Ein Freund von mir bekam dann einen Commodore 64. Da gab es dann zum Beispiel Gridrunner. Das fand ich super und wollte es gern auf meinem VC 20 nachprogrammieren. Aber BASIC war hier zu langsam. Irgendwann hatte der Freund mit dem C64 dann Fort Apocalypse. Das war für uns beide ein herausragendes Spiel, an das unserer Meinung nach lange Jahre kein anderes Spiel herankam. Wir spielten es oft. Wir haben es damals von der Datasette geladen. Das Laden dauerte 15 Minuten! Fort Apocalypse ist nach wie vor mein absolutes Lieblingsspiel.
Spaß machten mir aber später vor allem die Spiele, bei denen man zu Zweit spielen konnte wie beispielsweise Bubble Bobble oder Wizard of Wor. Als später der PC aufkam, machte sich bei mir eine große Enttäuschung breit. Die Spiele waren schlechter und ohne einen vernünftigen Sound. Ein PC war eben vor allem zum Arbeiten gedacht. Die PC-Spiele wurden mit der Zeit dann besser und besser, sind nun aber meiner Meinung nach seit Jahren immer gleich. Der Spielspass ist allerdings beim 64er noch genauso gut und besser als bei PC-Spielen oder auch Spielkonsolen. Die bessere Grafik allein bringt es für mich nicht. Also immer noch C64. Selbst meine Kinder (mittlerweile 3 und 4 Jahre alt) stehen jetzt schon auf 64er Spiele…
Was machst Du heute? Spielst Du noch Videospiele?
Heute habe ich aufgrund meiner Arbeit kaum noch Zeit für Hobbies. Ich bin in der IT-Branche im Sicherheitsbereich tätig. Dort programmiere ich zum Beispiel komplizierte performante Multithreadinganwendungen. Aber auch Firewallprojekte, Konzeptpapiere und Projektleitungsaufgaben fallen in meinen Bereich. Zu Hause freuen sich Frau und die Kinder auf mich. Im Keller wartet meine Modelleisenbahn. Wenn dann noch Zeit ist, dann starte ich tatsächlich meinen 64er. Der geht noch immer. Meine Kinder wollen dann dass ich spiele und sie schauen zu. Wenn mein Neffe und meine Nichte zu Besuch kommen, dann spielen sie gerne auch mal ein paar 64er-Spiele. Der 64er ist und bleibt Kult.
David, wir bedanken uns für das detailreiche und freundliche Interview und wünschen Dir für die Zukunft alles Gute.
Downloads
Wenn ihr nun Lust bekommen habt, Fort Apocalypse II von David auf eurem C64 zu spielen, oder vielleicht einmal die VC 20 Fassung ausprobieren wollt, dann bieten wir euch einen ganz besonderen Service. Unter folgenden Links, könnt ihr beide Spiele downloaden! Viel Spaß damit.
C64 Version
VC 20 Version
Wichtige Hinweise: Das Spiel liegt als PRG-File vor. Es wurde mit dem „Extended Grafik Modul VIC-1211A“ geschrieben. Das bedeutet, dass man dieses benötigt bzw. dem Emulator (ich habe WINVice genutzt) hinzufügt, da dort auch erweiterte Basic-Befehle für die Joystickabfragen usw. vorhanden sind. Um das Cartridge VIC1211A einzubinden muss die Datei „vic-20-super-expander-rom.prg“ (können wir hier leider aus Urheberrechtsgründen nicht zum Download anbieten) eingebunden werden. Das geschieht mit File -> Attach Cartridge Image… -> at $B000 -> Datei auswählen. Anschliessend noch Settings -> VIC Settings -> 3k (block 0) und Haken bei Block0.
Überarbeitete Originalfassung vom 24.02.2010
Schreibe einen Kommentar