I truly hope that was hyperbole.byuu wrote:You'd be amazed, but 99% of SNES ROM hackers think they can just append data directly onto the end of the ROM and it'll always work.
I like this very much.byuu wrote:Direct means whatever IC gets the read/write command gets the literal address requested. Linear means the address given starts with the value after the IC name (zero if not specified), and it increments each page by the range provided. Shadow means the same as linear, except that you don't ignore the unused portions of each bank, instead you use all 64k. Shadow is for things like how $00:8000 = $c0:8000, and $01:8000 = $c1:8000, not $c1:0000.
With these three, I've been able to support everything in bsnes thus far, and I can support SFX and SA-1 mappings easily.
It would be nice to add "Mirror" so if there is something that is annoying to specify (maybe a 10Mbit rom's memory map), you only need to specify it for a couple regions and then just say something like:
40-7D:8000-FFFF, Mirror, 00-3D:8000-FFFF
80-BF:8000-FFFF, Mirror, 00-3F:8000-FFFF
C0-FD:8000-FFFF, Mirror, 00-3D:8000-FFFF
Maybe also a list of ICs. For some chips, we need to specify separately two different ROMs. And sometimes there could be two different RAM. And something to specify the RAM size, etc.
But now I'm getting off into possible details.
The point of my post was originally to say: I like the base format suggestion.
I'm so happy that this discussion/argument which has come up so very many times has finally converged on a very awesome compromise (I don't really consider it a compromise as it is better than I was hoping for originally!).