Have you tested that value written to $5110/$5111/$5112 is present on PRG-ROM-A bus for some CPU-A address?
Because I think this table is not true. If we want to make such detailed descriptions (like what address is outputted by MMC5 when accessing certain memory regions), then I think the table should look like that (for PRG_RAM_A - all rows are tested, for PRG_ROM_A it is not tested but the rows below $8000 are in my opinion just mirrors)
Code: Select all
$0000 $2000 $4000 $6000 $8000 $a000 $c000 $e000
-- Mode 0 ---------------------------------------------------------------------------------
PRG_RAM_A | $5113 | $5113 | $5113 | $5113 | $5113 | $5113 | $5113 | $5113 |
PRG_ROM_A | <<$5117>> | <<$5117>> |
PRG | - | - | - | RAM | ROM |
-- Mode 1 ---------------------------------------------------------------------------------
PRG_RAM_A <$5115> | $5113 | $5113 | <$5115> | $5113 | $5113 |
PRG_ROM_A | <$5115> | <$5117> | <$5115> | <$5117> |
PRG | - | - | - | RAM | $5115.7 | ROM |
-- Mode 2 ---------------------------------------------------------------------------------
PRG_RAM_A | <$5115> | $5116 | $5113 | <$5115> | $5116 | $5113 |
PRG_ROM_A <$5115> | $5116 | $5117 | <$5115> | $5116 | $5117 |
PRG | - | - | - | RAM | $5115.7 | $5116.7 | ROM |
-- Mode 3 ---------------------------------------------------------------------------------
PRG_RAM_A | $5114 | $5115 | $5116 | $5113 | $5114 | $5115 | $5116 | $5113 |
PRG_ROM_A | $5114 | $5115 | $5116 | $5117 | $5114 | $5115 | $5116 | $5117 |
PRG | - | - | - | RAM | $5114.7 | $5115.7 | $5116.7 | ROM |
< > = ignore bottom bit (replace it with CPU_A13)
<< >> = ignore two bottom bits (replace bit 1 with CPU_A14 and bit 0 with CPU_A13)