INES Mapper 065: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
m (fix verb for plural agreement) |
(Added links. Notes should be removed but since there's no other content, let's see) |
||
Line 79: | Line 79: | ||
$9006 and $9005 set the reload value, but do not have any effect on the actual counter. Note that $9005 is | $9006 and $9005 set the reload value, but do not have any effect on the actual counter. Note that $9005 is | ||
the HIGH bits, not the low bits. | the HIGH bits, not the low bits. | ||
== See also == | |||
*[http://www.romhacking.net/documents/362/ NES Mapper List] by Dish | |||
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\, information about mapper's initial state is inaccurate. |
Revision as of 10:33, 21 April 2015
iNES Mapper 065 refers to games that use Irem's H3001 mapper.
Here are Disch's original notes: ======================== = Mapper 065 = ======================== Example Games: -------------------------- Daiku no Gen San 2 Kaiketsu Yanchamaru 3 Spartan X 2 Registers: -------------------------- $8000: PRG Reg 0 (8k @ $8000) $A000: PRG Reg 1 (8k @ $A000) $C000: PRG Reg 2 (8k @ $C000) $B000-$B007: CHR regs $9001: [M... ....] Mirroring 0 = Vert 1 = Horz $9003: [E... ....] IRQ Enable (0=disabled, 1=enabled) $9004: [.... ....] Reload IRQ counter $9005: [IIII IIII] High 8 bits of IRQ Reload value $9006: [IIII IIII] Low 8 bits of IRQ Reload value On Powerup: --------------------------- On powerup, it appears as though PRG regs are inited to specific values: $8000 = $00 $A000 = $01 $C000 = $FE Games do rely on this and will crash otherwise. PRG Setup: --------------------------- $8000 $A000 $C000 $E000 +-------+-------+-------+-------+ | $8000 | $A000 | $C000 | { -1} | +-------+-------+-------+-------+ CHR Setup: --------------------------- $0000 $0400 $0800 $0C00 $1000 $1400 $1800 $1C00 +-------+-------+-------+-------+-------+-------+-------+-------+ | $B000 | $B001 | $B002 | $B003 | $B004 | $B005 | $B006 | $B007 | +-------+-------+-------+-------+-------+-------+-------+-------+ IRQs: --------------------------- This mapper's IRQ system is very simple. There's a 16-bit internal down counter which (when enabled), decrements by 1 every CPU cycle. When the counter reaches 0, an IRQ is fired. The counter stops at 0 -- it does not wrap and isn't automatically reloaded. Any write to $9003 or $9004 will acknowledge the pending IRQ. Any write to $9004 will copy the 16-bit reload value into the counter. $9006 and $9005 set the reload value, but do not have any effect on the actual counter. Note that $9005 is the HIGH bits, not the low bits.
See also
- NES Mapper List by Dish
- Comprehensive NES Mapper Document by \Firebug\, information about mapper's initial state is inaccurate.