The Action 53 mapper is an ASIC mapper of roughly MMC1-class complexity, implemented on CPLD cartridges sold by Infinite NES Lives. It was originally designed for making multicarts of games using common discrete mappers (NROM, CNROM, UNROM, ANROM, BNROM). It can also be used by a single game that takes full control of the mapper to switch both PRG ROM and CHR RAM banks at runtime by changing register select at CPU $5000. Its division of register numbers into "supervisor" and "user" registers anticipated games using full control, but with one caveat: switching between horizontal and vertical mirroring requires a supervisor write, as does initialization at startup.
But now people want to make games using its advanced features and get them included on a multicart. This is possible with a 1-byte patch so long as the game never changes the outer bank register ($81) after startup and always writes the correct log(prgsize/32768) value to bits 5-4 of the mode register ($80).
In this post, INL suggested developing an extended discrete mapper that allows switching PRG, CHR, and mirroring without having to write to supervisor registers $80 and $81 or even to register select. I proposed basing it on mapper 78, variants of which are used by IREM's Holy Diver (78.3) and Uchuusen: Cosmo Carrier (78.1), and making it tweakable using the mode register to resemble mapper 11 used by Color Dreams games. Thus an additional user mode of an expanded Action 53 mapper would have this layout at $8000-$FFFF:
The inversion is there because the sense of bit 3 on the Holy Diver board is like that of the iNES header (0=PA11, 1=PA10), which is inverted compared to that of FDS, MMC1-4, VRC2/4/7, FME-7, and both Action 52 and Action 53 (0=PA10, 1=PA11).
How this would work:
INL's counterproposal was to add a mode equivalent to MMC3. He pointed out that the cost of doing so is negligible given all the 5.0 V to 3.3 V level shifting needed to use a PRG ROM larger than 4 Mbit (512Kx8). This would behave similarly to TGROM (Mega Man 4; Mega Man 6; Ninja Crusaders) and the expanded TGROM used by The Curse of Possum Hollow, which would in theory let Retrotainment submit the demo of Curse as a free-for-all in volume 4.
But now people want to make games using its advanced features and get them included on a multicart. This is possible with a 1-byte patch so long as the game never changes the outer bank register ($81) after startup and always writes the correct log(prgsize/32768) value to bits 5-4 of the mode register ($80).
In this post, INL suggested developing an extended discrete mapper that allows switching PRG, CHR, and mirroring without having to write to supervisor registers $80 and $81 or even to register select. I proposed basing it on mapper 78, variants of which are used by IREM's Holy Diver (78.3) and Uchuusen: Cosmo Carrier (78.1), and making it tweakable using the mode register to resemble mapper 11 used by Color Dreams games. Thus an additional user mode of an expanded Action 53 mapper would have this layout at $8000-$FFFF:
Code:
7654 3210
CC MPPP
|| |+++- Set low 3 bits of PRG inner bank
|| +---- Set mirroring mode bit 0 (inverted: 1 writes 0; 0 writes 1)
++------ Set CHR bank
CC MPPP
|| |+++- Set low 3 bits of PRG inner bank
|| +---- Set mirroring mode bit 0 (inverted: 1 writes 0; 0 writes 1)
++------ Set CHR bank
The inversion is there because the sense of bit 3 on the Holy Diver board is like that of the iNES header (0=PA11, 1=PA10), which is inverted compared to that of FDS, MMC1-4, VRC2/4/7, FME-7, and both Action 52 and Action 53 (0=PA10, 1=PA11).
How this would work:
- 32K PRG banks
Similar to mapper 11, except with mapper-controlled mirroring (either H/V or 1-screen) instead of CIC stun control. (Only two commercial-era games using this mapper have horizontal mirroring; the rest have vertical mirroring.) This allows accessing all four CHR RAM banks and the entirety of a 256 KiB outer bank. - 16K PRG banks, game up to 128 KiB
This behaves like either variant of mapper 78, except CHR RAM is limited to 32 KiB. - 16K PRG banks, 256 KiB
Because there are only three PRG ROM bank select bits, a game needs to select UNROM (write $01 to $5000), change bit 3 of the inner bank number, and select mapper 78 again. But as long as the game doesn't need to change between 16K and 32K modes or between H/V and 1-screen mirroring, this eliminates the need to write to supervisor registers after startup.
INL's counterproposal was to add a mode equivalent to MMC3. He pointed out that the cost of doing so is negligible given all the 5.0 V to 3.3 V level shifting needed to use a PRG ROM larger than 4 Mbit (512Kx8). This would behave similarly to TGROM (Mega Man 4; Mega Man 6; Ninja Crusaders) and the expanded TGROM used by The Curse of Possum Hollow, which would in theory let Retrotainment submit the demo of Curse as a free-for-all in volume 4.