Der Fehler mit der Master-Disk von Space Quest II
(lanceewing.github.io)Der Fehler mit der Master-Disk von Space Quest II
-
- Mai 2024
- Äußerlich ist an dieser Diskette nichts Besonderes, aber die gespeicherten Daten enthalten etwas Besonderes, von dem Sierra On-Line nichts wusste und das man dort sicher nicht absichtlich mitliefern wollte.
- Wenn du in deiner Sierra-Adventure-Spielesammlung eine 720-KB-Diskette hast, bist du nicht allein.
- Die Versionen 2.0D und 2.0F von Space Quest II waren nicht selten.
Eine einfache Verzeichnisliste
- Ein Blick auf die Dateiliste der Diskette zeigt nichts Auffälliges.
- Auch die Liste von Version 2.0D unterscheidet sich nicht von anderen Sierra-Spieldisketten.
- Die Zeitstempel zeigen, dass die wichtigsten Datendateien des Spiels (
PICDIR,LOGDIR,VIEWDIR,SNDDIR,VOL.0,VOL.1) am 14. März 1988 erstellt wurden. - Die
.OVL-Dateien wurden am 15. März 1988 erstellt, der AGI-Interpreter-Code am 18. März 1988. - Auffällig an der Verzeichnisliste ist, dass der „unbenutzte“ Bereich der Diskette größer ist als der genutzte. 302.918 Bytes sind belegt, 402.432 Bytes werden als unbenutzt angezeigt.
Einsatz eines Hex-Editors
- Um genauer zu sehen, was sich auf der Diskette befindet, braucht man ein Werkzeug namens Hex-Editor.
- In den 1980ern wurde dafür oft Norton Utilities verwendet; heute ist der von Maël Hörz geschriebene HxD Hex Editor eine hervorragende Alternative.
- Auf einer frisch formatierten DOS-Diskette sollten unbenutzte Sektoren mit dem Bytewert
0xF6gefüllt sein. - Diskette 2 von Space Quest II Version 2.0D entspricht diesem Fall, aber auf Diskette 1 gibt es keine mit
0xF6gefüllten Sektoren. - Die unbenutzten Sektoren auf Diskette 1 sind mit etwas gefüllt, das wie C-Quellcode aussieht.
- Das legt stark nahe, dass die Master-Diskette zuvor für etwas anderes verwendet wurde und nach dem Löschen der Dateien nicht korrekt formatiert wurde.
Quellcode des AGI-Interpreters
- Im Hex-Editor sehen die Daten wie Text aus.
- Kopiert man den ASCII-Text in einen Texteditor, wirkt er wie C-Quellcode.
- Es sind zwei Funktionen definiert:
DisplayStatusLineundStatusLineOn. - Die Funktion
DisplayStatusLinescheint eine Textzeile anzuzeigen, die den aktuellen Punktestand und den Status des Tons ausgibt. - Dieser Quellcode ist Teil des AGI-Interpreters.
- Scrollt man im Hex-Editor weiter durch die unbenutzten Sektoren, findet sich eine große Menge Quellcode.
- Dieser Quellcode ist in zusammenhängenden Sektoren gespeichert und daher leicht zu extrahieren.
- Insgesamt ist er auf 93 Dateien verteilt: 75 C-Quelldateien, 16 Assembler-Quelldateien und 2 DOS-BAT-Dateien.
- Insgesamt sind es mehr als 15.000 Zeilen Code, und die meisten Dateien sind vollständig.
- Diese Space-Quest-2-Spieldiskette enthält rund 70 % des Quellcodes von Sierra On-Lines AGI-Interpreter.
Änderungshistorie der Quelldateien
- Einige Quelldateien enthalten in den Header-Kommentaren eine Änderungshistorie.
- So enthält etwa der Header-Kommentar der Quelldatei
ANIMATE.Cden Dateinamen, eine Funktionsbeschreibung, den Namen des Compilers (MWC) und die Änderungshistorie. - Die Programmierer kennzeichneten sich über ihre Initialen.
JASsteht für Jeff Stephenson, den Hauptprogrammierer am AGI-Interpreter-Code,DCIfür Chris Iden.- Auch Robert Heitman wird erwähnt, sein Schwerpunkt lag jedoch vor allem auf Grafikwerkzeugen.
Speicherabbild von AGI.EXE
- Auf SQ2 2.0D 720KB Diskette 1 befindet sich auch ein Speicherabbild der ausführbaren Datei
AGI.EXE. - Dieses Speicherabbild liefert eine Liste der Module und Quelldateien, aus denen der AGI-Interpreter besteht.
- Insgesamt werden 98 Quelldateien erwähnt, von denen 71 vollständig auf der SQ2-Diskette enthalten sind.
- Das bedeutet, dass etwa 70 % des Quellcodes des AGI-Interpreters auf der SQ2-Diskette enthalten sind.
Sierras geistiges Eigentum
- 1984 kämpfte Sierra On-Line darum, das Geschäft am Laufen zu halten.
- Der Erfolg von King’s Quest trug maßgeblich dazu bei, das Schicksal des Unternehmens zu wenden.
- Das AGI-Adventure-Game-System und die damit entstandenen Spiele waren eine zentrale Einnahmequelle von Sierra On-Line.
- Der Quellcode des AGI-Interpreters war zentrales geistiges Eigentum von Sierra.
- Dass 70 % dieses Quellcodes massenhaft kopiert und an Kunden verschickt wurden, war ein großer Fehler.
Wie konnte das passieren?
- Wenn eine neue Spielversion fertig war, wurde eine „Produktionskopie“-Master-Diskette erstellt, die in einer FormMaster-Diskettenkopiermaschine verwendet wurde.
- Diese Maschine kopierte jedes einzelne Byte der Diskette.
- Diskette 1 der Space-Quest-II-Versionen 2.0D und 2.0F wurde unformatiert verwendet.
- Dadurch enthielten Hunderttausende SQ2-Disketten 70 % des Quellcodes des AGI-Interpreters.
Eine knapp vermiedene Krise
- Mit sehr hoher Wahrscheinlichkeit war dies ein unbeabsichtigter Fehler.
- Weder Sierra noch Konkurrenten oder Kunden bemerkten den Vorfall.
- Er wurde erstmals im Oktober 2016 vom Online-Nutzer NewRisingSun entdeckt.
- Da dies gegen Ende der AGI-Ära geschah, wurde es wohl nicht zu einem großen Problem.
- Es ist eine faszinierende Geschichte digitaler Archäologie und ermöglicht einen Einblick darin, wie Sierra On-Line den AGI-Interpreter geschrieben hat.
Für Interessierte wurde der extrahierte Quellcode des AGI-Interpreters in ein GitHub-Repository hochgeladen: https://github.com/lanceewing/agi
Schau dir auch AGILE an, einen webbasierten AGI-Interpreter. Diese Implementierung wurde vom ursprünglichen AGI-Quellcode geleitet.
Meinung von GN⁺
- Der Wert digitaler Archäologie: Dieser Artikel zeigt die Bedeutung digitaler Archäologie. Alte Software und Daten besitzen historischen und technischen Wert.
- Lehren aus einem Sicherheitsfehler: Der Vorfall unterstreicht die Bedeutung von Datensicherheit und Datenmanagement. Beim Umgang mit sensiblen Daten sind gründliche Prüfung und korrektes Formatieren unerlässlich.
- Beleg für technischen Fortschritt: Der Quellcode des AGI-Interpreters zeigt den technischen Fortschritt der Spieleentwicklung in den 1980er Jahren. Das kann heutige Entwickler inspirieren.
- Die Kraft von Open Source: Durch die Veröffentlichung des ursprünglichen Quellcodes erhalten heutige Entwickler die Möglichkeit, ihn zu studieren und in neuen Projekten zu nutzen.
- Das Risiko durch Konkurrenten: Wäre dieser Quellcode damals von Wettbewerbern entdeckt worden, hätte Sierras Wettbewerbsvorteil erheblich Schaden nehmen können. Das erinnert daran, wie wichtig der Schutz geistigen Eigentums für Unternehmen ist.
1 Kommentare
Hacker-News-Meinung
Zusammenfassung der Hacker-News-Kommentare
Double Dragon II: The Revenge for DOS (1989)
DIRwar er nicht sichtbar, ließ sich aber leicht wiederherstellen.Reverse Engineering von Synthesizer-ROMs
Kindheitserinnerungen an Spiele
Die Geheimnisse der AGI-Engine
Speicherabbild und Quellcode
HxD Hex Editor
Das ROM von Air Fortress
Artefakte manueller Releases
Entdeckung von Quellcode
Kommentare zur Änderungshistorie