I was thinking of trying SNES programming, but there are a few things that I need to ask about before I can start.
The first thing is to understand how the SNES uses the available memory. As far as I know, RAM and registers are at $xx:0000 - $xx:7FFF and ROM is at $xx:8000 - $xx:FFFF. xx is the value at Program Bank or Data Bank register depending on whether its accessed by read/write instruction or instruction fetch. Do reads/writes at $0000 - $7FFF care what value xx is?
Now, PPU memory is a bit more of a mystery to me. How do you assign pattern tables and how many tiles can they hold at once? Can parts of the pattern table be swapped or are you limited to certain minimum sizes you can swap at once? Or can you swap individual tiles kinda like CHR RAM on some NES mappers? What about nametables and attributes?
The first thing is to understand how the SNES uses the available memory. As far as I know, RAM and registers are at $xx:0000 - $xx:7FFF and ROM is at $xx:8000 - $xx:FFFF. xx is the value at Program Bank or Data Bank register depending on whether its accessed by read/write instruction or instruction fetch. Do reads/writes at $0000 - $7FFF care what value xx is?
Now, PPU memory is a bit more of a mystery to me. How do you assign pattern tables and how many tiles can they hold at once? Can parts of the pattern table be swapped or are you limited to certain minimum sizes you can swap at once? Or can you swap individual tiles kinda like CHR RAM on some NES mappers? What about nametables and attributes?