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.