Na, habt ihr euch alle brav den Artikel über Tequila & Boom Boom auf Videospielgeschichten.de durchgelesen? Sehr schön. Dann wisst ihr mittlerweile sicher auch, dass ich mir den ganzen Aufwand mit der CD aus Italien hätte sparen können, da das Spiel 2021 in Rücksprache mit dem originalen Entwicklerteam als Freeware veröffentlicht wurde.

Tja, man lernt eben nie aus. Aber auch wenn ich auf diese Odyssee verzichtet hätte, hätte es mich nicht vor den diversen Problemen beim Zocken des Spiels bewahrt, denn leider stecken beide Versionen (also die kostenlos veröffentlichte sowie die auf CD) voller Fehler. Genau das war einer der Gründe, warum ich mich etwas intensiver mit dem Spiel beschäftigt habe. Ein naiver retrololo dachte sich: Vielleicht lassen sich ja ein paar der Probleme recht leicht beheben? Und wenn wir schon dabei sind, könnten wir doch gleich noch das Spiel ins Deutsche übersetzen, oder? Etliche Stunden später kann ich diese Fragen mit „Ja, aber“ beantworten! 😀

Passend zum Western-Setting des Spiels bleibt die Erkenntnis: Es war ein wilder Ritt und ich bin froh, dass ich es durchgezogen habe. Heute möchte ich euch etwas an dem Projekt teilhaben lassen. Schauen wir uns die Ausgangssituation an: Eine auf den ersten Blick unmöglich wirkende Challenge? Kaum vorhandene Dokumentation oder Hilfestellungen? Eine größtenteils unbekannte, proprietäre Skriptsprache? Ein Hersteller, den es seit fast 30 Jahren nicht mehr gibt? Klingt eigentlich nach einem typischen retrololo-Projekt. Was könnte da schon schief gehen? 😉

Schluss mit den Späßen – wie geht man so etwas an? Als erstes habe ich mir mal die Dateien auf der Spiel-CD, sowie aus dem Freeware-Release angesehen:

Sie sind nahezu identisch und bestehen neben Installationsprogrammen für MS-DOS und Windows aus ein paar erstaunlich strukturierten Ordnern, in denen sich alle für das Spiel benötigten Files wie Animationen, Soundeffekte, Hintergründe oder Laufwege der Charaktere befinden. Das meiste ist mit einem mir unbekannten Algorithmus komprimiert, aber glücklicherweise sind die Skript-Dateien, in welchen sich auch die Texte sowie Verweise auf die entsprechenden Audiospuren befinden, nicht verschlüsselt.

Okay, dann müssen wir ja nur noch die entsprechenden Dateien irgendwie bearbeiten. Was gut ist: Wir müssen nicht bei Null anfangen! Ein Spanier hat bereits im Jahr 2008 einen Versuch gestartet, das Spiel ins Spanische zu übersetzen. Auf dieser Version möchte ich aufsetzen, weil sie bereits ein paar grundlegende Skriptfehler behebt und somit etwas besser, als die englische Version ist. Einziger Nachteil ist, dass wir das Spiel dann aus dem Spanischen übersetzen müssen. Hm, schon irgendwie lustig. Die originalen Entwickler haben das Spiel vom Italienischen ins Englische übersetzt. Dann wurde es vom Englischen ins Spanische übersetzt und wir übersetzen es jetzt schlussendlich vom Spanischen ins Deutsche. So weit, so klar? 😀

Als erstes müssen wir versuchen, die Skriptsprache, in welcher die benötigten Ressourcen in das Spiel geladen werden, zu verstehen. Tequila & Boom Boom läuft in der von Dynabyte selbst entwickelten Parallaction-Engine. Richtig viel ist über diese nicht bekannt, aber zumindest haben ein paar Enthusiasten des ScummVM-Projekts, welche versuchen, die Dynabyte-Spiele in ihrer Software zum Laufen zu bekommen, schon mal die wichtigsten Skriptbefehle analysiert und dokumentiert.

Viele der Flags und Anweisungen dienen zur Steuerung von Sound, Animationen sowie dem Spielablauf. Definitiv interessant, aber leider auch recht komplex, weil alle Befehle irgendwie miteinander verknüpft und ineinander verschachtelt sind. Besser wir lassen das fürs Erste mal so wie es ist und kümmern uns primär um die Übersetzung. Für unser Vorhaben sind vor allem die Hotspots (mit „LABEL“ in grün gekennzeichnet), die Verweise auf Stücke der Sprachdatei (rote Kennzeichnung) sowie die Texte, die dazu angezeigt werden sollen (blaue Kennzeichnung), relevant. Einfach gesagt, müssen wir diese Marken nur entsprechend anpassen, damit Sprachdateien korrekt abgespielt werden und deutsche Texte anstelle der spanischen angezeigt werden.

Klingt gar nicht so kompliziert, oder? Tja, das dachte ich auch, aber selbst der reine Part der Übersetzung hat es echt in sich gehabt. Ich hatte den Eindruck, dass es technisch vielleicht sogar etwas weniger anspruchsvoll wie z.B. damals in Artikel 334 bei Pokémon Picross war. Dafür gab es viel mehr Text zu übersetzen. Während es bei Pokémon meist nur um einzelne Begriffe geht, müssen in einem Adventure ganze Passagen eingedeutscht werden, die einerseits sprachlich Sinn ergeben, aber gleichzeitig ja auch irgendwie noch mit der englischen Synchronisation zusammenpassen müssen. Teilweise ganz schön tricky!

Gerade das Testen der einzelnen Abschnitte war ein riesiger Aufwand, weil manche Zwischensequenzen nacheinander ablaufen und man so nicht immer direkt vor der jeweiligen Passage speichern kann. Im Endeffekt habe ich weit über hundert unterschiedliche Spielstände erzeugt und diese entsprechend katalogisiert, sodass ich weiß, zu welcher Szene sie gehören.
Not so fun Fact: Ich will gar nicht darüber nachdenken, wie häufig ich das Spiel neu gestartet und einen Spielstand geladen habe. Bin ich froh, dass sich das heutzutage mit Emulatoren wie der DOSBox machen lässt. Stellt euch mal vor, man würde so ein Projekt auf echter Retro-Hardware, direkt unter MS-DOS umsetzen müssen. Brutal!

Ein weiteres Problem neben den Texten, waren auch die Sprachdateien an sich. In einigen Fällen wurden einfach falsche Audioschnipsel (also z.B. die italienische Audiospur, anstatt der englischen oder gar die Stimme eines anderen Charakters) für diverse Dialoge im Code angezogen (grüne und rote Markierungen). An vielen Stellen war auch die Zeitangabe, also ab welcher Stelle in der Audiodatei ein Stück abgespielt werden soll, sowie die Dauer des jeweiligen Schnipsels (blaue und gelbe Markierungen), falsch. Gesprochene Zeilen fangen dann zu spät an oder sind abgehackt. Solche Fehler lassen sich meist mit etwas Herumprobieren (Verändern der Werte und Live-Test im Spiel) korrigieren.

Leider gab es auch Situationen, in denen es tatsächlich keine englische Synchronisation für den zu sprechenden Text gab. Hier galt es zu improvisieren. Letztendlich habe ich in solchen Fällen einfach den Sprachschnipsel von einer anderen Stelle im Spiel verwendet. Eine Lampe ist eine Lampe – völlig egal, ob sie im Saloon oder an einem anderen Ort hängt! 😉
Fun Fact: Um den Überblick nicht zu verlieren, ist es bei solchen Aufgaben immer sinnvoll, sich ein paar Notizen zu machen. Im Nachhinein (also mit ein paar Tagen, bzw. Wochen Abstand) wirkt das alles aber recht kryptisch! 😀

Ein weiteres Problem war, dass einige Hotspots nicht richtig funktionierten. Letztendlich konnten sie nicht angeklickt werden, weil die entsprechenden Schaltflächen innerhalb der Skripte verschoben waren oder sich gegenseitig überlagerten. Und wenn wir schon beim Thema Hotspots sind: Ich hatte mich ja im Beitrag auf Videospielgeschichten.de über die Pixelsucherei beschwert. An ein paar ganz fiesen Stellen wurden die anzuklickenden Objekte vergrößert, bzw. besser an den dargestellten Gegenstand angepasst. Bisher nahezu „unsichtbare“ Hotspots sollten sich nun leichter finden lassen und vielleicht erspare ich so dem ein oder anderen den Griff zur Lösung.
Not so fun Fact: Das Format des LIMITS-Parameters, mit welchem die Position der Hotspots gesteuert wird, ist leider auf den ersten Blick etwas intransparent und ich habe mich mehrfach davon verwirren lassen. Im Endeffekt werden damit fixe Bildpunkte auf dem 800×600 großen Screen angegeben. Die Angabe „LIMITS 165 90 210 135“ würde also bedeuten, dass sich ein anklickbares Objekt horizontal zwischen den Pixeln 165 bis 210 befindet und vertikal zwischen den Bildpunkten 90 und 135. Das muss man wissen!

Viele der Schauplätze wirkten etwas leer und so habe ich mir es erlaubt, einige neue Hotspots (mit jeweils schon existierenden Sprachschnipseln von anderen Stellen im Spiel) hinzuzufügen. Eigentlich wäre hier z.B. nur ein völlig leerer Bildschirm, aber jetzt kann man zumindest einen Blick in die weitläufige Prärie werfen:

Tatsächlich gab es auch ein paar von den Entwicklern im Skript auskommentierte Passagen, die ich teilweise korrigiert und wieder mit in das Spiel inkludiert habe. Häufig waren es nur für Testzwecke eingebaute, bzw. entfernte Debugfunktionen, aber an einigen Stellen wurden nicht funktionale Hotspots und Dialoge einfach ausgeklammert, anstatt die Fehler sauber zu beheben.

In der englischen oder spanischen Version lässt sich z.B. dieser Pferdehaken nicht anklicken! 😉
Not so fun Fact: Leider gibt es immer noch viele Ecken, an denen es mehr Hotspots bräuchte, um die Spielwelt etwas lebendiger zu gestalten. Dafür bräuchte es aber auch neue, englische Sprachschnipsel und das wäre dann schon sehr aufwändig. Nein, danke!

Auch das Menü sollte – sofern recht einfach umsetzbar – mit deutschen Begriffen beglückt werden. Die Bezeichnung der Schaltflächen werden nicht über Skript-Dateien geladen, sondern verstecken sich direkt in der ausführbaren EXE des Spiels. Glücklicherweise ist auch hier der Text nicht komprimiert oder verschlüsselt gespeichert und im Herumfummeln innerhalb von Binärdateien sind wir ja mittlerweile geübt! 😉

Läuft!

Wo ich persönlich die Grenze gezogen habe, waren die beiden Installationsprogramme für Windows und DOS, die sich mit auf der originalen CD befinden. Eigentlich hatte ich auch vor, diese Menüs zu übersetzen, aber beim Testen ist mir aufgefallen, wie kaputt die Dialoge sind. Nicht nur werden teilweise falsche Informationen gezeigt, auch sind Menüpunkte nicht anwählbar oder erzeugen in einigen Fällen fehlerhafte Installationen. Entsprechend war ich so frei und habe das Spiel von diesen furchtbaren Installationsprogrammen befreit. Mehr als ein paar Dateien sowie minimal angepasste Batch-Skripte zum Spielstart werden eh nicht auf die Festplatte kopiert.

Zu guter Letzt galt es, sich dann noch um einen Klassiker in der Welt der EDV-Probleme zu kümmern: Die FUCKING Umlaute. Ich hasse sie. Wie häufig hatte ich mit diesen Missgeburten der deutschen Sprache schon Probleme? Zu meinem Erstaunen unterstützt der im Western-Stil verwendete Schriftsatz aber tatsächlich einige der Sonderzeichen. Alle kleinen Umlaute, sowie das große „Ä“ sind am Start, lediglich das große „Ü“ und das „Ö“ sind nicht im Zeichensatz vorhanden.
Fun Fact: Zum Anzeigen aller Zeichen habe ich einfach temporär auf einem der ersten Bildschirme entsprechende Textzeilen so verändert, dass alle möglichen, hexadezimalen Werte in einer langen Kette (jeweils getrennt durch ein Leerzeichen) dargestellt werden. Alle? Nicht ganz. Bei ein paar nicht darstellbaren Zeichen wird im besten Fall nichts angezeigt, im dümmsten Fall stürzt das Spiel ab, wenn versucht, diese auszugeben. Woher ich das weiß? Kein Kommentar! 😛

Na, macht nichts. Mit ein paar netten Umschreibungen bin ich drumherum gekommen, die beiden großen Umlaute zu benötigen. So spare ich mir schon die Arbeit, diese nachträglich irgendwie in das Spiel zu quetschen. Also alles gut? Leider nein, denn ich habe den Endgegner vergessen: Das scharfe S („ß“). Verdammt. Wenn man die deutsche Rechtschreibung nicht all zu sehr verbiegen möchte, kommt man wohl oder übel nicht um das ungeliebte Kind des Alphabets herum. Ich will gar nicht mehr darüber nachdenken, wie lange es gedauert hat, bis ich das Zeichen gepixelt…

…und dieses dann in der Font-Datei „WESTNS.FNT“ – welche immerhin im Hauptverzeichnis des Spiels liegt – übertragen hatte. Leider ist es ein proprietäres Font-Format, welches sich mit keinem mir bekannten Tool öffnen ließ und so blieb mir nichts anderes übrig, als durch viel Herumprobieren den Buchstaben anstelle des Mal-Zeichens („*“) in den Zeichensatz zu übertragen. Gut hinsehen: Das hier ist das Scharf-S – kein Witz! Die Smileys („02“x) stehen für voll ausgefüllte Flächen und die Herzen („03“x) repräsentieren den schattierten Bereich um den jeweiligen Buchstaben herum. Das Spiel füllt die Farben dann je nach Bedarf unterschiedlich aus.
Not so fun Fact: Die Buchstaben haben eine feste Höhe, aber können variabel breit sein. Entsprechend schwer war es, in dem FONT-File durchzublicken. Zu allem Überfluss bestehen einzelne Schriftzeichen teilweise aus mehreren Teilen und sind so an unterschiedlichen Stelle innerhalb der Datei gespeichert. Ich gebe es nur ungern zu, aber es hat mich erschreckend viel Zeit gekostet, dieses eine, verdammte Zeichen mit in den Schriftsatz zu bringen! :(

Puh, jetzt sind wir aber fertig, oder? Wohl kaum! Selbst wenn alles übersetzt wurde, heißt das ja noch nicht, dass die eigentlichen Probleme des Spiels behoben wurden. Es gibt viele Ecken, die ich gekonnt ignoriert habe, aber die gröbsten Schnitzer, wie z.B. fehlerhaft (unvollständig) dargestellte Zwischensequenzen und natürlich die Sackgassen wollte ich schon beheben. So wurde beispielsweise die Szene, in der man mit einem gezielten Schuss eine Dollar-Münze in vier 25-Cent-Stücke teilen muss (Cartoon-Logik), so überarbeitet, dass sie einfach immer wieder abläuft, bis man es schafft.

Ebenfalls wurden Versäumnisse der Entwickler, wie z.B. die Möglichkeit, dass man dem Pianisten ja ein weiteres Mal einen Drink geben kann und die Zwischensequenz dann hängt oder nicht korrekt abgespielt wird, ausgemerzt. Hierfür musste ich mich ziemlich tief in die Skriptsprache rein denken und eine Hand voll Flags entsprechend anpassen. Besonders aufwändig waren auch zwei Stellen, an denen die geplante Dialogabfolge einfach nicht funktioniert hat. Teils wurden Antwortmöglichkeiten nicht angezeigt oder ganze Sequenzen (bei denen dann noch die Vertonung fehlte) übersprungen. Alleine über die Art und Weise, wie das repariert, bzw. umschifft wurde, könnte man vermutlich einen eigenen Beitrag schreiben, aber das machen wir (also ich) definitiv nicht, denn so langsam wird es Zeit, zum Ende zu kommen und Tequila & Boom Boom ein für alle Mal hinter uns zu lassen.

Wenn ich ehrlich bin, gibt es immer noch einige Abschnitte, die ich nicht wirklich verstehe. Bei manchen Änderung hatte ich den Eindruck, dass es mehr oder weniger reiner Zufall war (Anpassung von irgendwelchen Werten auf gut Glück), dass ich die richtige Stelle gefunden habe. Etwas unbefriedigend, wenn ich ehrlich bin. Besser wäre es sicher gewesen, die komplette Engine reverse zu engineeren, aber wer hat schon die Zeit und Lust für so etwas?

Sei es drum. Ich bin durch und das Spiel ist es Gott sei Dank auch. Es hat viel Zeit und Nerven gekostet, aber schlussendlich bin ich froh, dass ich mich auf das Abenteuer eingelassen habe, eine deutsche Version von Tequila & Boom Boom zu basteln. Auch wenn ich viel über das Spiel kritisiert habe, hat es definitiv Charme und die Tatsache, dass ich mich so viele Stunden damit beschäftigt habe, sollte das beweisen. Mit dem Ergebnis bin ich an und für sich auch recht zufrieden. Klar konnten nicht alle Fehler behoben werden, aber das ist ohne Quellcode echt schwierig, wenn nicht sogar unmöglich. Zumindest kann ich mit Stolz sagen, dass das Spiel jetzt deutlich besser läuft, als es in der originalen Version der Fall war. 🙂
Fun Fact: Natürlich habe ich es mir nicht nehmen lassen, das Spiel auch auf echter Hardware zu testen. Das war gar nicht so einfach, weil die Systemanforderungen recht spezifisch sind, aber ich habe es auf dem Pentium 2 Proline-PC aus Artikel 263 im MS-DOS-Modus zum Laufen bekommen! 🙂

Ein fertiges Paket (deutsche Version inklusive Fehlerbehebungen) samt einer DOSBox zum direkten Starten auf einem modernen Betriebssystem könnt ihr hier herunterladen. Und jetzt wünsche ich euch viel Spaß mit Tequila & Boom Boom!
In diesem Sinne – bis die Tage, ciao!