INES Mapper 228: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
(12 Mbit PRG ROM)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:iNES Mappers]]
[[Category:iNES Mappers|228]][[Category:in NesCartDB|228]][[Category:Multicart mappers|228]]


'''iNES Mapper 228''' represents the board used by Active Enterprises for ''Action 52'' and ''Cheetahmen II''.
'''iNES Mapper 228''' represents the board used by Active Enterprises for ''Action 52'' and ''Cheetahmen II''.


== Registers ==
== Registers ==
<pre>
Address          Data
Address          Data
FEDCBA98 76543210 76543210
FEDCBA98 76543210 76543210
1.MHHPPP PPS.CCCC ......CC
1.MHHPPP PPS.CCCC ......CC
  |||||| ||| ||||      ||
  |||||| ||| ||||      ||
  |||||| ||| ++++-------++- Select 8 KiB CHR ROM bank at PPU $0000
  |||||| ||| ++++-------++- Select 8 KiB CHR ROM bank at PPU $0000
  |||||| ||+--------------- PRG bank size
  |||||| ||+--------------- PRG bank size
  |||||| ||                0: Put bank with bit 0 false in $8000 and
  |||||| ||                0: Put bank with bit 0 false in $8000 and
  |||||| ||                    bank with bit 0 true in $C000
  |||||| ||                    bank with bit 0 true in $C000
  |||||| ||                1: Put same 16 KiB bank in $8000 and $C000
  |||||| ||                1: Put same 16 KiB bank in $8000 and $C000
  |||+++-++---------------- Select 16 KiB PRG ROM bank at CPU $8000
  |||+++-++---------------- Select 16 KiB PRG ROM bank at CPU $8000
  |++---------------------- Select which 512 KiB PRG ROM chip to enable
  |++---------------------- Select which 512 KiB PRG ROM chip to enable
  |                        (A52 uses 0, 1, and 3; bank 2 is open bus)
  |                        (A52 uses 0, 1, and 3; bank 2 is open bus)
  +------------------------ 0: Vertical mirroring; 1: Horizontal mirroring
  +------------------------ 0: Vertical mirroring; 1: Horizontal mirroring
</pre>
There are also four 4-bit RAM locations at $4020-$4023, mirrored throughout $4020-$5FFF


''Action 52'' is highly uncommon in that its PRG ROM has a [[non-power-of-two ROM size]]: three 512 KiB PRG ROMs alongside one 512 KiB CHR ROM.
It is claimed that there are four 4-bit RAM locations at $4020-$4023, mirrored throughout $4020-$5FFF. This 16-bit RAM is definitely not present on either cartridge, Nestopia does not implement it at all, and neither cartridge ever writes to these addresses.
Incidentally, this is very similar to [[iNES Mapper 225]] with a few differences:
* Two of the CHR bank bits have been shifted to the data bus.
* PRG bank size bit moved to other side of PRG bank number.
* High bit moved to other side of mirroring and applies only to PRG ROM, not CHR ROM.
* The rumored 4x4-bit RAM is at a different address.


   Here are Disch's original notes:
   Here are Disch's original notes:

Latest revision as of 15:02, 23 June 2021


iNES Mapper 228 represents the board used by Active Enterprises for Action 52 and Cheetahmen II.

Registers

Address           Data
FEDCBA98 76543210 76543210
1.MHHPPP PPS.CCCC ......CC
  |||||| ||| ||||       ||
  |||||| ||| ++++-------++- Select 8 KiB CHR ROM bank at PPU $0000
  |||||| ||+--------------- PRG bank size
  |||||| ||                 0: Put bank with bit 0 false in $8000 and
  |||||| ||                    bank with bit 0 true in $C000
  |||||| ||                 1: Put same 16 KiB bank in $8000 and $C000
  |||+++-++---------------- Select 16 KiB PRG ROM bank at CPU $8000
  |++---------------------- Select which 512 KiB PRG ROM chip to enable
  |                         (A52 uses 0, 1, and 3; bank 2 is open bus)
  +------------------------ 0: Vertical mirroring; 1: Horizontal mirroring

Action 52 is highly uncommon in that its PRG ROM has a non-power-of-two ROM size: three 512 KiB PRG ROMs alongside one 512 KiB CHR ROM.

It is claimed that there are four 4-bit RAM locations at $4020-$4023, mirrored throughout $4020-$5FFF. This 16-bit RAM is definitely not present on either cartridge, Nestopia does not implement it at all, and neither cartridge ever writes to these addresses.

Incidentally, this is very similar to iNES Mapper 225 with a few differences:

  • Two of the CHR bank bits have been shifted to the data bus.
  • PRG bank size bit moved to other side of PRG bank number.
  • High bit moved to other side of mirroring and applies only to PRG ROM, not CHR ROM.
  • The rumored 4x4-bit RAM is at a different address.
 Here are Disch's original notes:
 ========================
 =  Mapper 228          =
 ========================
 
 
 Example Games:
 --------------------------
 Action 52
 Cheetah Men II
 
 
 Notes:
 ---------------------------
 Cheetah Men II is infamous for how freaking terrible it is.  Action 52 is none better.  These games are SO
 bad, it's hilarious.
 
 Action 52's PRG size is weird (not a power of 2 value).  This is because there are 3 seperate 512k PRG chips.
 PRG Setup section will cover details.
 
 
 Powerup and Reset:
 ---------------------------
 Apparently the games expect $00 to be written to $8000 on powerup/reset.
 
 
 Registers:
 ---------------------------
 
   $4020-4023:  [.... RRRR]  RAM  (readable/writable)
                 (16 bits of RAM -- 4 bits in each of the 4 regs)
   $4024-5FFF:    mirrors $4020-4023
 
   $8000-FFFF:    [.... ..CC]   Low 2 bits of CHR
                A~[..MH HPPP PPO. CCCC]
 
     M = Mirroring (0=Vert, 1=Horz)
     H = PRG Chip Select
     P = PRG Page Select
     O = PRG Mode
     C = High 4 bits of CHR
 
 CHR Setup:
 ---------------------------
 
       $0000   $0400   $0800   $0C00   $1000   $1400   $1800   $1C00 
     +---------------------------------------------------------------+
     |                             $8000                             |
     +---------------------------------------------------------------+
 
 
 PRG Setup:
 ---------------------------
 
 'H' bits select the PRG chip.  Each chip is 512k in size.  Chip 2 does not exist, and when selected, will
 result in open bus.  The Action 52 .nes ROM file contains chips 0, 1, and 3:
 
 chip 0:  offset 0x000010
 chip 1:  offset 0x080010
 chip 2:  -- non existant --
 chip 3:  offset 0x100010
 
 'P' selects the PRG page on the currently selected chip.
 
                $8000   $A000   $C000   $E000  
              +-------------------------------+
 PRG Mode 0:  |            <$8000>            |
              +-------------------------------+
 PRG Mode 1:  |     $8000     |     $8000     |
              +---------------+---------------+