Neuer Code in NES Tetris entdeckt
- Hacker haben eine Methode entdeckt, um NES Tetris innerhalb des Spiels umzuprogrammieren
- Diese Methode könnte Highscore-Jägern helfen, den Crash am Spielende zu vermeiden
So wird der Code ausgeführt
- Mithilfe des „Kill Screen“ von NES Tetris lässt sich auf komplexe Weise der Speicher manipulieren, sodass neue Verhaltensweisen in der auf unveränderter Hardware und Original-Cartridges laufenden Tetris-Version codiert werden können
- Ähnliche Glitches für „arbitrary code execution“ wurden bereits in Spielen wie Super Mario World, Paper Mario und The Legend of Zelda: Ocarina of Time gefunden
- Die grundlegende Methode, externen Code in NES Tetris einzuschleusen, wird öffentlich mindestens seit 2021 theoretisch beschrieben
- Diese Methode erläutert im Detail, wie die Highscore-Tabelle von Tetris als Maschinenbefehle gelesen werden kann
Spaß mit dem Controller-Port
- Der Crash in NES Tetris tritt auf, wenn die Punkteverarbeitung des Spiels zwischen zwei Frames zu lange für die Berechnung eines neuen Scores braucht
- Wenn diese Verzögerung auftritt, wird ein Teil des Steuerungscodes von der Schreibroutine für den neuen Frame unterbrochen und springt dann in einen unbeabsichtigten RAM-Bereich, um dort die nächste Anweisung zu suchen
- Dank der Art, wie Tetris auf einer japanischen Konsole, dem Famicom, potenzielle Eingaben verarbeitet, können Spieler diesen Sprung manipulieren
Codieren in der Highscore-Tabelle
- Für die von Displaced Gamers entwickelte Methode zur Steuerung des Sprungs müssen Spieler am dritten Controller „oben“ gedrückt halten und am vierten Controller rechts, links und unten
- Dadurch wird der Sprungcode in den RAM-Bereich geschickt, der Namen und Punktzahlen der Highscore-Liste speichert, was den Spielern eine größere, direkt manipulierbare RAM-Fläche bietet
- Wenn im Zielbereich der Highscore-Tabelle „(G“ eingetragen wird, lässt sich das Spiel dazu zwingen, in einen anderen Bereich der Highscore-Tabelle zu springen
- Dort beginnt es dann, Namen und Punktzahlen nacheinander als Opcodes für die NES-CPU zu lesen
- Da im Namenseingabebereich jedoch nur 43 Symbole und für Teile der Highscores nur 10 Ziffern verfügbar sind, lässt sich nur ein Teil der verfügbaren NES-Opcodes in die Highscore-Tabelle „codieren“
- Weil es kein batteriegepuffertes Speichersystem gibt, müssen Hacker diese Highscores bei jedem Start von Tetris manuell erneut erreichen und die komplexen Namen eingeben
Meinung von GN⁺
- Es ist erstaunlich, dass es in der NES-Version von Tetris eine solche versteckte Möglichkeit gab. Offenbar wurde sie damals nicht entdeckt, und es ist faszinierend, dass das erst Jahrzehnte später passiert ist.
- Interessant ist auch, dass ein solcher Hack über den Erweiterungsport des Famicom möglich war. Das war sicher nicht von Nintendo beabsichtigt, zeigt aber wohl die im Vergleich zum NES größere Funktionsvielfalt des Famicom.
- Clever ist auch die Idee, mit diesem Bug sogar Code einzuschleusen, der Abstürze verhindert. Theoretisch könnte das das Spiel weiterlaufen lassen und wäre damit eine große Hilfe für Highscore-Versuche.
- Allerdings wirkt es unpraktisch, dass diese Methode bei jedem Spielstart erneut die komplexe Einrichtung erfordert. Für den praktischen Einsatz wäre wohl ein stärker automatisierter Weg nötig.
- Insgesamt dürfte diese Methode eher Hardcore-Highscore-Spieler oder Leute mit Interesse an Programmierung ansprechen als normale Spieler, die einfach nur das Gameplay genießen wollen. Für den Massenmarkt scheint sie kaum geeignet zu sein.
1 Kommentare
Hacker-News-Kommentare
Zusammenfassung: