My deal is that I'm trying to split a 16 bit address into bytes, because my vram engine was originally 16 bit but I found out that it was faster to just use 8 bits and do twice the instructions when needed (using rep #$20, then sep #$20 is slower for less than what would be 2 16 bit instructions)
I have a table that lists the address of the start of the tile data for a frame:
Also, not related, but I just now realized that the 512 byte hioam buffer and the regular 32 byte hioam buffer can occupy the same space. I had thought about this when I was thinking of the possibility of using direct page on oam, and just having two different routines to access it all. Memory mapping is a total pain on the SNES. While it makes sense to have my object table be set for use in direct page in one routine, it may make more sense to have it be indexed by x or y in another. It would have been so nice if bank 00 were entirely data so you could have a setup where you can access 64KB of ram and 64KB of rom at the same time. I've thought about copying over data to ram not because it gets changed, but just so you can access it in the same bank. Bank $00 is probably going to be very crammed with animation (I'll probably say screw it and copy the above table into ram. Losing something like 16KB is barely a loss) and metasprite related data. (which if it is going to be in Bank $00 even just by itself, it's going to be a very tight fit.) I want my routines to be fast, but I also want them to be able to access a lot of data, and these often conflict due to how the memory mapping is.
I have a table that lists the address of the start of the tile data for a frame:
Code:
AnimationFrameLoWordTable:
.byte .loword(Test1Tiles),.loword(Test2Tiles)
.byte .loword(Test1Tiles),.loword(Test2Tiles)
Also, not related, but I just now realized that the 512 byte hioam buffer and the regular 32 byte hioam buffer can occupy the same space. I had thought about this when I was thinking of the possibility of using direct page on oam, and just having two different routines to access it all. Memory mapping is a total pain on the SNES. While it makes sense to have my object table be set for use in direct page in one routine, it may make more sense to have it be indexed by x or y in another. It would have been so nice if bank 00 were entirely data so you could have a setup where you can access 64KB of ram and 64KB of rom at the same time. I've thought about copying over data to ram not because it gets changed, but just so you can access it in the same bank. Bank $00 is probably going to be very crammed with animation (I'll probably say screw it and copy the above table into ram. Losing something like 16KB is barely a loss) and metasprite related data. (which if it is going to be in Bank $00 even just by itself, it's going to be a very tight fit.) I want my routines to be fast, but I also want them to be able to access a lot of data, and these often conflict due to how the memory mapping is.