Oh, this is awesome.
I thank you a lot. I will try this when my brain is a bit more unstuck. I'm currently also fighting with Quaternions (grrr, evil fuckers ).
Very interesting, I think I might figure it out with this. I'll give some feedback if I can.
BTW, in your code, I can't see any usage of $1ff6 to $1ff9, which is a bit confusing to me.
How's that?
I saw into your macros. They make sense, sure. But I don't get why you don't have to fiddle around with setting the banks with those particular registers.
€dit: Oh, I see, you're doing this on each bank with
SelectBank1 .byte $00 SelectBank2 .byte $00 SelectBank3 .byte $00 SelectBank4 .byte $00
But what I don't get, you never write any values into those bytes.
Or are you going back to bank 1 each time?