MM: bg tile bank work
I came up with a method to extend the number of BG tiles from 256 to 768. By using invalid/unused address range of the PPU (for the tilemap sections. So $279c would be normal bank 0, $479c bank1, $879c bank 2). I just finished modifying the backend code for this. Attributes are extended the same way. This should allow for more unique detail in the BG maps.
As for the game itself, I’m writing a hook that reads a shadow map of the current ‘room’ of the stage and provides the alteration to the ppu address of ‘TSAPPUtransfer0NTaddress’ per 32×32 meta tile (a room is 8×8 meta tiles or 256×256 pixels).
So 768 8×8 back ground tiles and 12 background sub-palettes. The additional sub-palettes are not tied to the bank of tiles used either; they’re independent of each other. But the sub-palettes are ‘banked’ or grouped, so a 32×32 meta-tile can use 0-3, or 4-7, or 8-11 sub-palette slot but not mix and match within the metatile. This isn’t a limitation of the backend upgraded emulation code, but rather a compromise to keep minimal breaking and compatibility with original game engine. The color depth is irrelevant to all of this. It can be 2bit or 4bit regardless.