INES Mapper 164: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (make a note that mapper 164 information is sketchy and needs elaboration)
(Describe emulator implementation of mapper)
Line 32: Line 32:
   Swapping is really simple -- the thing that is funky is the register range/mask.  $5000 and $D000 will access
   Swapping is really simple -- the thing that is funky is the register range/mask.  $5000 and $D000 will access
   the register, however $5100, $5200, etc will not.
   the register, however $5100, $5200, etc will not.
FCEUX implements mapper 164 as:
$5000: [.... LLLL]
$5100: [.... HHHH]
$5300: 8-bit latch
Writing to either $5000 or $5100 immediately switches a 32kB or 512kB chunk.
Reading from $5100 or $5900 returns the value of the latch, but not $5500 or $5D00
Nestopia implements mapper 164 as:
$5000: [.ABC DLLL]
$5100: [.... ...H]
Writing to either immediately switches banks. The interpretation of the address depends on ABC:
  C=0: Switch 16kB at $8000, address specified by HBDLLL; 16kB at $C000 switched to H11111.
A=C=0: undefined (noop)
ABC=5: Switch 32kB at $8000, address specified by HDLLL
ABC=7: Switch 16kB at $8000, address specified by HDDLLL; 16kB at $C000 switched to H11111. (Yes, D appears twice)
Note that the copy of Final Fantasy V in GoodNES does not work correctly in Nestopia. This should ''not'' be taken as an indication that Nestopia's implementation is necessarily wrong.


[[Category:iNES Mappers]]
[[Category:iNES Mappers]]

Revision as of 02:05, 19 April 2012

These notes are not very good. There is more information to be got. Check some emulator sources and please elaborate here.

 Here are Disch's original notes:  
 ========================
 =  Mapper 164          =
 ========================
 
 Example Game:
 --------------------------
 Final Fantasy V
 
 
 
 Registers:
 ---------------------------
 
 Range,Mask:   $5000-FFFF, $F300
 
    $5000, $D000:  PRG reg (32k @ $8000)
 
 $6000-7FFF may have SRAM (not sure)
 
 
 On Reset
 ---------------------------
 Reg seems to contain $FF on powerup/reset
 
 
 Notes:
 ---------------------------
 
 Swapping is really simple -- the thing that is funky is the register range/mask.  $5000 and $D000 will access
 the register, however $5100, $5200, etc will not.

FCEUX implements mapper 164 as:

$5000: [.... LLLL]
$5100: [.... HHHH]
$5300: 8-bit latch

Writing to either $5000 or $5100 immediately switches a 32kB or 512kB chunk. Reading from $5100 or $5900 returns the value of the latch, but not $5500 or $5D00

Nestopia implements mapper 164 as:

$5000: [.ABC DLLL]
$5100: [.... ...H]

Writing to either immediately switches banks. The interpretation of the address depends on ABC:

  C=0: Switch 16kB at $8000, address specified by HBDLLL; 16kB at $C000 switched to H11111.
A=C=0: undefined (noop)
ABC=5: Switch 32kB at $8000, address specified by HDLLL
ABC=7: Switch 16kB at $8000, address specified by HDDLLL; 16kB at $C000 switched to H11111. (Yes, D appears twice)

Note that the copy of Final Fantasy V in GoodNES does not work correctly in Nestopia. This should not be taken as an indication that Nestopia's implementation is necessarily wrong.