Highscoretabelle bei Dropzone


Highscoretabelle bei Dropzone

von PacMan » Fr 25. Sep 2009, 20:09
Hallo,

Mich würde mal interessieren wo im Programm diese Tabelle zu finden ist. Ich habe hier eine Version mit leerer Tabelle und eine Version mit 10.000 Punken. Beim HEX-Dump ist mir nichts aufgefallen und Assembler ist nicht mein Ding.

Grüße,
Steffen

Re: Highscoretabelle bei Dropzone

von Koche » Sa 26. Sep 2009, 14:26
Hallo Pacman,

Schnapp Dir mal die Version 2 aus dem atarionline.pl angebot

(http://www.atarionline.pl/arch/D/Dropzo ... 8v2%29.xex)

und setze im Emulator mal einen Breakpoint auf 3000 (hex). Dann hält er genau an der Stelle an, an der die Highscore mit den neuen Daten bestückt.

Code: Alles auswählen
3000: A0 08     LDY #$08        ; Schleife, um alle 8 (9???) Einträge zu "bestücken"
3002: A9 61     LDA #$61        ; Buchstabe "a"
3004: 99 35 06  STA $0635,Y     ; (x mal) setzen
3007: A9 64     LDA #$64        ; Buchstabe "d"
3009: 99 3E 06  STA $063E,Y
300C: A9 6D     LDA #$6D        ; Buchstabe "m"
300E: 99 47 06  STA $0647,Y
3011: A9 00     LDA #$00        ; !!!! Kombination "0"&"0"
3013: 99 11 06  STA $0611,Y     ; setzen
3016: 99 2C 06  STA $062C,Y     ; dito
3019: 99 23 06  STA $0623,Y     ; dito
301C: A9 01     LDA #$01        ; !!!! Kombination "0"&"1"
301E: 99 1A 06  STA $061A,Y     ; setzen ..... insg. 10,000
3021: 88        DEY
3022: 10 DE     BPL $3002       ; durchlaufe die Schleife solange, bis y negativ ist ..... also 9 mal, angezeigt werden aber nur 8 Einträge


Mit den Zahlen mußt Du etwas aufpassen. Wie Du gesehen hast, werden das High und das lo Nibble zur Speicherung je einer Stelle der Highscore herangezogen. Ein Wert "23" (!!!hex Angabe) lässt auf dem Bildschirm eine "2" (dez) und eine "3" (dez) erscheinen. !!! Bis auf die erste Stelle, die scheint Dropzone nur das low Nibble auszuwerten.

Ich hatte gestern auch die Adresse, an der der Transfer auf den Bildschirm stattfindet, finde jetzt aber den Zettel nicht. Findest Du mit einem guten Emu aber auch recht schnell selbst (mein Linux Emu (Monitor) unterstützt die Funktion jedoch leider nicht ;-( ) : Starte mal Dropzone und warte, bis die Highscore angezeigt wird. Dann gehe in den Monitor und lasse Dir die DisplayList anzeigen ("Befehl DLIST" ? im AtariWin ????). Du müsstest dann sehen, dass der anzuzeigende Bildschirm auf 0x728 beginnt und die anzuzeigende Highscore ab 0x778. Angenommen, Du arbeitest gerade mit der genannten Version 2, dann suche dir mal den Anfang des Namens oder die erste Highscore .... 0x 0786 (ADM) oder 0x078F (= 51 50 7E 50 50 50 = "10,000") und setzen einen breakpoint auf einen der beiden, der anspringt, sobald der Atari darauf zu schreiben versucht ...

Code: Alles auswählen
b write=786


glaube ich (oder so ähnlich) und warte dann, bis das Spiel erneut die komplette Highscore anzeigen möchte. Er stoppt, sobald er einen Wert auf diese Adresse schreiben möchte und Du kannst Dir mit "D" ansehen, was & wie er es macht.

Mal vom letzten Teil abgesehen müsstest Du damit nun die Stelle für Dein Vorhaben (kann mir schon denken was ;-) ) haben.

Viele Grüße
Alexander

Re: Highscoretabelle bei Dropzone

von PacMan » Sa 26. Sep 2009, 18:34
Hallo Alexander,

Prima ! Danke für die Info. Im Com-File habe ich es gefunden.
Jetzt habe ich noch ein ATR-File mit anderer Tabelle die ich noch
löschen will. Mal sehen wo es dort ist.

Grüße,
Steffen

Re: Highscoretabelle bei Dropzone

von Koche » Sa 26. Sep 2009, 18:43
Kein Problem ;-)


Das ATR würde ich ähnlich in die Mangel nehmen. Die Puinktedaten müssen auch hier auf Page 6 stehen ....
ein

Code: Alles auswählen
b write=635 OR write=63e OR write=647
..... usw.

müsste Dir die Stelle aufzeigen, an der die Highscore geändert wird.

Grüße
Alexander

Re: Highscoretabelle bei Dropzone

von PacMan » So 27. Sep 2009, 19:44
Prima alles gefunden. Danke für die Hilfe !