- Das Flugzeugträger-Landungssystem von Top Gun für NES wurde per Reverse Engineering analysiert, und die exakten Bedingungen für eine erfolgreiche Landung wurden offengelegt
- Für eine erfolgreiche Landung sind Höhe 100–299, Geschwindigkeit 238–337 und exakte Ausrichtung auf den Flugzeugträger erforderlich
- Die Anzeige „Alt. 200 / Speed 288“ auf dem MFD im Spiel gibt tatsächlich den Mittelwert des erlaubten Bereichs an
- Geschwindigkeit und Höhe werden im Speicher im Format BCD (Binary Coded Decimal) abgelegt, und die Prüffunktion läuft an einer bestimmten Adresse
- Ein Beispiel für die Entschlüsselung der präzisen internen Logik eines alten Spiels, nützlich für die Analyse von Retrospielen und zum Lernen von Debugging
Grundbedingungen für die Landungsbewertung
- Für eine erfolgreiche Landung sind Höhe 100–299, Geschwindigkeit 238–337 und eine exakte Ausrichtung auf den Flugzeugträger erforderlich
- Alle drei Bedingungen werden am Ende der Landesequenz geprüft
- Die Anzeige „Alt. 200 / Speed 288“ auf dem Spielbildschirm entspricht dem Mittelwert des tatsächlich zulässigen Bereichs und ist damit ein sinnvoller Zielwert für Spieler
- Höhe und Geschwindigkeit werden über Throttle-Eingaben und Pitch-Winkel gesteuert, während die Ausrichtung ohne separate Anzeige nur durch die Warnung „Right! Right!“ zurückgemeldet wird
Speicherstruktur und interne Variablen
- Wichtige Speicheradressen und ihre Inhalte
- $40–$41: Geschwindigkeit (BSD-Format), erlaubter Bereich 238–337
- $3D–$3E: Höhe (BSD-Format), erlaubter Bereich 100–299
- $FD: Richtung (Heading), im Bereich -32 bis +32 ist 0–7 landefähig
- $9E: Speichert das Ergebnis der Landungsprüfung, Wert 0 bedeutet Erfolg
- Geschwindigkeit und Höhe werden als BCD (Binary Coded Decimal) gespeichert, um die Anzeige auf dem Bildschirm zu vereinfachen
- Beispiel: 1234 wird als 0x1234 (dezimal 4660) gespeichert
Routine zur Landungsbewertung
- Die Funktion an Adresse $B6EA prüft den Landungsstatus und schreibt das Ergebnis in $9E
- Die Routine vergleicht Höhe, Geschwindigkeit und Richtung nacheinander; wenn eine Bedingung nicht erfüllt ist, wird jeweils ein anderer Codewert zurückgegeben
- Beispiel: Bei zu großer Höhe oder zu hoher Geschwindigkeit wird Code 8 zurückgegeben, bei zu geringer Höhe oder zu niedriger Geschwindigkeit Code 4
- Wenn alle Bedingungen erfüllt sind, wird mit LDX #00 der Erfolgsstatus gesetzt
Debugging und Cheat-Code
- Mit dem Game-Genie-Code AEPETA wird jede Landung immer als erfolgreich gewertet
- Dieser Code umgeht die eigentliche Prüfroutine und schreibt das Ergebnis erzwungen als Erfolg
Fazit
- Das Landungssystem in Top Gun für NES basiert nicht nur auf einfacher Steuerung, sondern auf einer präzisen, zahlenbasierten Bewertungslogik
- Durch Reverse Engineering lassen sich die interne Speicherstruktur und die bedingten Verzweigungen eines Retrospiels klar nachvollziehen
- Als Beispiel für die Präzision klassischer Spieldesigns ist dies eine wertvolle Referenz für die Analyse und Rekonstruktion von Spiellogik
Noch keine Kommentare.