Now, as I know that during the rendering, I cannot write to VRAM via the PPU, I thought of what if I could write to it through MMC5 on one port while the other port is wired to the PPU cartridge pins. What do you think of the idea? This could simplify the rendering problem very much. It might even be possible to dynamically load new sprites during rendering.
The layout of the game would be like this:
- First 8 scanlines are blanked out with black palette because they're not seen on the TV. Palette for the dialogue and character's face on dialogue loads. It's located on the MMC5's internal nametable
- Next 4 lines (32 scanlines) for the text and the character's face combined with sprites and background to have 6 colors at the same time + transparency
- Some scanlines are blanked out with black palette while bankswitching, nametable changing, palette changing and scroll changing is happening to load the game port.
- Game port with mirroring 0101 to prevent glitches on the side during scrolling such as in SMB3
- Some scanlines are blanked out. During the first hblank, black color loads as a background. Bankswitching, nametable, palette, scroll change for the status bar. Nametable is in the MMC5.
- Next scanlines are used for the moving status bar that is in size 16 pixels while playing or 32 pixels if the pause menu or replay mode is activated.
- Last 8 scanlines are blanked out because they're not seen on the TV and they mess up the sprites that are in y€<240,255] interval.