Seite 1 von 1
Highscore
Verfasst: 01.05.2022 21:50
von Dr. Irata
Ich habe mal eine Frage an die Profis hier... wie mache ich einen High Score? Also einer, der auch bleibt... das müsste ich ja in den Code bzw. Diskette zurückschreiben...
Grüße
Peter
Re: Highscore
Verfasst: 02.05.2022 07:15
von Sleeπ
Ich würde bei Disks/ATRs eine Datei anlegen, in denen der Highscore (und ggf. zusätzliche Informationen) abgelegt wird. Diese habe ich dann bei Spielstart geladen und bei einer Änderung neu gespeichert.
Das habe ich bei Turbo-Basic so gemacht; sollte bei Assembler analog gehen.
Von (Turbo-)BASIC aus gibt es auch die Befehle NOTE und POINT, mit denen man direkt auf Bereiche der Disk zugreifen kann. Das habe ich aber bis Dato nicht verwendet; ich habe eine "normale" Datei angelegt.
Bei Modulen dürfte es etwas komplizieter sein.
Soweit ich weiss kann man dort immer nur komplette Speicherblöcke löschen, d.h. um einen Score zu überschreiben. müßte man einen leeren Speicherblock haben, den man dann löschen und die neue Score speichern kann.
Re: Highscore
Verfasst: 02.05.2022 08:53
von MichaG
Sleeπ hat geschrieben: ↑02.05.2022 07:15
Bei Modulen dürfte es etwas komplizieter sein.
Soweit ich weiss kann man dort immer nur komplette Speicherblöcke löschen, d.h. um einen Score zu überschreiben. müßte man einen leeren Speicherblock haben, den man dann löschen und die neue Score speichern kann.
Da kenne ich nur Flob, wo sowas gemacht wird. Ich habe das originale Spiel auf Cartridge, das speichert die erreichten Ziele. Wenn ich aber das Spiel über The!Cart starte (auch wenn ich mit Shift-Enter starte) werden die Spielstände nicht gespeichert...
Gibt es noch mehr Beispiele?
Witzig wäre auch ein Abspeichern über FujiNet auf einem entsprechendem Server. Da hätte man gleicht eine weltweiter Highscore-Liste

Re: Highscore
Verfasst: 02.05.2022 09:12
von Kveldulfur
Hallo Peter!
Im "Das ATARI Profibuch", welches Du vom ABBUC herunterladen kannst, werden die CIO/SIO-Befehle beschrieben, wie man eine Datei auf einer Diskette öffnen kann und lesen. Sicherlich auch schreiben. Leider sind keine Programmbeispiele bei. Ich selbst habe das bis jetzt noch nicht ausprobiert.
Ein weltweiter Highscore wäre sicherlich nett, aber wer garantiert, dass dann dort nicht einer "nachgeholfen" hat?
Habe gestern PubG gespielt und von 3 Spielen waren bei einem die Gegner zum Schluss wieder überaus "allwissend".
Grüße
Janko
Re: Highscore
Verfasst: 02.05.2022 10:13
von Dr. Irata
Hallo Ihr Beiden,
das Profibuch habe ich und auch tatsächlich mal reingeschaut bei CIO/SIO ... aber wie du sagst, da muss man sich erst einmal reinfuchsen für Assembler!
Wenn ich das noch vor dem 31.7. schaffe, dann gut, eher aber was hier mal fürs Forum und ein nächstes Projekt!
Mit Sicherheit haben wir hier aber Profis, die das schon längst programmiert haben

Re: Highscore
Verfasst: 02.05.2022 11:12
von DjayBee
Für (evtl. nur fast) alle Macroassembler gibt es fertige makropacks, die den Zugriff auf CIO fast so einfach machen, wie in BASIC.
So sieht das z.B. in MADS aus:
Code: Alles auswählen
open #$10,#8,#dateiname
read #$10,#$B,#txtbuf,#txtbufend-txtbuf ; heißt zwar read, schreibt aber wegen Open mit #8 und dem Befehl $B ;)
close #$10
; insert libraries
.link '..\lib\io\io_lib.xex'
Ich hab das schon ewig in meinen Sources drin und bin mir deshalb nicht mehr ganz sicher. Aber ich meine, dass die Libs direkt mit MADS mitkommen und nur einmalig assembliert werden müssen, damit du das XEX erhältst.
Im Quellcode der Lib steht auch, wie sie benutzt wird.
Re: Highscore
Verfasst: 02.05.2022 14:57
von Mathy
.
Hallo Janko
Kveldulfur hat geschrieben: ↑02.05.2022 09:12
Ein weltweiter Highscore wäre sicherlich nett, aber wer garantiert, dass dann dort nicht einer "nachgeholfen" hat?
Man könnte die Highscore irgendwie verschlüsseln.
Tschüß
Mathy
Re: Highscore
Verfasst: 02.05.2022 15:11
von DjayBee