News

Fahrradecke

Radthemen
Presse & Politik
Fahrradlinks
Grundsätzliches

Stadtteilseiten Augsburg

Gaming

CS-Stats
EF-Stats
Old-Games
LAN - Archiv

Persönliches

Meckerseiten
BW-Tagebuch
Sätze zum Nachdenken

Downloads

Bildergalerie

Links

Archiv

Sponsoren

Kontakt
PGP-Key

Impressum

X-COM-Tools 2026-03-25 veröffentlicht
2026-03-25

Pünktlich zum 20-jährigen Jubiläum der letzten Version der X-COM-Tools habe ich mir die Mühe gemacht, mal kräftig an Usability und Bugs zu arbeiten. Manches hat gewissermaßen noch nie so richtig funktioniert. z. B. haben meine damaligen Arbeiten mit dem Hexeditor doch teils nicht so ganz korrekte Erkenntnisse erbracht. Man muss aber dazu sagen, Seiten wie die ufopaedia.org gab es zwar schon. Sie waren aber noch in den Kinderschuhen und eine Internetverbindung hatte ich zu Hause ja ohnehin keine, sodass ich im Wesentlichen auf meine eigenen Erkenntnisse angewiesen war. Anderes war schon immer sehr wackelig umgesetzt, weil QuickBasic out of the box leider keine so richtig eleganten Methoden bzw. Mittel mitbringt, um so Kleinigkeiten zu tun, wie prüfen ob eine Datei überhaupt existiert, oder prüfen ob sie schreibbar ist.

Ich habe das jetzt einfach mal weitestgehend geradegezogen. Die neue Version findet man in den Downloads. Enjoy!

Die Fakten

Die Ergebnisse im Einzelnen:

  • Spielstandfiles werden auf Existenz geprüft. Falls ein File nicht existiert, stürzt das Programm nicht einfach ab, sondern bemängelt den Umstand und lässt den Benutzer jetzt weiter arbeiten.
  • Kann ein File nicht geschrieben werden (z. B. weil schreibgeschützt gesetzt), wird auch kein harter Crash provoziert, sondern das Spiel fängt das Problem mit einer entsprechend klaren Meldung an den Benutzer ab.
  • Der Einkommenseditor hat noch nie richtig funktioniert. Nur wenn man im Monat Februar war, hat er gemacht was er soll. Jetzt funktioniert es zuverlässig.
  • Der Eleriumeditor hat nur in der ersten Basis so richtig funktioniert. Jetzt funktioniert er in allen Basen.
  • Die Forschungsmöglichkeiten sind jetzt etwas komfortabler zu bedienen und die Anwendung unterbindet, dass dasselbe Item in mehreren Basen parallel erforscht wird.
  • Es wird zwischen Spielständen im Geoscape und im Battlescape unterschieden. Manche Werkzeuge sind nämlich nur für eines von beiden geeignet (z. B. die Karte aufdecken macht im Geoscape wenig Sinn).
  • Die Spielstandauswahl zeigt entsprechend auch die Information, was für eine Art Spielstand vorliegt, und lässt die Auswahl eines ungeeigneten Spielstands an entsprechender Stelle nicht mehr zu.
  • Aliens aufdecken funktioniert jetzt nicht nur in der ersten Runde, und es funktioniert auch zuverlässig. Leichen werden nicht mehr angefasst.
  • Der Soldatensortierer wurde erheblich beschleunigt und um Optionen erweitert. Auch verhindert die Anwendung jetzt, dass man den Spielstand beschädigt, wenn man die Funktion anwendet, während Soldaten im Transfer sind, oder eine Mission läuft.
  • Die externen Tools werden jetzt nur als benutzbar gezeigt, wenn sie auch eingerichtet sind.
  • Diverse (Fehler)meldungen wurden hinzugefügt, die dem Benutzer klarer machen, was gerade ein Problem ist, oder was erfolgreich verändert wurde.
  • Wenn Probleme mit der tools.ini vorliegen, erhält man jetzt eine sinnvolle Fehlermeldung.
  • Das Parsing der tools.ini wurde erweitert. Sie kann jetzt auch Kommentare enthalten, leere Zeilen sind kein Problem mehr, genauso wie führende oder nachgestellte Leerzeichen in einer Zeile.

Das Meta

Englisch vs. Deutsch

Das Programm stammt aus einer Zeit, als ich es mit dem Englischen nicht all zu sehr hatte. Entsprechend war es schon immer 100 % auf Deutsch gehalten. Ich bin momentan am Überlegen, ob ich das noch ändern soll. Da ich aber letztlich null Anhaltspunkte habe, ob irgendwer dieses Tool überhaupt verwendet (außer mir natürlich), bin ich mir noch nicht sicher, ob ich mir die Mühe machen soll.

DOS vs. Windows

Das Programm ist weiterhin nur für DOS verfügbar. Heißt also: Auf modernen Windosen wird das nicht nativ laufen, weil die inzwischen nur noch als x64-Fassung zu kriegen sind, die leider kein 16 Bit Subsystem mehr mitbringen. Heißt also: Entweder DOSBox benutzen, oder ein oldschool Windows. Ich für meinen Teil habe 100 % der Änderungen seit der Vorgängerversion auf einem 486er geschrieben, unter Win 3.11. Dabei kam mir dann auch zugute, dass (zumindest die neuste Version 1.4) der DOS-Version des Spiels das gleiche Spielstandformat verwendet, wie die Collector's Edition für Windows.

Ich hatte durchaus versucht, mit Compilern wie freebasic oder QB64 eine Windows-Fassung zu kompilieren. Das Blöde ist nur: Auch wenn beide von sich behaupten, sie wären kompatibel mit dem guten alten QuickBasic 4.5, ist das leider nicht so ganz die Wahrheit. Während der Code ganz und gar problemlos unter original QB4.5 kompiliert, geht selbst mit Fummeln und Anpassen bei beiden anderen Varianten eher nix. Ob ich es mir antue, und das komplett ändere, sodass es unter freebasic läuft, weiß ich noch nicht. Denn deren Binaries für DOS haben leider das Problem, dass sie einen DOS Extender brauchen und generell ein gutes Stück größer ausfallen. Klar, UFO für DOS benutzt auch so einen. Aber bisher fand ich es doch ganz angenehm, dass mein Werkzeug einfach out of the box läuft, ohne Handstände oder Extras. QB64 dagegen scheint generell ein Sorgenkind zu sein. Insofern vorerst mal auf Eis gelegt.

Wer das alte UFO auf einem modernen Windows spielt, wird vermutlich ohnehin DOSBox verwenden. Insfoern, darin läuft das ganz und gar unproblematisch. Und wer unbedingt nativ mit Windows arbeiten will (oder Linux), der sollte evtl. stattdessen sowieso lieber OpenXcom benutzen. Deren Saves kann man dann auch mit einem einfachen Texteditor verändern bzw. Features wie Soldaten nach Werten sortieren kann das Spiel einfach von sich aus.

QuickBasic 4.5 – ich würde heute nicht nochmal ausgerechnet damit anfangen

Was ich auch gelernt habe: Quickbasic hat echt so einige Tücken. Das sind so Nettigkeiten wie:

  • 64 kiB RAM page Limitierungen erzwingen letztlich, dass auch die Source-Files in kleinere Einheiten geteilt werden müssen, damit der Kompiler sie noch verarbeiten kann. (Der Interpeter dagegen stört sich anscheinend eher wenig an solch großen Dateien.) Und das ist nicht immer ganz straight-forward. Vor meiner Renovierung hatte ich ein einziges Source-File mit ca. 31 kB. Jetzt sind es satte 147 kB. (Auch die Exe hat sich von vorher 78 kB auf 148 kB verdoppelt.) Allerdings ist der Kram jetzt (so weit QB das erlaubt) auch einigermaßen strukturiert und an vielen Stellen sind Goodies und Fehlerbehebungen rein gewandert, bzw. wird generell einfach etwas solider gearbeitet.
  • Man lernt dann auch so nebenbei wie groß die Parallelen zwischen C und QuickBasic dann am Ende sind. Include-Files, die letztlich vor allem Funktionsheader und Constanten enthalten... da hat der C-Programmierer auch schon mal von gehört. Hätte nur nie gedacht, dass es bei QuickBasic am Ende eigentlich genauso läuft.
  • Die IDE aktualisiert include-Dateien leider nicht zuverlässig wenn man daran Änderungen vornimmt, sodass diese Änderungen beim Laufenlassen auf einmal nicht da ankommen, wo das File inkludiert wird. Sehr nervig, wenn man 100 % sicher weiß, dass das alles drin ist, und letztlich nur ein Neustart der IDE hilft, dass der Interpreter loslegt, bzw. er einen kompilieren lässt.
  • Das Laden von Include-Dateien (ähnlich Modul-Dateien) sorgt für völlig erlogene Fehlermeldungen. Wenn das, was darin steht, an anderer Stelle die benötigten DECLARE-Anweisungen liefert, tut er einfach so, als wenn es das alles gar nicht gäbe, obwohl es durchaus da ist. Man muss also immer nach dem Speichern der include-Datei aber vor dem Speichern seines Projekts nochmal explizit die inkludierten Dateien wieder entladen. Was natürlich das Arbeiten damit nicht unbedingt komfortabler macht.
  • Die Zuweisung von Werten zu einer Konstanten funktioniert... komisch. Zuweisen von CONST TAB$ = chr$(9) geht nicht. Eine Zuweisung der Form CONST a% = b% AND c% geht dagegen problemlos. Verstehen muss man das nicht.
  • Die Datentypen sind doch eher... begrenzt. Ich hätter mir an vielen Stellen unsigned integers oder byte/char Typen gewünscht. Aber gut, wer so modernes Zeug haben will, sollte evtl. nicht mit dem steinhalten QuickBasic 4.5 von 1988 rummachen.

Andere kochen auch nur mit Wasser

Und zu guter Letzt habe ich auch ein, zwei kleine Fehler auf der UFOPaedia entdeckt. Mal sehen, wie die Community mit meinen Anmerkungen umgeht...

Du brauchst mehr? Kuck in den News vorbei! Da stehen auch noch ältere Abschnitte – oder wenns noch älter sein darf, im Archiv. Für alle, die mehr über den Macher dieser Seite wissen wollen, oder nur das letzte Update-Datum dieser Seite, besucht das Impressum. Bitte auch den Disclaimer beachten!