INES Mapper 228

From Nesdev wiki
Jump to: navigation, search


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

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     |
              +---------------+---------------+