Mappers 150 and 243

Discuss hardware-related topics, such as development cartridges, CopyNES, PowerPak, EPROMs, or whatever.

Moderators: B00daW, Moderators

Post Reply
NewRisingSun
Posts: 1124
Joined: Thu May 19, 2005 11:30 am

Mappers 150 and 243

Post by NewRisingSun » Sat Nov 23, 2019 4:37 pm

The wiki page on these mappers is a bit of a mess. I took the time to first debug the code of all mapper 150/243 games, then trace PCB connections, and found the following:

All games (including Poker III 5-in-1) except for Honey Peach and Mahjong Academy write:
Register 5: PRG bank
Register 6: CHR bank D0-D1
Register 4: CHR bank D2
(None of these games need a D3 CHR bank bit, and do not attempt to write one to Register 2.)

Mahjong Academy writes:
Register 2: PRG bank (different from above)
Register 6: CHR bank D0-D1 (same as above)
Register 4: CHR bank D2 (same as above)

Honey Peach writes:
Register 2: CHR bank D0 (different from above)
Register 4: CHR bank D1 (different from above)
Register 6: CHR bank D2-D3 (different from above)

The mapper 150 games whose PCB i have seen all use the SA-015 PCB, which connects:
ASIC pin #9: unconnected
ASIC pin #11: CHR A15, i.e. Register 4 bit 0 according to the above description (solder pad configuration disables this bit in the above picture)
ASIC pin #12: CHR A13, i.e. Register 6 bit 0 according to the above description
ASIC pin #13: CHR A14, i.e. Register 6 bit 1 according to the above description (solder pad configuration disables this bit in the above picture)

Honey Peach uses the SA-020A PCB, which connects:
ASIC pin #9: CHR A13, i.e. Register 2 bit 0 according to the above description
ASIC pin #11: CHR A14, i.e. Register 4 bit 0 according to the above description
ASIC pin #12: CHR A15, i.e. Register 6 bit 0 according to the above description
ASIC pin #13: CHR A16, i.e. Register 6 bit 1 according to the above description

Both ASIC to CHR-ROM pin connection variants are accurately described in Sanchez' old document, but his description of the registers has the bits in reverse only describes one variant. The wiki page's variant A resembles Sanchez' description and describes mapper 150 accurately, except that register 2's "high" bit has no counterpart on the PCBs that I have seen, and seems to exist only to get a Honey Peach ROM in mapper 150 CHR order to work. The wiki's variant B on the other hand does not describe Honey Peach correctly; the actual Honey Peach connection currently has no mapper number.

When I dump Honey Peach according to my SA-020A PCB description, I get a CHR-ROM in exactly the same order and CRC as included on Sachen's "Super Cartridge 1" multicart. That may not be 100% proof that this order is correct, but I consider it strong corroborating evidence.

I therefore propose to:
  • Define mapper 150 as denoting the "SA-015" PCB as it already is emulated by most emulators, and make it the correct mapper for all 150/243 games except for Honey Peach.
  • Define mapper 243 as denoting the "SA-020A" PCB using the above description, which differs from the way any emulator currently emulates it, but which as far as I can tell is the correct description.
Remaining questions:
  • Mahjong Academy's PRG bank selection using register 2 rather than 5. Until a PCB picture becomes available, mapper 150 must tentatively continue to treat bit 0 of both registers 2 and 5 as selecting the 32 KiB PRG-ROM bank, as is already the case in variant A. Once such a PCB is found and verified that it connects ASIC pin #13 to PRG-ROM A15, a submapper for that game can be allocated.
  • I have not investigated the mirroring-related behavior of either PCB so far.
Edit: Note that regardless of CHR bank order, the fourth girl of Honey Peach will be glitched in her final undressed state (intercept writes to CPU RAM offset $0A and replace with value $12 to select that picture). This has been verified to occur on real hardware as well, and can be corrected by changing a single byte in the game's PictureNumber-to-CHRBank table .

Post Reply