Re(2): c64 Sprites...
Geizhals » Forum » Programmierung » c64 Sprites... (18 Beiträge, 928 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: c64 Sprites...  (mjy@geizhals.at am 09.01.2012, 23:11:48)
..
Re(2): c64 Sprites...
10.01.2012, 10:01:57
aber der Bereich ist doch eher "riskant" weil sehr niedrig im BASIC-RAM ...

Soweit ich mich erinnere, wächst der Basic-Code von unten nach oben - und Variablen von oben nach unten. Das bedeutet IMHO, dass ein niedriger Bereich eher nicht überschrieben werden sollte, solange ich keine neuen Zeilen einfüge.

Der Witz in dem Beispiel ist ja, dass ich gar keine Sprites definiere/poke, sondern das Sprite nur die zufälligen Daten an dem Ort anzeigen lasse. Mir geht es also noch nicht darum, die Sprites zu erzeugen, sondern sie nur zum Anzeigen zu verwenden. Wenn der VIC funktioniert, wie ich es mir denke, müsste das angezeigte Sprite nach Pokereien einfach anders aussehen... Und genauso, wenn die Daten zufällig verändert werden.

Warum ich das so möchte:
Ich schreibe gerade mit cc65 - gemischt C und Assembler.
Die Idee war nun, dass ich ein eigenes Segment definiere (Segmente sind bei CC65 einfach Bereiche für den Linker, die er unterschiedlich behandelt) - mit align=64.
Dort kommen die Sprite-Daten hin - mit
SPRITE1: .BYTE 0,255,...


Durch das Linken wird das Ding Bestandteil des Programms - ausgerichtet an eine durch 64 teilbare Adresse. Ich bräuchte sie daher nicht umverschieben, sondern könnte direkt die durch 64 geteilte Adresse in die nach 2040 schreiben.

Dieses Segment hatte ich als letztes in meinem Programm.

Einen Workaround habe ich inzwischen eh gefunden - ich lasse dieses Segment nun an eine frühere Stelle in das Programm linken. Meine Sprite-Daten starten dann ab $940, also 2368. Bis zum Wert 63 passt ja alles, was man nach 2040 schreibt. Das höchste Sprite ist bei diesem Ansatz also bei Position 4032. Ich kann also 27 Sprites so bequem definieren...

Unklar bleibt mir trotzdem, warum der VIC scheinbar nur 6bits für die Daten des Sprites verwendet. Ausprobiert habe ich alles am VICE-Emulator  - und der ist ja schon seeehr perfekt.





Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
.  Re: c64 Sprites...  (LCD am 11.01.2012, 17:45:11)
..  Re(2): c64 Sprites...  (kombipaket am 11.01.2012, 18:04:52)
...  Re(3): c64 Sprites...  (HITCHER am 11.01.2012, 18:28:43)
...  Re(3): c64 Sprites...  (SunnyHill am 12.01.2012, 07:56:20)
....  Re(4): c64 Sprites...  (kombipaket am 12.01.2012, 08:11:31)
.....  Re(5): c64 Sprites...  (HITCHER am 12.01.2012, 12:01:59)
......  Re(6): c64 Sprites...  (kombipaket am 12.01.2012, 12:15:36)
.....  Re(5): c64 Sprites...  (LCD am 12.01.2012, 13:33:51)
......  Re(6): c64 Sprites...  (kombipaket am 12.01.2012, 13:59:54)
.......  Re(7): c64 Sprites...  (LCD am 13.01.2012, 00:07:39)
........  Re(8): c64 Sprites...  (kombipaket am 13.01.2012, 07:23:11)
.........  Re(9): c64 Sprites...  (LCD am 13.01.2012, 22:29:10)
..........  Re(10): c64 Sprites...  (kombipaket am 13.01.2012, 23:55:13)
...........  Re(11): c64 Sprites...  (LCD am 15.01.2012, 00:02:19)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung