Die ist eine Art Mini-Workshop zum Thema Freezer oder genauer gesagt Cheat-Programme. Aber bevor wir
zu denen kommen, fangen wir so ungefähr bei Adam und Eva an...
Nicht wenigen Amiga-Usern fällt beim Schwärmen von der guten alten Zeit ein kleines, graues Kästchen
mit der Aufschrift "Action Replay" ein, für einige dürfte es den 500er zusammen mit
Speichererweiterung und zweitem Diskettenlaufwerk erst komplett gemacht haben. Denn das kleine
Hardwaremodul war ein wahres Multitalent! Durch einen Druck auf die Freeze-Taste wurde der Amiga
"eingefroren" und stattdessen konnten dutzende Befehle des "Action Replay" verwendet werden. Das
fing mit der Anzeige etlicher vor allem für Programmierer hilfreicher Daten an und ging über
Disassemblieren, Disk-Operationen und das Speichern von Grafiken und Sounds bis hin zu Funktionen,
die vor allem die zahlreichen Spielernaturen ansprachen. Und damit wären wir auch beim Thema, der
sogenannten Trainer-Funktion des "Action Replay". Wie diese funktioniert, lässt sich am besten an
einem Beispiel erklären.
Nostalgie pur
Also kramen wir das Spiel "Rick Dangerous" aus der Diskettenbox, werfen den betagten Amiga 500 an
und starten das Spiel. Der erste Blick gilt immer der Anzahl der Leben (oder was auch immer man
durch den Trainer ändern will), unser Möchtegern-Indy startet mit immerhin sechs davon. Nun kann man
mit einem beherzten Druck auf Freeze das Action Replay aktivieren. Erst mal gilt es herauszufinden,
wo im RAM die Leben stehen. Dazu gibt man "ts 6" ein, worauf der Speicher nach dem Vorkommen dieser
Zahl durchforstet wird. Allerdings werden das eine Unmengen an Adressen sein, entschieden zu viele
um auf gut Glück eine herauszupicken. Also kehrt man ins Spiel zurück und opfert eines der Leben -
leicht zu verschmerzen, denn bald werden es sowieso unendlich viele sein. Mit "t 5" wird dem Trainer
nun mitgeteilt, daß er die zuvor gefundenen Speicheradressen nochmal durchsuchen soll und dabei
diejenigen anzeigen, deren Wert nun 5 beträgt.
In diesem Fall haben wir Glück: Es ist nur eine einzige, nämlich 044972. Andernfalls hätte halt
weiter verglichen werden müssen, bis nur noch ein Treffer übrig ist. Im nächsten Schritt lassen wir
den Trainer den Programmcode des Spiels nach Stellen durchsuchen, an denen der Inhalt dieser
Speicheradresse verringert wird, wenn der schusselige Spieler den armen Rick mal wieder in eine
Falle hat laufen lassen (Monkey Island-Spieler kennen das unter dem Namen "Schasch-Rick"...). Das
geschieht mit dem Befehl "tf 044972". Nach kurzer Suche meldet das Action Replay, eine Subtraktion
gefunden zu haben, die wir nun mit "tfd 044972" eliminieren. Dabei wird noch einmal gesucht, den
vorherigen Befehl hätten wir uns also sparen können. Nach einer weiteren Wartezeit meldet das Modul,
die unerwünschte Stelle entfernt zu haben, und siehe da: Rick verliert tatsächlich kein Leben mehr,
wenn er fiesen Fallen oder aufgebrachten Eingeborenen zum Opfer fällt.
Und heute?
"Schön und gut", mag sich jetzt der eine oder andere fragen, "aber wofür schreibt der das jetzt
alles?". Klar, die Zeiten des 500ers sind lange vorbei. Trotzdem lässt sich heute mit der gleichen
Methode so manches schwere Spiel knacken, und zwar ganz ohne zusätzliche Hardware! Denn viele der
aktuellen Spiele laufen im Multitasking, so dass sich weitere Programme im Hintergrund starten
lassen, beispielsweise das Cheat-Programm von Thorsten Martin und Matthias Scheurich. Dieses ist nur
eines von vielen, aber da alle (bzw. alle mir bekannten) derartigen Programme auf die gleiche Art
funktionieren, werde ich nur auf eines detailliert eingehen. Das Prinzip ist ähnlich dem oben
vorgestellten, mit einem Unterschied: Ist erstmal die gewünschte Adresse im Speicher gefunden, wird
der Wert einfach vom Benutzer überschrieben, so dass statt 3 auf einmal 100 Leben zur Verfügung
stehen.
Auch hier erstmal ein Beispiel, nämlich zu dem Spiel "NemacIV".
Wenn das Spiel und das Cheat-Programm gestartet wurden, überlegt man sich wieder, welche Variablen
überhaupt manipuliert werden sollen. Sinn würde hier die Energie des Droiden machen, aber die wird
leider graphisch angezeigt, so dass die genaue Zahl nicht abgelesen werden kann. Also begnügen wir
uns wohl oder übel mit der Munition. Wieder liest man den aktuellen Stand ab und trägt ihn in das
Feld "Such/Editierzahl" ein. Dann heißt es überlegen, wie die gesuchten Daten überhaupt gespeichert
sind. Es kann nach Bytes, Worten (Words) und Langworten (Longwords) gesucht werden. Für eher kleine
Bereiche (-128 bis 127) reicht ein Byte aus, während in ein Word positive Zahlen bis 32767 und in
ein Longword gar bis 2147483647 passen. In den meisten Fällen sollte wie voreingestellt nach Words
gesucht werden, sofern man nicht von vornherein weiss, dass die Werte darüber liegen müssen. Mit
einem Klick auf "Finden" wird die Suche gestartet. Sobald diese abgeschlossen ist, verändert man wie
gehabt den Wert, also in diesem Fall die Munition, und tippt einen neuen ein. Mit dem Suchen-Knopf
wird der Vergleich gestartet, worauf in der Adressen-Liste ein oder mehrere Einträge erscheinen. Im
zweiten Fall muß das Ergebnis eingeschränkt werden, indem noch einmal ein paar Schuß verballert
werden und die neue Zahl gesucht wird.
Steht dann nur noch eine einzige Adresse in der Liste, kann endlich geschummelt werden. Dazu wählt
man sie aus und tippt in das Feld "Such/Editierzahl" den gewünschten Wert ein, der natürlich nicht
über der jeweiligen Obergrenze liegen darf, also maximal 32767 für ein Word und so weiter. Da die
Munition als Word im Speicher liegt, gehen wir gleich in die Vollen und tragen satte 32767 ein.
Jetzt heißt es nur noch "Editieren" und schon stehen im Spiel Unmengen an Munition zur Verfügung.
Zumindest von einer Art - da es bei Nemac IV aber MG, Plasmakanone, Granaten und Bomben gibt, würden
wir die anderen Vorräte gerne auch etwas auffrischen. Dazu bietet das Programm eine weitere nette
Funktion: Fünf sogenannte "Cheat-Ebenen". Das heißt nichts weiter als dass mehrere Adressen
gleichzeitig "überwacht" werden können. Statt also für die Plasmakugeln alles zu überschreiben,
wechselt man auf Ebene zwei, sucht die Adresse heraus und ändert sie. Wird die MG-Munition später
wider Erwarten doch knapp, muß man nur auf Ebene eins springen und dort erneut editieren. Eine
weitere Hilfe ist der Trace-Modus. In dem schreibt das Programm in frei wählbaren Zeitabständen
automatisch den eingestellten Wert in den Speicher, so daß man sich um überhaupt nichts mehr kümmern
muß. Allerdings kann dieser Modus nicht auf mehreren Ebenen zugleich benutzt werden.
Multitasking-Killer
Wie sieht es aber nun mit Spielen aus, die die Kontrolle über den Rechner gnadenlos an sich reißen
und kein Multitasking erlauben? Auch hier gibt es eine Lösung, die sich HRTmon nennt und eine Art
"Action Replay" in Software nachgebildet darstellt. Um das Problem mit dem angehaltenen Multitasking
zu umgehen, hackt sich HRTmon nicht ganz systemfreundlich in den Rechner, aber das ist halt
unvermeidbar. Einmal gestartet überlebt es auch einen Reset, so dass es auch mit Diskettenspielen
problemlos läuft. Zum Aktivieren gibt es mehrere Möglichkeiten. Die beste ist ein sogenannter
"level7-Schalter", zumindest für Leute, die wissen, an welchem Ende ein Lötkolben heiß wird. Damit
lässt sich auf Knopfdruck ein spezieller Interrupt auslösen, bei dem HRTmon zum Leben erwacht. Nötig
ist er aber nicht zum Benutzen des Programms, denn es lässt sich auf Wunsch auch über die Tastatur
oder die rechte Maustaste aktivieren - das funktioniert allerdings nicht bei allen Programmen. Hat
man die entsprechende Taste gedrückt, landet man auf einem Bildschirm, der dem des "Action Replay"
nicht unähnlich ist. Um sich einen ersten Überblick zu verschaffen, kann man mit der Help-Taste alle
Befehle mit kurzen Beschreibungen auflisten lassen, zusammen mit der (englischen) Anleitung kommt
man so schnell hinter die wichtigsten Programmfunktionen.
Zum Starten des Trainers dient "ts (start) (end) (value)", es muß also der Bereich, in dem gesucht
wird, festgelegt werden. Der Wert kann durch anhängen von .b, .w oder .l als Byte, Word oder
Longword gekennzeichnet werden. Ein Aufruf könnte zum Beispiel "ts $01000000 $08000000 3.w" lauten,
in diesem Fall würde also im angegebenen Bereich nach 3 (als Word) gesucht. Das vergleichen geht
dann mit "tf (value)", also beispielsweise "tf 2.w". Wurde eine passende Adresse gefunden, erscheint
diese nun auf dem Bildschirm und kann mit dem Befehl "h (address) (value)" überschrieben werden.
Wer jetzt von der Lust gepackt wurde, das eine oder andere frustrierend schwere Spiel doch noch mal
hervorzuholen und mit ein wenig Schummeln endlich durchzuspielen, wird natürlich auf unserer
Leser-CD fündig. Im Verzeichnis "Magazin/Cheats" liegen HRTmon und mehrere Cheat-Programme, unter
anderem das oben vorgestellte. Bleibt mir nur noch, viel Spaß damit zu wünschen!
Georg Breitsprecher (Text und Bilder aus der Amiga Future#40 - überarbeitet und korrigiert von
David Jahn)
Eure Mithilfe ist gefragt!
Das Manipulieren von Speicheradressen ist bei einigen Spielen etwas umständlicher. Wer
beispielsweise bei Pirates seine Goldvorräte aufstocken will, muß nicht nur nach einem Langwort
suchen, sondern auch noch die letzte Ziffer weglassen. Wenn ihr mit dem vorgestellten oder einem
anderen Programm bei dem einen oder anderen Spiel Erfolg hattet, dann schreibt uns doch einfach die
notwendigen Einstellungen! Wir werden die Tipps gerne auf unseren Cheats-Seiten veröffentlichen.
|