Schlagwort-Archive: Bolo

Was bisher geschah: Einem erfolglosen Remake-Entwickler ist es trotz aller Widrigkeiten schließlich doch noch gelungen, alle Originaldateien von SPACOLA mit Hilfe eines Debuggers in einem Atari ST-Emulator zu extrahieren. Doch das sollte noch lange nicht das Ende seiner abenteuerlichen Reise in die Heimcomputer-Vergangenheit des späten 20. Jahrhunderts sein, denn die antiken Hieroglyphen in den Originaldaten mussten erst noch aufwändig von einem gewieften Software-Archäologen entziffert und entschlüsselt werden. Dies ist seine haarsträubende Geschichte.

Da saß ich nun also, mit einem ganzen Haufen alter, unlesbarer Sprite-Dateien aus dem Spiel SPACOLA, ohne irgendeinen Hinweis, was ich damit anfangen könnte, und welche sagenhaften Geheimnisse diese historischen Dokumente letztlich bargen. Lediglich aus den perfekt erhaltenen Dateinamen ließ sich ungefähr ersehen, welche Sprites genau darin zu finden seien. Mein geschätzter Mit-Atarianer und Blogleser Gerry hatte mich glücklicherweise bereits Jahre zuvor mit einem wichtigen Zeitschriftenartikel aus der guten alten „ST Computer“ versorgt, in dem Meinolf Schneider höchstpersönlich im Jahr 1990 über die Entwicklung von Bolo und Esprit berichtet. Dieser Artikel erwies sich als pures Gold und enthielt so einige hochinteressante Einblicke und Fakten, die mir als Entwickler wiederum bedeutende Implementierungsdetails verrieten. Unter anderem beschrieb Meinolf darin einzelne Aspekte seines eigenen Sprite-Formats, den sogenannten „Shapelists“. Wie das Format aufgebaut war, war daraus zwar leider noch lange nicht ersichtlich, aber dafür andere wichtige Eigenarten, die später von Vorteil sein sollten.

Der Hex-Editor HxD zeigt eine SHL-Datei

Das Hilfsmittel Nummer eins war wiederum der Hex-Editor, mit dem ich mir die Dateien Byte für Byte quasi unter der Lupe ansehen konnte. Bei genauerem Hinsehen erkannte ich, dass diese Dateien immer aus mehreren „Blöcken“ bzw. Abschnitten bestehen, nämlich aus mindestens zwei, so wie im Falle der kleinsten Datei „SPI_MINE.SHL“. Diese spezielle Datei sollte mir schließlich zur Lösung des Rätsels dienen, da ich hierüber zum Glück ausreichend wusste. Da sie nachweislich aus genau zwei Blöcken besteht, wusste ich nun ziemlich sicher, dass nur die zwei einzelnen Sprites der beiden Sprengminen des Originals darin enthalten sein konnten. Ich wusste wie diese Sprites genau aussehen, wie groß sie sind, und am allerwichtigsten, dass diese Sprites zu einem großen Teil symmetrisch sind. Meine Chance bestand also darin, in den Shapelists nach genau diesen Symmetrien Ausschau zu halten. Würde ich eine Symmetrie im Bytemuster der Datei wiedererkennen, hätte ich schon einen äußerst wichtigen Ansatz gefunden.

Als ich einige Hexwerte (in Big Endian Bytereihenfolge) in der Shapelist in Dezimal umgerechnet hatte, fand ich so unter anderem die Dateigröße und die einzelnen Spritegrößen wieder, und so konnte ich sogar ausmachen, welches Sprite in welchem Block gespeichert ist. Ich konzentrierte mich also auf den kleineren ersten Block. Es dauerte nicht lange und ich hatte einen Teil ausgemacht, der symmetrisch aussah, und so folgerte ich, dass genau hier die Pixelinformationen begraben sein mussten. Bei einer Monochromgrafik war es zwar durchaus naheliegend, aber ich brauchte trotzdem einige Minuten, um darauf zu kommen, dass hier jedes Byte genau eine Reihe von 8 Pixeln darstellen konnte. Mit Hilfe des Windows-Taschenrechners ließ ich mir die Hex-Werte binär anzeigen, und so malte ich die gesetzten Bits auf ein Pixelgrid. Tatsächlich erkannte ich schon kurz darauf etwas, das zumindest teilweise nach den invertierten Umrissen der linken Hälfte des erwarteten Minen-Sprites aussah. Das war für mich erneut ein entscheidender Durchbruch. Ab hier war ich sicher, ich könne die Shapelists lesen.

In der Folge stellten sich mir bei der Analyse einige wichtige Merkmale des Dateiformats heraus: Die Sprites waren immer kodiert in „Scheibchen“ zu je 8 Pixeln Breite mit variabler Höhe. Zudem gab es pro Sprite meist zwei Schichten: Einen Hintergrund mit Transparenzinformationen, und einen Vordergrund. Manchmal gab es auch nur eine Schicht ohne Transparenz. Anschließend begann der nächste Block, der das nächste Sprite enthielt. Große Teile der Datei verstand ich bis dahin noch nicht, daher entschied ich mich zunächst, diese zu ignorieren, denn ich begann gleichzeitig damit, einen Konverter zu entwickeln, der SHL-Dateien laden und diese in ein anderes Grafikformat übersetzen konnte. Nach ein oder zwei Stunden hatte ich meinen Code schon soweit, dass er die beiden Minen aus der Originaldatei perfekt auf dem Bildschirm anzeigte. Ich wähnte mich bereits am Ziel, als ich zur Kontrolle eine andere SHL-Datei laden wollte, und der Konverter mit diversen Fehlern abbrach. Mit dem Format dieser Datei konnte er nichts anfangen, und so musste ich erneut mit dem Hex-Editor ran.

Ein monochromes Minen-Sprite aus der Shapelist mit Transparenzdaten in GIMP geladen

Ich entdeckte, dass Shapelists bisweilen mehrere „Versionen“ desselben Sprites beinhalteten, aber den Grund kannte ich nicht, bis sich herausstellte, dass jede folgende Sprite-Version im Grunde nur um jeweils einen Pixel nach rechts verschoben war. Die Lösung lieferte besagter ST-Computer-Artikel, in dem Meinolf erläuterte, dass er alle acht Möglichkeiten zur horizontalen Positionierung einer Grafik vorberechnete. Dies war nötig, weil er die Sprites direkt in den Grafikspeicher des Bildschirms kopierte, was natürlich nur in ganzen Bytes möglich war. Er schreibt hierzu genauer: „Will man die Figur auf eine beliebige horizontale Position darstellen, müssen die einzelnen Bits, die ja Bildpunkte repräsentierten, innerhalb eines Bytes verschoben werden. Und dies kann bei vielen zu zeichnenden Figuren für eine 72Hz-Animation zu langwierig sein.„. Diese bit-geshifteten Versionen sind in den Shapelists also allesamt enthalten. Ich entdeckte außerdem, dass die Shapelists im Header immer alle Offsets enthalten, die verwendet werden können, um direkt zum Beginn eines Blocks zu springen.

Nachdem ich meinen Konverter angepasst hatte und er flexibler mit dem Shapelist-Format umgehen konnte, erlaubte mir das bereits, einige Dutzend SHL-Dateien fehlerfrei zu laden, während so manche andere Datei jedoch noch Darstellungsprobleme hatte. Auch dies konnte ich wiederum korrigieren, so dass ich das SHL-Format dadurch immer besser zu verstehen lernte. Am Ende war mein Konverter problemlos in der Lage, alle Shapelists aus Bolo, Esprit, OXYD und Spacola zu laden. Die Shapelists aus OXYD 2 könnte er vermutlich auch konvertieren, aber diese müsste ich dazu natürlich erst mühsam aus dem Spiel holen. Eine letzte Erkenntnis konnte ich schließlich noch gewinnen: Zu jedem Sprite sind in der Shapelist die genauen horizontalen und vertikalen Pixeloffsets gespeichert, also die Zahlenwerte, um wieviele Pixel das Sprite relativ zur Position des entsprechenden Spielobjekts verschoben gezeichnet werden soll – im einfachsten Fall muss man das Sprite nämlich über dem Objekt zentrieren.

Ein Zusammenschnitt mehrerer konvertierter Shapelist-Inhalte aus Bolo (1987), Esprit (1989), und SPACOLA (1991)

Besagten Shapelist-Konverter habe ich mittlerweile nativ in das Remake SPACOLA ECLIPSE integriert, und das Spiel lädt folglich nicht nur die Original-Sounddateien, sondern inzwischen auch schon einige der Original-Spritedateien. Die Transition hin zu Shapelists ist aktuell noch im Gange und wird auch noch einige Monate andauern, aber der Vorteil ist für mich eindeutig: Absolute Originaltreue ohne unnötige Kompromisse. Durch die Verwendung von Shapelists werden all meine bisherigen Unsicherheiten verschwinden, ob ich dieses oder jenes Sprite auch wirklich pixelgenau und fehlerfrei gezeichnet habe, und ich kann meine geringe Aufmerksamkeit wieder anderen, deutlich wichtigeren Dingen widmen. Zum Beispiel dem Spiel.

Mit der Programmierung meines kleinen SPACOLA-Remakes habe ich übrigens heute vor exakt 10 Jahren begonnen. In dieser Zeit wuchs das Hobby-Projekt auf 54.300 Codezeilen in 326 Quelldateien an, und umfasst zusätzlich knapp 1500 Grafikdateien und 64 Audiodateien. Für volle 10 Jahre Entwicklungszeit ist das wahrlich nicht so viel, aber schneller bekomme ich es nicht hin. Ich habe eben mein ganz eigenes Tempo, das sowohl von motivierten als auch von faulen Phasen mitbestimmt wird. Dafür steckt trotzdem eine ganze Menge Herzblut, Schweiß und Erfahrung in meinem Werk. Wann das Spiel fertig oder wenigstens mal spielbar sein wird, steht weiterhin in den Sternen. Aber wer meine vielen kleinen Fortschritte bis heute fleißig verfolgt hat, und die Hoffnung immer noch nicht aufgegeben hat, den werde ich vielleicht in den kommenden Wochen doch noch ein bisschen überraschen können.

To be concluded…

Im Spieleveteranen-Podcast ist es nur eine halbe Anekdote bzw. eine kurze Randnotiz wert, mir dagegen natürlich ein kleiner Blogbeitrag: Heinrich Lenhardt erwähnt in der neuesten Folge #70 des Podcasts (der diesmal gleichzeitig auch als YouTube-Video zur Verfügung steht) den Atari ST-Klassiker Bolo von Meinolf Schneider. Besprochen wird das ganze im Rahmen der jeweils 30-jährigen Jubiläen des Amiga 1000 und des Atari ST.

Dabei geht Heinrich Lenhardt, der bekanntermaßen zu den erfahrensten deutschen Fachjournalisten für Computerspiele zählt, und der auch um 1990 Spieletests für das von mir geschätzte TOS-Magazin schrieb, quasi in einem Nebensatz darauf ein, dass es jeweils eine eigene Computerspielewelt rund um den Farbmonitor, aber auch um den Monochrommonitor gab. Aus seiner Sicht waren seine armen Kollegen zu belächeln, die sich regelmäßig über neue Spiele für den Monochrommonitor erkundigten, während er sich eigentlich hauptsächlich mit den Farbspielen beschäftigte. Als Beispiel für Monochromspiele nennt er sofort Bolo, das 1987 veröffentlicht wurde, also zu der Zeit als Herr Lenhardt noch für die Happy Computer arbeitete. Leider bleibt es allein bei der Nennung. Dennoch ist Amiga- und Atari-ST-Spielenostalgikern natürlich die gesamte Folge sehr zu empfehlen.

Der besagte Ausschnitt beginnt bei Minute 36:

Die Spieleveteranenrunde setzt sich in dieser Episode aus den Herren Heinrich Lenhardt, Jörg Langer, Winnie Forster, Michael Hengst, sowie dem Stargast Andreas von Lepel zusammen. Letzterer wurde bekannt als Moderator der ZDF-Sendung „X-Base“ Anfang/Mitte der 90er Jahre, in der es um Videospiele ging. Von Lepel arbeitet allerdings auch selbst als Spieleentwickler und früher auch als Spielejournalist.

Erwähnenswert ist auch, dass in dieser Episode kurz diskutiert wird, wie man denn am besten Screenshots von sehr alten Spielen macht. Jörg Langer und Heinrich Lenhardt sind sich dabei einig, dass man sowas am einfachsten mit Hilfe von Emulatoren macht, was mich natürlich entsprechend darin bestätigt, dass Emulatoren der beste, der richtige und vor allem ein zu schützender und zu fördernder Weg sind, alte Spiele zu bewahren, denn damit machen sie sich indirekt für Disk-Images und ROM-Dateien stark. Winnie Forster dagegen schwört auf aufwändige und teure Bildschirmfotografien der Monitore an den echten Geräten.

Nachdem ich wochenlang nicht nur praktisch nichts auf meinem vernachlässigten Blog habe verlautbaren lassen, sondern sogar das fünfjährige Bestehen von SuccessDenied total verschlafen habe, darf ich an dieser Stelle nun wenigstens meine grenzenlose Freude über immerhin einige wenige Tage Urlaub bekunden, die ich seit einigen Wochen wirklich dringend nötig hatte. Jetzt kann ich zwei Wochen lang soviel Sport machen wie ich will, mich endlich so richtig um den Haushalt kümmern, mein Spiele-Remake fertigbasteln und all die anderen wichtigen Dinge, die ich mir für den Urlaub ganz fest vorgenommen habe. Ich setze mich nur noch mal ganz kurz auf die Couch und … Ach, mal gucken was grade so im Fernsehen läuft.

Tatsächlich leide ich im Moment ein bisschen unter Ideenlosigkeit was ergiebige Themen für Artikel angeht. Ich habe zwar eine lange Liste von Dingen, über die ich irgendwann mal schreiben müsste, aber im Endeffekt fehlt mir dann doch die Energie, die Stichpunkte in einen lesbaren, ausgewogenen Artikel zu gießen und diesem den nötigen Feinschliff zu verpassen. Der notorisch unmotivierte Webseitenbetreiber wendet also stattdessen einmal mehr das Minimalprinzip an und schreibt einen weiteren einfachen Lückenfüller-Artikel, der aber zumindest inhaltlich zur Webseite passt, um sich mehr Zeit für richtige Themen zu verschaffen.

Es geht um Dongleware-Spiele. Eigentlich ganz und gar nicht aktuell ist die Neuigkeit, dass Enigma in der Version 1.21 veröffentlicht wurde. Und zwar schon letzten Dezember. Ich sollte deren Webseite vielleicht doch öfter als zweimal pro Jahr besuchen. Ganze 51 Landschaften sind im aktuellen Release des aufwändigen OXYD-Remakes dazugekommen, darunter scheinbar auch vereinzelt bei den „Deja-vu“-Levelpaketen für Esprit, OXYD, OXYD2, Oxyd Magnum und Oxyd Extra. Diese sind mir als Fan der Originale sehr wichtig, daher betrübt es mich besonders, dass die Entwickler es bis heute noch nicht hinbekommen haben, die alten Levels vollständig zu portieren. Ich wüsste nur noch gerne, ob es mehr eine Sache des Nicht-Wollens oder des Nicht-Könnens ist, da auch das beste OXYD-Remake leider noch nicht gut genug ist, wenn ich darin nicht alle Original-Levels wiederfinde.

Zwischenzeitlich habe ich ein weiteres eigentlich vielversprechendes Dongleware-Remake gefunden: RemBolo (Remake-Bolo?), das vom Dongleware-Klassiker Bolo inspirierte Breakout-Spiel will das Spielgefühl und die Mechaniken des 95’er PC-Bolos imitieren, aber auch das Ur-Bolo vom Atari ST scheint ihm noch als dankbare Vorlage zu dienen. Der scheinbar deutschsprachige Entwickler arbeitet mindestens seit 2008 an der C++-Implementation unter Verwendung vorgefertigter 2D-Physikbibliotheken. Sogar einen recht gut spielbaren 2D-Prototyp von RemBolo bot er damals bereits zum Download an, den ich bis heute sehr beeindruckend finde. Mir wäre es sogar am liebsten gewesen, wenn man diesen Prototyp als Grundlage für die weitere Entwicklung des Remakes gewählt hätte. Stattdessen entschied der Programmierer sich für einen kompletten Neustart zugunsten von 3D-Grafik. Die ersten Screenshots dieser 2.5D/3D-Version sehen auch schon recht beachtlich aus, besonders der Glaseffekt des Schlägers ist wirklich schön anzusehen.

Illustration von der RemBolo-Webseite

Illustration von der RemBolo-Webseite

Leider steht die Kommunikation bei RemBolo deutlich im Hintergrund, so gab es zwischen den Jahren 2010 und 2015 kein Lebenszeichen des Remake-Projekts. Erst im Februar diesen Jahres wurde die Early-Alpha des neuen Leveleditors auf einem Screenshot gezeigt. Sonstige Fortschritte werden nicht genannt. Da ich weiß wie mühsam es ist, quasi im Alleingang ein komplettes Remake zu bauen (unabhängig davon wie minimalistisch die Grafik sein mag oder auch nicht), erhoffe ich mir einige tolle Neuigkeiten von dem Projekt in den kommenden Jahren. Schon da dieses sich als Schwesterprojekt zu Enigma betrachtet, fände ich die Möglichkeit wirklich reizvoll, dass wir eines Tages (mindestens) zwei nahezu perfekte Dongleware-Remakes hätten.

Ein großes Dankeschön an Gerry, meinem geschätzten Mit-Atarianer und Thalion-Veteranen, der mich gerade noch rechtzeitig auf eine auslaufende Ebay-Auktion aufmerksam gemacht hat. Eine solche Rarität findet man wahrscheinlich nur alle paar Jahre mal, daher musste ich sofort zugreifen. Zu Anfang hoffte ich noch, dass ich schon für 6 Euro den Zuschlag bekäme, aber da habe ich nicht mit den anderen Nostalgikern gerechnet, wegen der ich etwas tiefer in die Tasche greifen musste. Am Ende gelang mir der große Coup mit knapp unter 40 Euro. Ja, viel Geld für alten Kram. Wenig Geld für einen echten Fan. Aber wovon spreche ich überhaupt? Ach, es geht eigentlich nur um den ultimativen Atari ST Public Domain Klassiker: Bolo

bolo_bolowerkstatt

Eine meiner aller-aller-aller-ersten Spieleerfahrungen hängt mit dem Breakout-Klon „Bolo“ von 1987 zusammen. Damals war ich wohl gerade so in der Lage, die Maus zu bewegen ohne dass sie vom Tisch fiel, und die Gefahr bestand bei diesem Spiel durchaus. Bolo – das etwas andere Ball(er)spiel – dürfte man eigentlich kaum Klon nennen, weil es das Original-Spielkonzept um so wahnsinnig viele Elemente erweitert, dass es die Idee auf ein völlig anderes Niveau hebt. Ich kann nicht betonen, wieviele unglaublich spannende (und auch frustrierende) Stunden ich damit erleben durfte. Dieses Spiel hat mich schon sehr früh geprägt, meine Ansprüche und Erwartungen an die Spielewelt entscheidend beeinflusst. Selbstredend hat sich seitdem viel getan, aber ich erwarte auch heute noch, dass eine große Portion Spielwitz eingebracht und viel Liebe zum Detail bei der Entwicklung von Spielen an den Tag gelegt wird, genau so wie das Meinolf Schneider vor etwa 27 Jahren getan hat, als er Bolo im Jahr 1986 zunächst für den auf dem 68000er von Motorola basierenden (wenig bekannten) Gepard Computer entwickelte, und dann für den damals brandneuen Atari ST veröffentlichte.

Die größte Besonderheit von Bolo war die beeindruckende Vielzahl an verschiedensten Steinen, die sehr geniale Physiksimulation, die den Spieler am Schläger den Widerstand beim Anschlagen beinahe spüren ließ, das Gewicht des (unterschiedlich großen) Balles, die dynamische Schwerkraft, die Menge an Levels und die wundervollsten grafischen Effekte, wenn es z.B. explosive Steine in alle Richtungen zerfetzt. Mir fallen nicht genug Superlative ein, um dieses Spiel ausreichend zu würdigen. Über den als Megaghost bezeichneten Antagonisten kann ich leider nicht das Geringste erzählen, denn Bolo war mir leider zu schwer. Wenn man 50 Levels am Stück erfolgreich durchgespielt hat, soll er wohl erscheinen. Einmal hatte ich knapp 20 Levels geschafft. Die klobige Atarimaus, deren Kugel ständig im Gehäuse hängenblieb, hat mir die Schwerstarbeit im Kampf gegen die Schwerkraft kaum abnehmen können.

Als Meinolf Schneider noch für das Label der Application Systems Heidelberg entwickelte, nannte er sich Dr. Mausklick, so wie das auch den Rückseiten der Plastikhüllen zu entnehmen ist. Ich bin begeistert wie gut erhalten die beiden Schachteln sind, sogar der Sticker wurde noch nicht verwendet, und das DIN A2-Poster mit den Levelbildern wurde offenbar auch noch nicht aufgehängt. In der zweiten Schachtel steckt die „Bolo Werkstatt“, also der Leveleditor, einschließlich gedruckter Kurzanleitung. Die Hülle ist dabei exakt dieselbe wie beim Spiel, mit einem zusätzlichen aufgeklebten „Werkstatt“-Schriftzug. Und als wäre das nicht schon toll genug, sind selbst die Preisetiketten noch auf der Packung, die beide Produkte mit 69,00 DM auszeichnen. Dieser fantastische Neuzugang geht direkt in meine virtuelle Vitrine.

Ich nehme mir mal die Freiheit, hier ein kleines Gameplay-Video von YouTube einzufügen, um das Spiel zu demonstrieren. Man sollte allerdings einschränkend dazu erwähnen, dass der Spieler hier nicht allzu talentiert ist. Außerdem zeigt das Video nur äußerst wenig von der Vielfalt, die die Levels bieten können.

[youtube]http://youtu.be/NTG3CAD-s_4[/youtube]

Für das grenzenlose Glück fehlt mir jetzt eigentlich nur noch ein originalverpacktes Esprit für den Atari ST, also dem Vorgänger von OXYD. Falls jemand zufällig darüber stolpert, oder sein eigenes Exemplar für einen guten Preis verkaufen möchte – bitte nicht zögern, E-Mail an mich. Im Idealfall ist noch alles so in der Verpackung wie es verkauft wurde, aber ich nehme auch weniger guterhaltene Spiele. Ich bin mal gespannt, was sich in den kommenden Monaten und Jahren noch so an Gelegenheiten ergeben wird. Vielleicht komme ich ja wirklich noch dazu, einen kleinen Dongleware-Schrein aufzustellen.