Yeah, I've been running into all types of little issues about how exactly to do this that have been annoying me. My tilemap format in rom is just a regular tilemap with no type of compression, just instead of being multiple 32x32 tilemaps put together, it's just one giant one, so a row can be whatever width. For updating the tilemap horizontally, (columns) I have a buffer that I fill out that basically turns the tilemap sideways, but the buffer is only a couple of tiles wide (like 4x64) instead of the whole theoretical 64x64 because of how much space that would take, especially if I want to update multiple BG layers, and there's no real reason to ever scroll more than 32 pixels per frame. (I doubt even Chemical Plant Zone Act II does that). I also want a buffer for scrolling vertically (rows) because you only need one DMA transfer for multiple rows in each 32x32 tilemap (where it would have to be a DMA transfer for ever row otherwise). However, this one might cover the whole 64x64 space, for if I want to update the entire tilemap in one shot. For scrolling at an angle, I'd probably just end up writing the corner twice for simplicity and the fact that with multiple rows, it should probably be faster to just do one continuous dma transfer. I have no clue how I'm going to handle updating random entries in the tilemap, but that's something to worry about later.