INES Mapper 155: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (omit link to redirect)
(present consensus is WRAM expansion; link to test ROM for mapper 155 behavior)
 
Line 1: Line 1:
[[Category:iNES Mappers|155]]
[[Category:iNES Mappers|155]]
[[iNES Mapper 155]] is assigned to games that require the MMC1A variant of the [[MMC1]]. Unlike MMC1B and MMC1C, MMC1A lacks the WRAM disable bit in the PRG bank register ($E000-$FFFF). Games that use this mapper write values between $10 and $1F to the PRG bank register, write to WRAM at $6000-$7FFF, and require the write to succeed.
[[iNES Mapper 155]] is assigned to games that require the MMC1A variant of the [[MMC1]]. Unlike MMC1B and MMC1C, MMC1A lacks the WRAM disable bit in bit 4 of the PRG bank register ($E000-$FFFF). Games that use this mapper write values between $10 and $1F to the PRG bank register, write to WRAM at $6000-$7FFF, and require the write to succeed.


According to the database shipped with Nestopia 1.4.0, these two Famicom games require this behavior:
According to the database shipped with Nestopia 1.4.0, these two Famicom games require this behavior:
Line 6: Line 6:
* The Money Game (ザ・マネーゲーム) ([http://bootgod.dyndns.org:7777/profile.php?id=3458 NesCartDB])
* The Money Game (ザ・マネーゲーム) ([http://bootgod.dyndns.org:7777/profile.php?id=3458 NesCartDB])


Either this was done as a copy protection mechanism or the programmers just weren't aware that later MMC1 revisions would add a bit for disabling WRAM.
At first, it was conjectured that this was done as a copy protection mechanism or the programmers just weren't aware that later MMC1 revisions would add a bit for disabling WRAM. Later, it was discovered that MMC1A treats bit 3 of the PRG bank register differently from MMC1B: when bit 4 is true, bit 3 bypasses the fixed bank logic and goes straight to the mapper's PRG ROM A17 output. The explicit use of <code>ora #$10</code> in ''The Money Game'' suggests that this behavior may have been intended to support large WRAM, such that <code>ora #$10</code> on the value to be written to the PRG bank accesses the first 8 KiB and <code>ora #$18</code> the second 8 KiB.


Technically, these two games are on [[SxROM|SKROM and SJROM]], and so theoretically this mapper should not have to implement any of the boards that repurpose PRG or CHR pins (SE-, SH-, SN-, SO-, SU-, SX-ROM). However, it is probably still wise to pay attention to the caveats said [[MMC1|here]].
The two extant games relying on MMC1A behavior are on [[SxROM|SKROM and SJROM]]. Thus theoretically, this mapper should not have to implement any of the boards that repurpose PRG or CHR pins (SE-, SH-, SN-, SO-, SU-, SX-ROM). In particular, SOROM and SXROM have their own WRAM expansion mechanisms. However, it is probably still wise to pay attention to the caveats listed in [[MMC1]].
 
== External links ==
* [https://forums.nesdev.org/viewtopic.php?t=23619 Forum topic "MMC1A fixed bank behavior difference"] with test ROM

Latest revision as of 13:06, 8 April 2022

iNES Mapper 155 is assigned to games that require the MMC1A variant of the MMC1. Unlike MMC1B and MMC1C, MMC1A lacks the WRAM disable bit in bit 4 of the PRG bank register ($E000-$FFFF). Games that use this mapper write values between $10 and $1F to the PRG bank register, write to WRAM at $6000-$7FFF, and require the write to succeed.

According to the database shipped with Nestopia 1.4.0, these two Famicom games require this behavior:

  • Tatakae!! Ramen Man: Sakuretsu Choujin 102 Gei (闘将!!拉麺男 炸裂超人一○二芸) (NesCartDB)
  • The Money Game (ザ・マネーゲーム) (NesCartDB)

At first, it was conjectured that this was done as a copy protection mechanism or the programmers just weren't aware that later MMC1 revisions would add a bit for disabling WRAM. Later, it was discovered that MMC1A treats bit 3 of the PRG bank register differently from MMC1B: when bit 4 is true, bit 3 bypasses the fixed bank logic and goes straight to the mapper's PRG ROM A17 output. The explicit use of ora #$10 in The Money Game suggests that this behavior may have been intended to support large WRAM, such that ora #$10 on the value to be written to the PRG bank accesses the first 8 KiB and ora #$18 the second 8 KiB.

The two extant games relying on MMC1A behavior are on SKROM and SJROM. Thus theoretically, this mapper should not have to implement any of the boards that repurpose PRG or CHR pins (SE-, SH-, SN-, SO-, SU-, SX-ROM). In particular, SOROM and SXROM have their own WRAM expansion mechanisms. However, it is probably still wise to pay attention to the caveats listed in MMC1.

External links