Also Du kannst es Dir recht einfach machen, indem Du die Koaladatei einfach in Häppchen aufteilst. Lässt Die Bitmap bei $4000. Lädts das Screenram direkt nach $6000 - dann brauchste das auch nicht mehr kopieren und das Colram irgendwo hin wo Platz ist. Ich hoffe, es ist verständlich, was ich meine.
http://unusedino.de/ec64/technical/aay/c64/gfxkoa0.htm
Hallo Besucher, der Thread wurde 5,7k mal aufgerufen und enthält 32 Antworten
letzter Beitrag von TheRyk am
VIC-Bank umschalten.
- feuertonne
- Erledigt
-
-
Ich würde das Koala nach $6000 legen und von da aus nach VIC-Bank 1 kopieren
Edit: Der Tip von Spider ist auch sehr zu empfehlen, spart 'ne Menge Speicher. -
Heieiei... Hmh. Ich verstehe das Problem... Erstmal Danke für die vielen Ratschläge. Aber denkt daran, dass Ihr mit einem Assembler-Super-N00b redet, da fällt der Groschen ldieder nur pfennigweise...
Wie das mit dem Koala-Zerlegen geht, kann ich nur erahnen, auch wenn mir grundsätzlich die Speicheraufteilung eines Koalas klar ist. Da bräuchte ich wirklich konkrete Hilfe.
Und wenn man es einfach nach $6000 lädt (wo es ja eigentlich hingehört), brauche ich keine Copy-Loop mehr? Das Farbram weiß auch Bescheid? Ich muss nur noch nach Bank 1? Was muss man noch mit $D018 machen? Nix? Oder einfach #$18?
-
Heieiei... Hmh. Ich verstehe das Problem... Erstmal Danke für die vielen Ratschläge. Aber denkt daran, dass Ihr mit einem Assembler-Super-N00b redet, da fällt der Groschen ldieder nur pfennigweise...
Wie das mit dem Koala-Zerlegen geht, kann ich nur erahnen, auch wenn mir grundsätzlich die Speicheraufteilung eines Koalas klar ist. Da bräuchte ich wirklich konkrete Hilfe.
Und wenn man es einfach nach $6000 lädt (wo es ja eigentlich hingehört), brauche ich keine Copy-Loop mehr? Das Farbram weiß auch Bescheid? Ich muss nur noch nach Bank 1? Was muss man noch mit $D018 machen? Nix? Oder einfach #$18?
HÄ? *kratzamkopf*
Also nochmal langsam:
1.) welche Bank willst Du nutzen?
2.) wenn Du Probleme hast das Koala korrekt zu zerschnibbeln oder Dir einfach nicht so sicher bist, häng es eben an, dann zerschnibbel ich es Dir.
3.) Copyloop brauchst Du eben dann nicht, wenn Du das Screenram aus der Koaladatei direkt an die Speicheradresse lädst, an der Du das Screenram haben willst.
EDIT: Copyloop für Colorram brauchste natürlich dann immer noch. -
Hehe, sorry, ich weiß, ich nerve, aber ich bin verwirrt.
1.) Ich dachte eigentlich an Bank #$02 (war nur durch Feuertonnes Tipp wieder bei 1 gelandet.)
2.) Koala hänge ich nochmal dran. Dass Du es buchstäblich in 2 Files zersägen wolltest, war mir nicht klar, leuchtet aber jetzt ein. Wenn Du mir noch mal'n Tipp gibst, wie man das macht (Monitor?), dann mach ich das auch gern selbst.
3.) Hat sich nach Verstehen von 2.) wohl erledigt.
Vielleicht bräuchte ich auch noch einmal einen Arschtritt in Sachen $D018, was ich mir da am besten nochmal anschauen sollte, um in Zukunft weniger dumm zu fragen...
-
2.) Koala hänge ich nochmal dran. Dass Du es buchstäblich in 2 Files zersägen wolltest, war mir nicht klar, leuchtet aber jetzt ein. Wenn Du mir noch mal'n Tipp gibst, wie man das macht (Monitor?), dann mach ich das auch gern selbst.
ungefähr so (je nach Syntax des Monitors)
Die Datei "BITMAP" bindest Du dann in Dein Programm wie gehabt bei Adresse $4000 ein.
Die Datei "SCREEN" bei $6000
Die Datei "COLRAM" wo Du möchtest. Ich empfehle $6400, dann bleiben Dir die Spritepointer erhalten.Bezüglich $d018 guck doch nochmal hier:
http://codebase64.org/doku.php…e:vicii_memory_organizingIn meinem Beispiel ging ich jetzt davon aus, dass der Wert #$80 drin ist.
-
Hehe, überhaupt kein Problem.
Ich schick Dir mal was per PN, vielleicht hilft Dir das etwas.
(Arschtritte gibts nicht öffentlich) -
Sooo.
Ich habe das Koala nach Spiders Anweisungen zerhackt.
Da ich es mit dem Action Replay wohl "syntaktisch" nicht hinbekommen habe,
bin ich in den doofen VICE-Monitor gegangen:
Es kam etwas nach reiner Blockzahl Plausibles heraus:
32 Bitmap
4 Screen
4 Colram
-------------------------------------------
40 Blocks hat ein Koala, HurraIch will ja in folgende VIC-Bank (Zitate von Codebase)
Richtig? Also habe ich das mal auch genauso spießig eingegebe, damit zwischen 0 bis 3 bzw. 1 bis 4 gar nicht erst wieder dezimale Verwirrung aufkommt.Sooo. In $D018 muss doch wohl bei Ziel $6000 für Screen eine $#8 in den ersten Teil, gell? Zweiter Teil soll jetzt mal nicht interessieren, also lassen wir #$80.
Bis auf Farbram $D800 ff. sollte ich mir ja das Herumkopiere jetzt sparen können.
Also folgenden Code mit den von Spider empfohlenen Lade-Werten.Code- !to "beispiel.prg"
- *= $4000
- !bin "bitmap.prg",,2
- *= $6000
- !bin "screen.prg",,2
- *= $6400
- !bin "colram.prg",,2
- *= $1000
- tax
- sei
- lda #$00
- sta $d020
- sta $d021
- .copyloop:
- lda $6400,x ; colour RAM
- sta $d800,x
- lda $6500,x
- sta $d900,x
- lda $6600,x
- sta $da00,x
- lda $6700,x
- sta $db00,x
- dex
- bne .copyloop
- lda $DD00 ; spießiger bankswitch
- and #%11111100
- ora #%00000010 ;<- "desired VIC bank value", vgl. Codebase
- sta $DD00
- lda #$3b ; bitmap mode
- ldx #$18 ; multi-colour mode
- ldy #$80 ; screen $6000, bitmap $4000
- sta $d011
- stx $d016
- sty $d018
- .mainloop:
- jmp .mainloop
F6 wie "Feuer" bei Relaunch gedrückt und erwartungsfroh "SYS 4096" bei VICE eingegeben.
NARF! Wo ist der Fehler... Sieht irgendwie nach falscher Bank aus, irgendwie aber auch ziemlich leer...
Vielleicht ist mit Vice was schiefgegangen? <-- EDIT: Wenn man sich die Files (siehe unten) anschaut, sehen die ziemlich leer aus...
Vielleicht habe ich doch noch Mist im Code? -
Geil, genau das hier war's
Vielleicht ist mit Vice was schiefgegangen? <-- EDIT: Wenn man sich die Files (siehe unten) anschaut, sehen die ziemlich leer aus...
Und zwar habe ich vor dem Sprung in den Monitor in Basic mit komma 8 geladen... (beknackt)
komma 8 komma 1 war die Lösung.
Schön, wenn's mal so einfach ist.Der Code war also okay und ich habe dank Euch wieder was gelernt!
Besten Dank!
-
damit zwischen 0 bis 3 bzw. 1 bis 4 gar nicht erst wieder dezimale Verwirrung aufkommt.
Und falls man dochmal was rechnen muss: ich empfehle beim coden immer gcalctool bzw. calc.exe geöffnet zu lassen.
-
Oder den eingebauten Hex-Dez-Bin-Konverter von Relaunch
-
Hallo Leute!
Also der Thread (Fred) ist wirklich interessant!
Werde ihn aufmerksam mitverfolgen! -
"Aus gegebenem Anlass" ergänze ich hier mal, dass man natürlich "Spiders" (also die Koala-Standard-)END-Werte für Bitmap, Screen und Farben auch beim Splitten reduzieren kann, wenn man ohnehin auf einem Teil des Screens Scrollen will. Spart von Vornherein Speicher (warum sollte man was in den Speicher klatschen, was man nicht braucht/nicht sehen will/gleich wieder überschreibt) und Extra-Abknipsen des Bildes im Assembler-Programm.
Wieviel man abschneidet, um keinen Müll im Scrolltext zu haben, hängt wohl vom Scroller, dem Bild und weiteren Faktoren ab. Ich habe z.B. für 1X1-Scroller am unteren Screenrand mit folgenden Werten ganz gute Erfahrungen gemacht:
7a40
8288
8671
Nur als Beispiel gedacht, experimentieren darf jeder selbst.PS: Wenn der Scroll oben ist, müssen natürlich die Anfangswerte und nicht die Endwerte modifiziert werden