LSR #4 at least makes the code more readable so thanks a ton for that.
GPS is what it's for. I don't think it handles getting block coords, so that would mean I did it right!
On a related note:
I'm trying to implement a %next_map16() as per my asm request thread entry (dunno how I missed %get_map16() already existing when I requested them... :/)
; call %get_map16() to prep input. then call the following:
LDA $41C800,x ; Get Map16 Tile into A
STA $41C800,x ; Get Map16 Tile into A
; JML $00C0FB|!bank ;pulled from %change_map16(), I *know* it needs more before it.
;Just not understanding what yet, seeing something about layers?
Any quick suggestions on this to get me pointed in the right direction/solve this?
(Trying to next_map16 so that I don't have to have 16+ copies of the same block asm, the usual use case I guess).
Not even sure if $00C0FB works the way I think it does.
Thanks as always by the way Thomas! I've gotten a couple cool blocks made already thanks to your help!
(If there's a more streamlined way of doing it you can think of that would be welcome feedback too!)
If it's *super* involved I'll probably just cheat and call get16,INC,change16...
EDIT: ended up doing just that. Looked like understanding the layer code would only save me about 16 instructions afaik, which just wasn't worth the optimization effort. (and fixed table stretch...)