Erschienen in 64'er Magazin, Ausgabe unbekannt · Originaldatei: SPRIKILL.TXT
Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.
Der Sprite-Killer
Brechen Sie bei Ihrem Lieblingsspiel alle Rekorde oder erweitern Sie jedes beliebige Programm um eine Pause-Funktion mit diesem Super-Utility für den C 64.
Nikolaus M. Heusler
Computerspiele sind ein aufregendes Abenteuer: Die bösen Ungetümer überlisten, nach geheimen Schätzen suchen, mit viel Geschick und schnellen Reaktionen immer auf der Fährte bleiben. Wollen Sie endlich auch einmal die höheren Plätze der Highscore-Liste erreichen oder in neue Level vorstoßen, die Sie andernfalls vielleicht nie zu Gesicht bekommen hätten, versuchen Sie's mit dem »Sprite-Killer«.
Mit diesem Utility können Sie jedes beliebige Sprite abschalten, aus welchem Grund auch immer. Man kann es auch dazu verwenden, ein Programm anzuhalten, das sonst gar keine Pause-Funktion eingebaut hat.
Obwohl der Sprite-Killer aus Gründen des Komforts und der Geschwindigkeit vollständig in stark optimierter Maschinensprache verfaßt wurde, benötigen Sie zur Anwendung keinerlei Assemblerkenntnisse: Das Programm kann wie normales Basic geladen, gestartet und ggf. kopiert werden. Nach dem Start mit RUN kopiert sich das Programm an eine Stelle im Speicher, wo es vor den meisten anderen Programmen geschützt ist. Hier aktiviert es sich selbst, wobei eine Einschaltmeldung ausgegeben wird (»RESTORE-Taste«). Laden und starten Sie jetzt wie gewohnt Ihr Spiel. Soll ein Sprite abgeschaltet werden, betätigen Sie die RESTORE-Taste, ohne gleichzeitig den Feuerknopf oder eine andere Taste zu drücken. Das Sprite-Killer-Menü erscheint: Alle momentan aktiven Sprites werden in einheitlicher Größe in einer Reihe angezeigt, darunter stehen Kennziffern von Null bis Sieben. Diese Nummern entsprechen den acht Hardware-Sprites Ihres C 64.
Um ein Sprite abzuschalten, tippen Sie einfach die zugehörige Kennziffer auf der Tastatur. Das Sprite verschwindet vom Bildschirm. Löschen Sie so viele Sprites, wie Sie möchten. Doch vorsicht: Ein einmal gekilltes Sprite kann nicht mehr wiederbelebt werden! Es empfiehlt sich also beispielsweise nicht, Extrawaffen-Sprites oder Schätze verschwinden zu lassen. Sind Sie fertig, kehren Sie mit der RETURN-Taste wieder in das Spiel zurück. Stellen Sie sich das einmal vor: Jetzt sammeln Sie in einem Irrgarten-Spiel alle Punkte, ohne von irgendwelchen Monstern belästigt zu werden!
Der Sprite-Killer kann auch als eine Pause-Funktion verwendet werden, sogar wenn das zu stoppende Programm gar keine Sprites enthält. Um ein Programm anzuhalten, drücken Sie auf RESTORE um das Sprite-Killer-Menü einzublenden. Betätigen Sie SHIFT LOCK, anschließend die RETURN-Taste. Jetzt erscheint wieder der Bildschirm Ihres Programms, das jedoch stillsteht, bis Sie die SHIFT-LOCK-Taste wieder entriegeln.
Einige technische Hinweise: Der Sprite-Killer belegt das RAM von $CCE5 bis $CFFF, weit weg von den meisten Programmen. Auch das RAM unter dem I/O-Block wird als Zwischenspeicher genutzt. Das Utility schaltet sich über drei Systemvektoren in das Kernal und den Basic-Interpreter. Die besten Erfolge wird man sicherlich mit in Basic programmierten Spielen haben, die das Register 53278 ($D01E, Sprite-Sprite-Kollision) auslesen, um zu prüfen, ob und ggf. welche Sprites zusammengestoßen sind. Es kann jedoch Probleme mit Programmen geben, die den von Sprite-Killer belegten Speicherbereich für sich beanspruchen, oder die Vektoren für Zeichenausgabe, Direktmodus oder NMI verbiegen.
Genaue Auskunft über die Funktionsweise gibt der ausführlich kommentierte Quelltext.