Momentan stehe ich vor dem Problem, einigermaßen elegant ein einzelnes 2x2 Tile auf den Bildschirm zu bringen
Ich verbrauche irgendwie jede menge Speicher für vier Tabellen jeweils (Hi+Low Screen+Colormem), sowie danach noch einiges an ZP Addition.
Bei meinem (2x2) Screen gibt es 19 Spalten in 11 Zeilen (der erste und letzte Char bleibt immer leer, angefangen wird ab Zeile 2).
Das Rendern des gesamten Screens braucht als (halber) Speedcode nur m.M.n. schlanke ~734 kb (Syntax ist C64 Studio)
Code
- render_complete:
- lda #19
- sta counter
- -
- !for ROW = 0 to 11
- ldy counter
- lda level_cache+(ROW*19),y
- tax
- lda counter
- asl ; multiply by 2
- tay
- lda TILE_CHARS_0_0,x
- sta screen+39+(ROW*80),y
- lda TILE_CHARS_1_0,x
- sta screen+40+(ROW*80),y
- lda TILE_CHARS_0_1,x
- sta screen+79+(ROW*80),y
- lda TILE_CHARS_1_1,x
- sta screen+80+(ROW*80),y
- lda TILE_COLORS_0_0,x
- sta $d800+39+(ROW*80),y
- lda TILE_COLORS_1_0,x
- sta $d800+40+(ROW*80),y
- lda TILE_COLORS_0_1,x
- sta $d800+79+(ROW*80),y
- lda TILE_COLORS_1_1,x
- sta $d800+80+(ROW*80),y
- !end
- dec counter
- beq +
- jmp -
- +
- rts
Hat da jemand einen Tipp/Rant oder Beispielsource, wie man das schöner/schneller/kleiner machen kann?