C 64
Spiel

Spiele-Trainer: Spritekill

»Game Over«. Wieder einmal haben die Gegner gesiegt und Sie erst die zweite von zwanzig Spielstufen erlebt. Die Lösung: Entfernen Sie doch einfach die Gegner aus dem Spiel. Dabei hilft Ihnen das Programm »Spritekill«.

0ft vergeht einem der Spaß an manchen Spielen, wenn man 20 bis 30 mal an derselben Stelle wegen dem gleichen, gemeinen Gegner abgeschossen wurde, oder wenn man wieder mal diese blöde Eisenstange berührt hat und von Tausenden von Volt angeschmort wurde.

Doch das war einmal! Denn mit »Spritekill« können Sie lässig jeden unerwünschten Schuß, jeden noch so gemeinen Gegner auslöschen. Im Spiel herrscht dann ein wenig Ruhe, die dem Spieler zu längerem Bildschirmleben verhilft.

»Spritekill« arbeitet etwas anders als die üblichen Spiele-Trainer. Diese entfernen meistens alle Sprite-Kollisionsabfragen aus dem Spielprogramm mit dem Erfolg, daß man keine Bonuspunkte erhält, weil man auch nicht mit den brauchbaren Gegenständen kollidieren kann. Im schlimmsten Falle wird das Ziel, in den nächsten Level zu kommen, nicht näher gebracht, sondern völlig unmöglich gemacht, weil man gar nicht die notwendigen Punkte oder Gegenstände zusammenbekommt. Ganz im Gegensatz dazu arbeitet »Spritekill«. Hier gehen Sie das gesamte Spielprogramm durch und entfernen ganz einfach die Ihnen unliebsamen Sprites. Denn mit etwas, was Sie auf dem Bildschirm nicht sehen können, können Sie auch nicht kollidieren! Die Bonusgegenstände und die eigene Figur bleiben selbstverständlich im Spiel drin, vielleicht noch ein paar einfache Gegner, damit es nicht zu langweilig wird.

Obwohl Spritekill ein recht kurzes Maschinenprogramm ist, müssen wir einen DATA-Lader (Listing 1) und kein MSE-Listing veröffentlichen. Dafür ermöglicht es der DATA-Lader, »Spritekill« in beliebige Speicherbereiche zu legen. Denn meistens wird man das sehr kurze Programm im Bildschirmspeicher unterbringen wollen, was die Verwendung des MSEs verbietet.

Alle Funktionen von »Spritekill« werden mit insgesamt 15 Tasten gesteuert, die alle Autorepeat haben. Dadurch fällt es leicht, auch längere Spritefolgen zu löschen.

Zur visuellen Kontrolle hat man:

zur Verfügung (siehe auch Bild 1).

Bild 1. Das sehen Sie bei Spritekill auf dem Bildschirm

Sämtliche Befehle sind in der Tabelle aufgelistet.

Taste Funktion
+ Nächster Spriteblock
- Vorheriger Spriteblock
16 Sprites vor
16 Sprites zurück
B Weiterschalten des 16-KByte-Bereichs
M Umschalten HiRes/Multi
X Umschalten zwischen normaler/expandierter X-Darstellung
Y Umschalten zwischen normaler/expandierter Y-Darstellung
SPC Löschen des links dargestellten Spritebereichs
C Kopieren des links dargestellten Sprites in den Puffer
R Kopieren des rechten Spriteblocks in den linken Spriteblock
Crsr rechts Erhöhen der Startadresse des links dargestellten Sprites
Crsr runter Erniedrigen der Startadr. des links dargestellten Sprites
F7 Zurücksetzen der Einzelbyteverschiebungen
Run/Stop Verlassen des Programms
Tabelle der Tastenfunktionen

Um mit »Spritekill« möglichst effektiv und schnell zu arbeiten, hat sich folgende Strategie durchgesetzt:

Manche Spiele haben ihre Sprites vor dem Programmstart an anderen Speicheradressen liegen, wie beim späteren Ablauf. Deswegen kann man mit den Cursor-Tasten den Speicher byteweise durchsuchen. Sollte man also nur ein halbes Sprite oder ein verschobenes Sprite finden, muß man es mit den Cursor-Tasten vor dem Löschen voll sichtbar machen.

Wie gesagt, ist es am praktischsten, wenn »Sprite-Kill« im Bildschirmspeicher steht, weil dieser von den meisten Spielen während des Ladens in Ruhe gelassen wird. Wer eine solche Version auf Diskette erzeugen will, sollte im DATA-Lader als Startadresse »1400« angeben. Will man dann ein Spiel von den Gegner befreien, sollte man folgendermaßen vorgehen: Spiel laden, dann »CTRL-7« zur Umschaltung auf Dunkelblau (Hintergrundfarbe) drücken, danach »SHIFT-CLR/HOME«. Jetzt mit »CTRL-2« den Cursor wieder sichtbar machen, Spritekill laden und den SYS-Befehl zum Start (1400) vorgeben. Nun können Sie vorgehen, wie oben beschrieben.

Sollte ein Programm mehrteilig sein und einen Autostart haben, wird es kritisch. Sie müssen dann mit einem Monitor die einzelnen Programmteile laden, mit Spritekill durchsuchen und wieder speichern. Bei Original-Disketten sollte man das sicherheitshalber unterlassen, da man durch Speichern auf dem Original meistens den Kopierschutz zerstört und somit das Spiel nicht mehr laden kann.

(Garry Glendown/bs)
0 rem *****************
1 rem * sprite - kill *
2 rem *****************
3 rem *  v o n :      *
4 rem *****************
5 rem *  g. glendown  *
6 rem *****************
7 rem * tel.:         *
8 rem * (06621)/73483 *
9 rem *****************
10 print"{clr}{wht}spritekill":poke53281,0:poke53280,0:print"von garry glendown"
20 input"startadresse";sa$:sa=val(sa$)
21 ifsa>40429andsa<49152orsa>52716orsa<1024thenprint"ungueltig!":goto20
29 print"endadresse:"sa+532:input"ok? j/n";a$:ifa$<>"j"then20
30 ifsa<6000thenfl=1
35 iffl=1then100
40 input"abspeichern j/n";a$:ifa$="j"thenfl=1
50 fort=satosa+531:reada:poket,a:ch=ch+a:next:ifch<>65921thenprint"fehler!"ch:end
51 ch=0
60 readco:ch=ch+co:ifco=-1then200
70 b=peek(sa+co)+256*peek(sa+co+1):b=b-28672+sa:h=int(b/256):l=b-h*256
80 pokesa+co,l:pokesa+co+1,h:goto60
100 fort=49152to49683:reada:poket,a:ch=ch+a:next:ifch<>65921thenprint"fehler!"ch:end
101 ch=0
110 readco:ch=ch+co:ifco=-1then140
120 b=peek(49152+co)+256*peek(49153+co):b=b-28672+sa:h=int(b/256):l=b-h*256
130 poke49152+co,l:poke49153+co,h:goto110
140 ifch<>22866thenprint"fehler!":end
141 input"filename";f$:open1,8,2,f$+",p,w"
150 h=int(sa/256):l=sa-h*256:print#1,chr$(l)chr$(h);
160 fort=49152to49683:print#1,chr$(peek(t));:next:close1:open1,8,15
170 input#1,a,b$,c,d:printa","b$","c","d:end
200 ifch<>22866thenprint"fehler!"ch:end
201 iffl=1then300
210 print"programm im speicher von"sa" bis"sa+531
220 print"programmstart mit {rvon} sys";sa" {rvof}"
230 end
300 h=int(sa/256):l=sa-h*256
310 input"filename ";f$:open1,8,2,f$+",p,w":print#1,chr$(l)chr$(h);
320 fort=satosa+531:print#1,chr$(peek(t));:next:close1:open1,8,15:input#1,a,b$,c,d:close1
330 printa","b$","c","d:ifa=0then210
340 input"nochmal versuchen j/n";a$:ifa$<>"j"then210
350 open1,8,15,"s:"+f$:close:goto300
32000 data120,169,3,162,0,134,255,134,248,141,21,208,141,23,208,141,29,208,169
32001 data100,141,0,208,141,3,208,162,200,142,2,208,206,40,208,141,1,208,162
32002 data13,142,248,7,232,142,249,7,32,60,113,32,133,112,169,19,32,210,255,165
32003 data255,32,102,112,165,254,32,102,112,169,32,32,210,255,32,133,112,165
32004 data253,32,102,112,165,252,32,102,112,32,164,112,76,169,113,169,19,32,210
32005 data255,169,36,32,210,255,96,72,74,74,74,74,201,10,48,2,105,6,105,48,32
32006 data210,255,104,41,15,201,10,48,2,105,6,105,48,32,210,255,96,165,254,41
32007 data3,170,189,16,114,24,101,248,133,252,165,254,74,74,133,253,165,255,170
32008 data189,16,114,24,101,253,133,253,96,32,133,112,160,63,120,169,53,133,1
32009 data177,252,145,249,136,16,249,169,55,133,1,88,96,76,129,255,165,254,24
32010 data105,16,133,254,176,67,76,49,112,165,254,56,233,16,133,254,144,73,76
32011 data49,112,230,254,240,48,76,49,112,165,254,56,233,1,133,254,144,54,76
32012 data49,112,173,28,208,73,3,141,28,208,76,49,112,173,29,208,73,3,141,29
32013 data208,76,49,112,173,23,208,73,3,141,23,208,76,49,112,230,255,165,255
32014 data201,4,16,3,76,49,112,169,0,133,255,76,49,112,198,255,48,3,76,49,112
32015 data169,3,133,255,76,49,112,32,133,112,32,78,113,160,63,169,0,136,145,252
32016 data208,251,76,214,112,162,64,160,3,134,249,132,250,96,162,128,160,3,134
32017 data249,132,250,96,32,69,113,32,164,112,32,60,113,96,32,133,112,32,69,113
32018 data169,249,162,252,141,175,112,142,177,112,32,164,112,32,133,112,169,252
32019 data162,249,141,175,112,142,177,112,32,60,113,76,49,112,230,248,165,248
32020 data201,63,208,4,169,0,133,248,76,49,112,198,248,165,248,201,255,208,4
32021 data169,62,133,248,76,49,112,169,0,133,248,76,49,112,32,78,113,76,49,112
32022 data160,0,162,208,165,203,200,208,6,232,208,3,76,188,113,197,251,240,241
32023 data133,251,160,15,185,226,113,197,251,240,6,136,16,246,76,169,113,136
32024 data152,10,168,185,242,113,141,222,113,185,243,113,141,223,113,76,221,113
32025 data76,49,112,40,43,54,57,36,23,25,28,60,3,2,7,17,63,20,214,112,221,112
32026 data190,112,202,112,233,112,244,112,255,112,10,113,42,113,156,113,126,113
32027 data141,113,88,113,187,112,163,113,0,64,128,192
60000 data47,50,60,65,73,78,83,86,89,139,156,165,200,212,219,231,242,253,264
60010 data275,282,289,296,299,302,314,335,338,341,345,348,355,358,361,364
60020 data371,374,377,380,395,410,417,420,423,438,449,459,466,469,472,475,478
60030 data498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,-1
Listing 1. Der DATA-Lader zu »Spritekill«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →