Wie funktioniert GameShark Codes?

Das hat mich immer umgebracht Offensichtlich GameShark und Game Genie nie in den Zugang zu ihren eigenen Cheats in jedes Spiel zu platzieren . Ich glaube nicht, dass irgendwelche Entwickler ihnen den Quellcode gaben, um für Codes zu gießen. Und ich glaube nicht, dass der ursprüngliche Entwicklungsprozess für diese Spiele auch die Platzierung eines dieser Codes selbst beinhaltet. Also, was ist ein GameShark oder Game Genie Code, wirklich?

Beide nehmen in der Regel die Form eines relativ kurzen hexadezimalen Strings (oder mehrere, wenn das der Fall ist), so meine Intuition sagt mir, sie verwenden das gleiche Prinzip. Aber sind sie nur Speicheradressen, um ein bisschen zu kippen? Oder sperren sie Oder XOR eine Reihe von Bits mit etwas? Was ist der Code und was macht das?

  • Was ist der Code, um 30 Leben in der ursprünglichen Contra zu bekommen?
  • Gibt es eine Verteilung von Nethack mit Sparen?
  • Gibt es einen Makrospieler / Recorder für Spiele?
  • 3 Solutions collect form web for “Wie funktioniert GameShark Codes?”

    Wie es funktioniert

    Wenn GameShark (und andere Game Enhancer Produkte / Homebrew) von der Konsole geladen wird, ist der Enhancer, was das eigentliche Spiel startet. Dabei hinterlässt es einen Code-Handler im System-RAM und " hooks " die Programmierung des Spiels.

    Spezielle Orte in der Programmierung eines Spiels, die in etwa jedem Rahmen ausgeführt werden (wie das Lesen der Reglerdaten), wo "Haken" platziert werden. (Weil SDKs verwendet werden, das macht Finding Hooks, die in allen Spielen für ein System viel einfacher arbeiten)

    Was der Haken eigentlich tut, leitet den Programmfluss an den Code Handler weiter, den der Enhancer hinterlassen hat. Sobald der Code-Handler fertig ist, führt er den Ablauf der Programmierung zurück zum Punkt der Entführung.

    Wenn Sie mit GameSharks " Master Code " vertraut sind, ist das, was den Haken setzt. (Andere Enhancer – wie Gecko OS für Wii – brauchen keine Master-Codes, weil der Enhancer selbst eine Handvoll SDK-basierte Hooks hat, die er im Spiel beim Finnen "finden" kann.)

    Aufbau der Codes

    Jetzt ist ein Code selbst in DREI Teile getrennt:

    1. Der CodeType (das ist USUALLY das erste Byte des Codes – die ersten 2 Hex Characters). CodeTypes sind spezifisch für den Enhancer.
    2. Die Adresse in ram, die der CodeType verwenden wird.
    3. Der Wert, den der Codetyp an der angegebenen Adresse verwendet.

    Die häufigsten CodeTypen sind:

    1. RAM Writes (typische Optionen sind 8bit, 16bit oder 32bit)
      Mit RAM Write, wird der CodeHandler den Wert nehmen und ihn an die Adresse legen. (Umstellung was auch immer war da, wie die Einstellung Ihrer Gesundheit auf 100!)

    2. Bedingung (typische Optionen sind>, <, =,! =)
      Mit Conditionals liest der CodeHander den Wert an der Adresse des Codes und vergleicht ihn mit dem Wert im Code. Wenn der Vergleich true zurückgibt, führt der CodeHander die nächste Zeile im Code aus. (Wie viele Zeilen, die es ausführt, ist bis zum Enhancer und ist oft eine Option im Codetyp selbst!)

    Es gibt viel mehr Infos, die wir eintauchen könnten, aber das sollte Ihnen eine gute Grundlage für das Verständnis geben. =)

    Quelle: Spielhacker seit 1999, Gründer von http://GeckoCodes.org

    Für die Zwecke dieser, ich vermute, wir reden über die "klassischen" GameShark / GameGenie Geräte, die zwischen der Patrone und der Hardware sitzen. Ich glaube, dass moderne Geräte einem ähnlichen Prinzip folgen, aber weit fortgeschritten sind. James 'Antwort auf diese Frage geht in einige Details über die mehr "modernen" Ansatz für dieses Problem.

    Was ist in einem ROM? Nun … das Spiel, im Wesentlichen.

    In einem Videospielsystem werden die Daten für das Spiel in einer Anzahl von Read-Only Memory (ROM) Chips auf einer Leiterplatte codiert, die wir die Patrone nennen. Da diese ROM-Chips das Spiel enthalten, verwenden wir manchmal die Begriffe "Spielprogramm" und "ROM" austauschbar.

    Das Spielprogramm / ROM erzählt dem System im Wesentlichen, wie das Spiel gespielt wird. Wenn zum Beispiel A in Super Mario Brothers drückt, wird ein Klang gespielt, Marios Sprite ändert sich (er legt seine Hand hoch) und sein Sprite bewegt sich für eine gewisse Zeit nach oben, und dann geht er wieder auf den Boden. Alle diese Informationen darüber, wie man auf eine Schaltflächenpresse reagiert, wird im ROM codiert.

    Die Mechanik des Spiels beinhaltet auch, wie andere Ereignisse berücksichtigt werden – wie das, was passiert, wenn Mario ein Leben verliert. Es gibt einen Wert in Erinnerung, auf die zugegriffen wird, um zu sehen, wie viele Leben Mario hat, und diese Zahl wird um eins verringert.

    Patching für Spaß und Profit!

    Die Art und Weise, wie diese Geräte funktionieren, sitzt sie zwischen der Konsole und dem ROM. (Wörtlich – das ist der Grund, warum sie sich an die Patrone anschließen, wie sie es tun.) In den meisten Fällen, wenn die Konsole das ROM fragt, was als nächstes zu tun ist, übergibt das Cheat-Gerät diese Anforderung einfach an den ROM, die ROM antwortet und Das Spiel spielt normal.

    Wenn du einen "Cheat-Code" in den Cheat-Gerät eingibst, ersetzt er (oder " Patches ", um einen gemeinsamen Fachausdruck zu verwenden) die Anweisung aus dem ROM mit der von dir angegebenen Anleitung. Auf diese Weise kannst du die Spielweise ändern.

    Zum Beispiel, wenn du unendliches Leben wolltest, würdest du den ROM so pflücken wollen, dass wenn das Spiel den Wert des "Leben" -Bereichs des Speichers bearbeitet, überspringt er über die Anweisung "subtrahieren 1". Wenn du nur wollte Mario mit mehr Leben zu beginnen, alles, was du tun musst, ist in den Bereich des Gedächtnisses gehen, wo Mario's Leben initialisiert werden, und machen es so, dass anstatt den Anfangswert auf 3 setzen, setzen Sie es auf 4 , Oder 10 oder 100 stattdessen.

    Das Endergebnis ist, dass ein winziges, manchmal ein oder zwei Byte-Wechsel im Spiel-Programm radikal verändert die Art und Weise das Spiel funktioniert. Plötzlich verliert Mario niemals Leben, oder Gegenstände werden nie verbraucht, oder ein einziges Tier zu töten gibt dir 10-mal die Erfahrung, oder du beginnst das Spiel mit der ultimativen Waffe, etc.

    Diese Geräte haben eine begrenzte Fähigkeit, Codes zu speichern, und einige Cheats verlangen, dass Sie Patches mehrere Standorte im Speicher – je komplexer der Cheat, oder mehr Orte, die es zu berühren, die mehr Codes, die Sie benötigen, um das Programm zu ändern So wie du willst Wenn du einen mit einem ausreichend großen Coderaum hättest, wäre es theoretisch möglich, das Spiel komplett zu wechseln! Jedoch, da diese Geräte ihr Gedächtnis verloren haben, als die Macht entfernt wurde, würdest du im Wesentlichen das ROM von neuem neu schreiben, jedes Mal, wenn du gespielt hast, das wäre … langweilig, um es gelinde auszudrücken.

    Codecodierung

    Im einfachsten Fall sind die Codes selbst typischerweise 2 Teile. Der erste Teil ist die ROM-Adresse zu ändern, und der zweite ist der Wert zu setzen. Diese Werte sind binäre oder hexadezimale Werte und werden typischerweise in ein "leicht lesbares" Format für den Menschen codiert, um das System leicht in das System einzutreten.

    Komplexere Codes hatten einen dritten Teil, der ein "Vergleich" -Wert war – der Code würde nur den Wert im ROM ändern, wenn der vorhandene Wert des ROM-Programms übereinstimmt. Dies erlaubte es, dass bestimmte Codes an mehreren Versionen eines ROMs oder an Patronen arbeiten, die komplex genug waren, um eine Bankumschaltung zu erfordern (was ein anderes Thema ist …)

    Das ursprüngliche NES GameGenie-Format kodiert 16 Bits Adresse und 8 Bits Ersatzwert im Hex-Format, das dann verschlüsselt und in 6 Buchstaben codiert wird. Wenn auch ein "Vergleich" -Wert erforderlich ist, ist dies ein weiterer 8-Bit-Wert, der 2 weitere Buchstaben generiert, für insgesamt 8. Dieser Leitfaden von Benzene von Digital Emutations erklärt das Scrambling-Format und wie Sie ein NES GameGenie decodieren können Code.

    Codes finden

    Ich weiß nicht genau, wie die Leute, die die ersten GameGenie-Geräte gemacht haben, über die Festlegung der verwendeten Codes ging, aber die Grundidee ist, den bestimmten Teil des ROM-Codes zu finden, den du ändern möchtest. Dies könnte auf einer Debug-Version der Konsole erfolgen, die es einem Entwickler ermöglicht, die Anweisungen anzuzeigen, wie sie ausgeführt werden. Haben Sie das Spiel zu tun, was auch immer es ist, dass Sie ändern möchten, und dann sehen Sie, welcher Teil des ROM von der Konsole angefordert wird. Dann ändern Sie den Wert, der gelesen wird, und voila, der Cheat wird erstellt.

    Es könnte auch getan werden, indem man die Daten aus dem ROM extrahiert und es untersucht, um zu bestimmen, wie es funktioniert. Durch das Zurücklesen des ROMs sehen Sie die Anweisungen, die ausgeführt werden und in welcher Reihenfolge. Nach der Analyse des im ROM gespeicherten Programms (ein Prozess, der als " Reverse Engineering " bezeichnet wird), ist es eine Frage der Bestimmung, welche Anweisung der Schlüssel für das Verhalten des Spiels ist, und das Ändern, damit Sie dieses Verhalten ändern. Dieser Prozess kann langweilig sein, aber es wird einfacher mit Praxis, Wissen und Geschick.

    Jeder dieser Prozesse wäre wahrscheinlich schwierig, für den Heimanwender zum Zeitpunkt der ersten GameGenie-Geräte unmöglich zu sein, obwohl Sie vielleicht in der Lage sind, das Muster eines gegebenen Betrugs zu bestimmen, der einen vorhandenen Code gegeben hat. Zum Beispiel, wenn die GameGenie mit einem Code versendet wurde, der Mario 6 lebt, könnte eine Person wahrscheinlich herausfinden, wie man den Wert von "6" auf "7" oder eine andere beliebige Zahl ändert. Die harte Arbeit ist , den Ort zu finden, um zu patch, und nicht das Patch selbst, in diesen Fällen.

    Der Emulationseffekt

    Im Emulationsalter ist die Codegenerierung einfacher, aber auch etwas anders. Emulatoren beschränken sich nicht auf Patching-ROM-Standorte – sie können den aktuellen Wert der Variablen des Spiels in Echtzeit untersuchen. Das macht alle möglichen interessanten Dinge möglich.

    Anstatt nur das Spiel des Spiels zu ändern – zum Beispiel, überspringen Sie den Befehl "subtrahieren 1 aus Leben", kann der Emulator den Zustand des Spiels ändern – zum Beispiel, damit der Benutzer einfach sagen kann: "Ich will 10 Leben. Oder "Ich möchte, dass mein Inventar 99 Elixiere enthält." Diese Echtzeit-Betrachtung und Bearbeitung des Spiels macht Spielhacks viel, viel einfacher und Spielhacker weit mächtiger.

    Wo ist meine Xbox 360 Spiel Genie?

    Moderne Spielgeräte verfügen über alle Arten von Kopierschutzprogrammen, die das ROM verifizieren und validieren, um Piraterie zu vermeiden und unter anderem eine "faire" Multiplayer-Erfahrung zu gewährleisten. Dies macht die Schaffung von Geräten ähnlich der "klassischen" GameGenie sehr schwierig und / oder illegal in einigen Fällen.

    Ich glaube, ein GameShark Code hat zwei Teile:

    1. Die Speicheradresse zu ändern, und
    2. Der Wert, der in dieser Adresse platziert wird

    Durch das Ändern der Werte in diesen Adressen bekommst du einen Betrug.

    Die Codes wurden nicht im Spiel platziert. Nachdem das Spiel freigegeben ist, mit einer ziemlich einfachen Methode, können Sie Ihre eigenen Codes für ein Spiel erstellen, wenn Sie ein Gerät haben, das auf den RAM der Konsole zugreifen kann, aka, ein Cheat-Gerät. Diese Codes werden dann veröffentlicht.