deimos |
20 January 2022 17:12 |
Split screen with a copper list - changing all the colours in time
I want to do a split screen using the copper, changing the 4 bitplane pointers and the colour registers at the split point.
It looks to me like I don't have time to do that, by the time I've set all 16 colours I'm well into the first row of the lower half of the screen.
Is this a limitation I have to work with, or am I doing it wrong?
I can imagine at least two ways to work around it, either a black line built in, or choosing the order that I change the colours smarterly, or maybe even changing less colours, or changing half of them on the second line so my first line can have something other than blackness.
Hints?
Code:
L000C006: $0005b3f8: $008e,$2c81; DIWSTRT = $2c81
L000C010: $0005b3fc: $0090,$2cc1; DIWSTOP = $2cc1
L000C014: $0005b400: $0092,$0038; DDFSTRT = $0038
L000C018: $0005b404: $0094,$00d0; DDFSTOP = $00d0
L000C022: $0005b408: $0100,$4200; BPLCON0 = $4200
L000C026: $0005b40c: $0102,$0000; BPLCON1 = $0000
L000C030: $0005b410: $0104,$0000; BPLCON2 = $0000
L000C034: $0005b414: $0108,$0078; BPL1MOD = $0078
L000C038: $0005b418: $010a,$0078; BPL2MOD = $0078
L000C042: $0005b41c: $00e0,$0001; BPL1PTH = $0001
L000C046: $0005b420: $00e2,$f058; BPL1PTL = $f058
L000C050: $0005b424: $00e4,$0001; BPL2PTH = $0001
L000C054: $0005b428: $00e6,$f080; BPL2PTL = $f080
L000C058: $0005b42c: $00e8,$0001; BPL3PTH = $0001
L000C062: $0005b430: $00ea,$f0a8; BPL3PTL = $f0a8
L000C066: $0005b434: $00ec,$0001; BPL4PTH = $0001
L000C070: $0005b438: $00ee,$f0d0; BPL4PTL = $f0d0
L000C074: $0005b43c: $0180,$0000; COLOR00 = $0000
L000C078: $0005b440: $0182,$0fff; COLOR01 = $0fff
L000C082: $0005b444: $0184,$0f00; COLOR02 = $0f00
L000C086: $0005b448: $0186,$0f70; COLOR03 = $0f70
L000C090: $0005b44c: $0188,$0ff0; COLOR04 = $0ff0
L000C094: $0005b450: $018a,$00f0; COLOR05 = $00f0
L000C098: $0005b454: $018c,$000f; COLOR06 = $000f
L000C102: $0005b458: $018e,$0f0f; COLOR07 = $0f0f
L000C106: $0005b45c: $0190,$0000; COLOR08 = $0000
L000C110: $0005b460: $0192,$0000; COLOR09 = $0000
L000C114: $0005b464: $0194,$0000; COLOR10 = $0000
L000C118: $0005b468: $0196,$0000; COLOR11 = $0000
L000C122: $0005b46c: $0198,$0000; COLOR12 = $0000
L000C126: $0005b470: $019a,$0000; COLOR13 = $0000
L000C130: $0005b474: $019c,$0000; COLOR14 = $0000
L000C134: $0005b478: $019e,$0000; COLOR15 = $0000
L000C138: $0005b47c: $bcdf,$fffe; Wait for vpos >= 188 and hpos >= 222
L188C226: $0005b480: $00e0,$0005; BPL1PTH = $0005
L189C004: $0005b484: $00e2,$1058; BPL1PTL = $1058
L189C008: $0005b488: $00e4,$0005; BPL2PTH = $0005
L189C012: $0005b48c: $00e6,$1080; BPL2PTL = $1080
L189C016: $0005b490: $00e8,$0005; BPL3PTH = $0005
L189C020: $0005b494: $00ea,$10a8; BPL3PTL = $10a8
L189C024: $0005b498: $00ec,$0005; BPL4PTH = $0005
L189C028: $0005b49c: $00ee,$10d0; BPL4PTL = $10d0
L189C032: $0005b4a0: $0180,$0f00; COLOR00 = $0f00
L189C036: $0005b4a4: $0182,$0fff; COLOR01 = $0fff
L189C040: $0005b4a8: $0184,$0f00; COLOR02 = $0f00
L189C044: $0005b4ac: $0186,$0f70; COLOR03 = $0f70
L189C048: $0005b4b0: $0188,$0ff0; COLOR04 = $0ff0
L189C052: $0005b4b4: $018a,$00f0; COLOR05 = $00f0
L189C056: $0005b4b8: $018c,$000f; COLOR06 = $000f
L189C060: $0005b4bc: $018e,$0f0f; COLOR07 = $0f0f
L189C064: $0005b4c0: $0190,$0000; COLOR08 = $0000
L189C068: $0005b4c4: $0192,$0000; COLOR09 = $0000
L189C072: $0005b4c8: $0194,$0000; COLOR10 = $0000
L189C076: $0005b4cc: $0196,$0000; COLOR11 = $0000
L189C080: $0005b4d0: $0198,$0000; COLOR12 = $0000
L189C084: $0005b4d4: $019a,$0000; COLOR13 = $0000
L189C088: $0005b4d8: $019c,$0000; COLOR14 = $0000
L189C092: $0005b4dc: $019e,$0000; COLOR15 = $0000
L189C096: $0005b4e0: $0180,$0fff; COLOR00 = $0fff; <-- * lets me see when I've finished *
L189C100: $0005b4e4: $2cc1,$fffe; Wait for vpos >= 44 and hpos >= 192
L189C108: $0005b4e8: $009c,$8010; INTREQ = $8010
L189C112: $0005b4ec: $ffff,$fffe; End of CopperList
|