Das Geheimnis der Flugzeugträger-Landung in Top Gun für NES
(relaxing.run)- 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
1 Kommentare
Hacker-News-Kommentare
Die Informationen, um das Flugzeug richtig zu landen, standen alle im Handbuch
Die nötige Geschwindigkeit und Höhe waren kein Geheimnis, aber die meisten Kinder haben das Handbuch nicht gelesen
Die eigentliche Schwierigkeit des Spiels lag an der halbwegs realistischen Physik-Engine. Mein älterer Bruder, der eine Flugschule besuchte, landete ganz leicht und zeigte mir dann auch, wie es geht
Geschwindigkeit und Höhe musste man mit Schub und Nickwinkel steuern, also durfte man nicht einfach nur auf den Motor- oder Airbrake-Knopf drücken
Der Tipp meines Bruders war, beim steilen Sinkflug die Nase leicht anzuheben und die Airbrake auszufahren, um die Geschwindigkeit zu verringern, weil man sonst nicht langsamer wird, und danach wieder auszurichten. Das Spiel hat das ziemlich genau modelliert
Dieser Blog ist schwer zu archivieren und zu durchsuchen
Es gibt keine Links zu anderen Beiträgen, und außer diesem Post kommt man nirgends hin
blag/posts und blag liefern 403-Fehler, und auf der Root-Seite gibt es nur ein Foto von einem Berg
Es gibt auch keinen RSS-Feed. Keine Beschwerde, und wenn das Absicht ist, respektiere ich das
Die Flugzeugträgerlandung war nicht schwer, aber die Luftbetankung war wirklich brutal. Ich habe sie nur ein paarmal geschafft
Gameplay-Video
Ich muss sofort an die legendäre Zeile „This business will get out of control…“ denken
Dieses Spiel wurde auch in einem Angry Video Game Nerd-Video behandelt
Passendes Video
YouTube-Link
Ich habe Top Gun nicht gespielt, aber auf dem SNES mochte ich Turn and Burn: No Fly Zone sehr
Es ist selbst heute noch erstaunlich, wie stark sich die Grafik von einer Generation zur nächsten verbessert hat
Der Wechsel von NES zu SNES war auf ähnlichem Niveau. Mit PS1→PS2→PS3 hatte sich die 3D-Ära etabliert, deshalb wurden die Veränderungen zunehmend schrittweiser
Alle reden darüber, wie schwer die Landung in Top Gun ist, aber das Andocken an den Satelliten in Captain Skyhawk ist viel schwerer
Man muss andocken, während einem die Demo-Scene-Effekte von RARE um die Ohren fliegen
Zum Vergleich hat jemand ein Beispiel für Landungslogik in Python geteilt
Je nach Höhe, Geschwindigkeit und Richtung gibt es dann Rückgaben wie TOO_SLOW_OR_TOO_LOW oder TOO_FAST_OR_TOO_HIGH
Ich liebe solchen Simulator-Unfug
In X‑Plane kann man sogar eine 737 auf einem Flugzeugträger landen. Man lädt nur Treibstoff für 30 Minuten ein, setzt die Klappen maximal aus und zieht kurz vor der Landung die Feststellbremse an
Natürlich braucht eine 737 laut offiziellen Werten deutlich mehr Landebahn, aber wenn der Träger gegen den Wind fährt, bekommt man mehr als 40 Knoten Gegenwind
Ich habe das Spiel als Kind gespielt, aber ich habe nie auf dem Flugzeugträger gelandet. Das war die Aufgabe der großen Brüder
Eines Tages hieß es in der Nachmittagsbetreuung, ein Freund könne in diesem Spiel gut landen, also haben wir eine Kooperationsmission gestartet
Ich habe die Kämpfe übernommen, er die Landungen, und zusammen haben wir Top Gun und The Second Mission in wenigen Stunden durchgespielt
Es ist bis heute eine schöne Erinnerung als eines der wenigen NES-Spiele, die ich ohne Cheats oder Game Genie zusammen mit einem Freund geschafft habe