MMC1B, the common revision of the MMC1 mapper, uses bit 4 of $E000 as a PRG RAM disable bit. MMC1A, an earlier revision, does not disable PRG RAM in response to bit 4. Yet SOFEL's The Money Game, which uses MMC1A, deliberately sets bit 4 (ora #$10) in the value written to this register. So a NESdev Discord server member concluded that it must have some effect.
I wrote a test that steps through all 128 combinations of $8000 bits 3-2 (PRG banking mode) and $E000 bits 4-0 (PRG bank) and displays which PRG bank ends up selected, and then I had KMLbay on the NESdev Discord server run it on an MMC1A devcart. The results in 32K mode match MMC1B. The results in 16K mode differ:
Code: Select all
80:08
00 00 01 02 03 04 05 06 07
08 08 09 0a 0b 0c 0d 0e 0f
10 00 01 02 03 04 05 06 07
18 88 89 8a 8b 8c 8d 8e 8f [differs from MMC1B]
80:0C
00 0f 1f 2f 3f 4f 5f 6f 7f
08 8f 9f af bf cf df ef ff
10 07 17 27 37 47 57 67 77 [differs from MMC1B]
18 8f 9f af bf cf df ef ff
- P: Select PRG ROM A17-A14 when not in the fixed bank
- R: Effect depends on MMC1 revision.
MMC1B disables PRG RAM while R=1.
On MMC1A, R=0 means the fixed bank affects PRG A17-A14 output, and when R=1, the fixed bank affects PRG A16-A14 output, and D3 alone controls PRG A17.
Letterless MMC1 and AX5904 haven't been tested yet. (And there's no evidence on NesCartDB that MMC1C even exists.)