Dank der erstaunlichen Panne in Ocarina of Time konnten Modelle aus Star Fox 64 hinzugefügt werden

Bild

Während der Jahre, in denen ich Artikel über Spiele schrieb, sprach ich über viele erstaunliche Pannen , Codes, die lange Zeit unbekannt waren , Tricks bei der Ausführung von willkürlichem Code und die Suche nach tief verborgenem Inhalt in klassischen Spielen und Geräten. Aber nichts könnte mich auf dieses Twitch-Video vorbereiten, in dem eine Flotte von fliegenden Arwings aus Star Fox 64 in die Welt von Ocarina of Time eindringt, um Link anzugreifen.

Sie erwarten, dass eine solche Szene nur in einem von Fans erstellten Cartoon oder ROM-Hack zu sehen ist, den Nintendo gerne aus dem Internet nimmt . Das Erstaunlichste an diesem Video ist jedoch, dass es eine unveränderte Version des originalen japanischen Ocarina of Time ROM mit der Standardkonsole und den N64-Controllern zeigt.

Den ganzen Morgen habe ich herausgefunden, wie das überhaupt möglich ist. Um dies zu erklären, müssen Sie tief in den Kern der Maschinensprachenanweisungen für Nintendo 64, die Ocarina of Time- Speicherverwaltung und den Spieleentwicklungsprozess Mitte der 90er Jahre eintauchen. Wenn Sie so neugierig sind wie ich, schließen Sie sich uns an.

Veraltete Links und neuer Code


Diese erstaunliche Passage begann mit der Entdeckung eines wichtigen Fehlers im Oktober letzten Jahres: Der Spieler Glitches0and0stuff, der Emulatoren verwendete, und eine sorgfältige Untersuchung der Speicherbereiche von Nintendo 64 entdeckten eine Möglichkeit, veraltete Links in Ocarina of Time zu manipulieren .

Tatsächlich besteht die Panne darin, dass der Spieler den Gegenstand aufnimmt und das Spiel dann dazu bringt, ihn direkt von Links Händen zu entfernen, wenn er die Schwelle eines neuen Ladeorts überschreitet (zum Beispiel des nächsten Raums). Zu diesem Zeitpunkt gibt das Spiel den von diesem Gegenstand belegten Speicherbereich frei, damit er während des Ladens für andere Objekte im Spiel verwendet werden kann. Gleichzeitig denkt das Spiel, dass Link etwas in der Hand hält, und aktualisiert daher den Zeiger auf den "veralteten Link" im freigegebenen Speicher, wobei Daten aufgeschrieben werden, die die Position und den Winkel eines nicht vorhandenen Objekts darstellen. Mit diesem Zeiger können dann durch vorsichtiges Manipulieren die Daten des neu geladenen Objekts mit beliebigen Werten "verfälscht" werden.


Raumjäger können sich nicht mit Link messen.


Arwing von Star Fox 64 kann Schaden erleiden und auf Link schießen, da er immer im Spiel ist.


Das Zielen mit der Z-Taste erleichtert das Zielen eines Bumerangs auf den Boden des Arwing.


Der Link enthält ein "leeres" Objekt - die Vorbereitung für den Fehler erfolgt mit der Ausführung von beliebigem Code.


Der wichtigste Teil der Technik ist das Einfrieren der Kamera an der Störimpulsposition.


Ein Gerät zum Halten der notwendigen Tasten / Positionen des Analog-Joysticks des Controllers 3, um direkt zu den Titeln zu gelangen.


Nach zehn Minuten Eingabe des Dateinamens kann der Arwing-Code heruntergeladen werden

Anfänglich wurde dieser Trick verwendet, um das Spiel einfach zu „verderben“, beispielsweise um neue Gegenstände in Schatztruhen zu laden oder um die Positionen anderer Gegenstände im Raum zu ändern (wie hier ausführlich erläutert ). Nach einiger Zeit stellten die Spieler jedoch fest, dass die gleiche Methode zum Ändern einzelner Assembler-Sprungcodes verwendet werden kann , um dem Spiel mitzuteilen, wo bei bestimmten Spielereignissen nach der nächsten Anweisung gesucht werden muss.

Nachdem Sie den gewünschten Code auf diese Weise eingegeben haben, können Sie das Spiel zwingen, in den Speicherbereich zu wechseln, der die letzten bekannten Rotationswerte für X- und Y-Schleudern enthält. Wenn diese Werte genau angegeben sind, werden sie als ein weiterer Sprungcode interpretiert, der einen Übergang in den Speicherbereich ausführt, in dem der Name der aktuellen Datei gespeichert ist. Dann wird dieser Dateiname als normaler N64-Maschinencode interpretiert, so dass der Spieler schnell an eine beliebige Stelle im Spiel gelangen kann (natürlich, wenn er die Binärzeichen des Dateinamens korrekt in die entsprechenden Opcodes konvertiert).


Glitch Erklärung mit einem veralteten Link, der ursprünglich verwendet wurde, um Gegenstände in Truhen zu ersetzen.

Das erste ernsthafte Beispiel für die Verwendung dieser Manipulation mit Übergangscodes war das Laden der Zwischensequenz des Spiels mit Untertiteln . Damit stellte der Spieler einen neuen Weltrekord für den Speedran des Spiels in der Kategorie "Any%" auf . Um dies in der Anfangsphase des Spiels schnell zu tun, müssen Sie andere Störungen verwenden, einschließlich der Kamerastörung "Gehen während des Gesprächs" , mit der Sie Steine ​​zum richtigen Zeitpunkt und an den richtigen Orten laden und entladen können. Auch dafür müssen Sie bestimmte Tasten und Positionen des analogen Joysticks der an den ersten und dritten Nintendo 64-Port angeschlossenen Controller halten, damit deren Signale als Zwischensequenz-Positionscode mit Untertiteln interpretiert werden.

Schalte Arwing frei


Die oben beschriebene Methode ist ganz gut, wenn Sie nur in die Zwischensequenz gehen möchten. Er hat jedoch eine schwerwiegende Einschränkung: Das Dateisystem Ocarina of Time ist auf acht Zeichen beschränkt, dh, der Dateiname kann nur in einige Maschinencode-Anweisungen umgewandelt werden. Glücklicherweise können diese beiden Befehlsschlitze auch verwendet werden, um die Zeichenbegrenzung praktisch zu beseitigen.

Dies geschieht auf äußerst verwirrende Weise, die in diesem Pastebin und diesem Video ausführlich beschrieben wird. Es genügt zu sagen, dass es die oben beschriebene Methode dreimal verwendet, wodurch die wichtigen Überprüfungen des Dateinamenpositionsindikators beseitigt werden und dieser Zeiger dann auf einen negativen Positionswert gesetzt wird.


Detaillierte Erklärung der Ausführung von beliebigem Code in Ocarina of Time

Infolgedessen haben die Spieler die Möglichkeit, einen Code mit Hunderten von Zeichen einzugeben, wodurch sie viel komplexere Sequenzen von Maschinenbefehlen vorab laden können, um das oben beschriebene Codeübergangsverfahren zu implementieren. Dies reicht jedoch noch nicht aus, um die Grafiken, Animationen und die Gameplay-Logik zu codieren, die für einen Angriff auf Arwing erforderlich sind. Glücklicherweise hat uns Nintendo sehr geholfen, indem wir den ganzen Arwing-Code bequem in allen Ocarina of Time- Kassetten versteckt haben.

Warum? Der Charakter- und Grafikdesigner Satoru Takizawa sagte Iwata Asks in einem Interview von 2011, dass es nur eine Möglichkeit sei, den Code erneut zu verwenden, um einen der Feinde in Zelda zu bewegen:

Volvagia ist ein Drache, also windet er sich und bewegt sich in Wellen. Ich habe gerade dem Chefprogrammierer Kazuaki Morita Teile des Drachenmodells übergeben, und er hat es sofort in Gang gesetzt. Es blieb mir ein Rätsel, wie es ihm gelang ... also konnte ich nicht widerstehen, ihn nicht zu fragen. Er antwortete, es sei dasselbe wie beim Programmieren für Star Fox 64 . Es gibt eine Szene in diesem Spiel, in der ein anderer Kämpfer an Arwings Schwanz hängt und die Bewegungen des Kämpfers im Flug genau die gleichen sind wie die von Volvagia. Ich war erstaunt, es war ein echtes Wunder für mich.



Ein Video von 2007, in dem Arwing über den Kokiri-Wald fliegt (GameShark-Codes und Emulator verwendet).

Nach dem Kopieren der für Volvagia erforderlichen Animationen scheint Morita den gesamten Block des Arwing-Codes in den Mülldaten des Spiels belassen zu haben. Vor vielen Jahren haben Datenforscher davon erfahren. Und seit mehr als einem Jahrzehnt wissen die Spieler, wie sie mithilfe von Cheat-Geräten wie GameShark , die die Werte im Speicher ändern, um Gegner durch Arwing zu ersetzen, auf diese verborgenen Teile des Codes zugreifen können.

Dank der im Artikel beschriebenen Tricks mit Speicher-Manipulationen wird jedoch kein externes Cheat-Gerät mehr benötigt. Am 23. Januar hat der ZFG1-Spieler dies ein für alle Mal bewiesen, indem er Arwing mit dem unveränderten Zelda-ROM und der Standard-Nintendo 64-Konsole in einem Twitch-Stream geladen hat. Das Ergebnis war ein Spiel, bei dem alle Türen durch Arwing ersetzt wurden, der um Ling herum flog, ihn mit zerstörerischen Schüssen von Sprengkörpern angriff und sogar zu Boden fiel, wenn er niedergeschlagen wurde.

Die Vorbereitung für die Aufnahme dieses Clips dauerte mehr als eine Stunde , in der drei Zyklen der Ausführung von willkürlichem Code erstellt wurden und innerhalb von 10 Minuten der Dateiname zum Laden von Arwing sorgfältig eingegeben wurde. Gleichzeitig war dieser Clip der Höhepunkt monatelanger und jahrelanger Arbeit einer Community, die von dem Wunsch besessen war, das klassische Spiel und seine Pannen vollständig zu verstehen und zu beherrschen.

Zusätzlich zum Unterhaltungswert hat der Clip „Arwings in Zelda“ bewiesen, dass die Community, eine Gruppe von Computerspezialisten, mit ausreichendem Zeit- und Arbeitsaufwand erstaunliche Dinge mit klassischer Spielausrüstung und Software tun kann.

Source: https://habr.com/ru/post/de485908/


All Articles