Of course, the best solution is if Aaron gives us device memory maps... which he just did
1. Move palettes out of nametable RAM. (DONE!)
2. move palette access to memory map (DONE!)
3. get the memory map working (DONE!)
4. move nametables to memory map (DONE!)
5. convert drawing code to use map (DONE!)
6. move pattern tables to memory map (DONE!)
7. convert drawing code to use map
8. move pattern tables to machine-side
9. remove banking code from PPU
10. move nametables to start of PPU RAM
11. right-size PPU RAM
12. move sprite DMA code
13. work with PPU mirroring code (4-screen)
14. fix $4015 to return all bits correctly.
Priorities may not stay in this order. Items 6 through 9 are the "big ones", but without fixing the other stuff, I'll never FIND what I need to make that happen. #12 and #14 are stuff that "could be done" at any time. The PPU need not work for either of those.