This is a stretch, and I know this one is probably wasting valuable kilobytes, but its really odd to have the ability to bload a palette in, then not have it work until the developer pokes the values back in from one memory area to another. I find myself doing it so much in games that I have a proc for it:
proc loadpal(addr,lutno)
lutaddr=$D000+(lutno*$400)
poke 1,1
for x=0 to 1023:?(lutaddr+x)=?(addr+x):next
endproc
Later in the process I have to do this to set the LUT on a bitmap:
proc bitmaplut(bitmapno,lutno)
if bitmapno>=0&bitmapno<3&lutno>=0&lutno<4
add$="53504,53512,53520"
value=val(itemget$(add$,bitmapno+1,","))
current=?(value)
poke value,(1|1<<lutno)
endif
endproc
I sort of understand the issue though with the $D000 space, but it seems like bload'ing to already precious space in SB then having to waste basic cycles to put it the correct $D000 register is an added complication that most folks learning SB won't get out of the gate.
Notes: Seems like we should have a command to do that for sure, however I don't know which costs less in terms of space. Having it IN SuperBasic or cut/copy/pasting those procs in for every game that needs it.
This is a stretch, and I know this one is probably wasting valuable kilobytes, but its really odd to have the ability to
bloada palette in, then not have it work until the developer pokes the values back in from one memory area to another. I find myself doing it so much in games that I have a proc for it:Later in the process I have to do this to set the LUT on a bitmap:
I sort of understand the issue though with the $D000 space, but it seems like bload'ing to already precious space in SB then having to waste basic cycles to put it the correct $D000 register is an added complication that most folks learning SB won't get out of the gate.
Notes: Seems like we should have a command to do that for sure, however I don't know which costs less in terms of space. Having it IN SuperBasic or cut/copy/pasting those procs in for every game that needs it.