INES Mapper 091: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
Rainwarrior (talk | contribs) (fixed-timing scanline IRQ subcategory) |
m (8 oscillations of PPU A12 per scanline, not 4...) |
||
Line 66: | Line 66: | ||
For details on MMC3 IRQ operation, see [[iNES Mapper 004|mapper 4]] | For details on MMC3 IRQ operation, see [[iNES Mapper 004|mapper 4]] | ||
It seems likely that this IRQ is actually implemented using a simple binary counter clocked by PPU A12, and it ''doesn't'' count 8 scanlines, but instead counts | It seems likely that this IRQ is actually implemented using a simple binary counter clocked by PPU A12, and it ''doesn't'' count 8 scanlines, but instead counts 64 rises of PPU A12. | ||
== See also == | == See also == | ||
* [http://www.romhacking.net/documents/362/ NES Mapper list] by Disch. | * [http://www.romhacking.net/documents/362/ NES Mapper list] by Disch. | ||
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\. Information on mapper's initial state is innacurate. | *[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\. Information on mapper's initial state is innacurate. |
Revision as of 22:54, 18 May 2015
Here are Disch's original notes: ======================== = Mapper 091 = ======================== Example Games: -------------------------- Street Fighter III Super Mario & Sonic 2 Notes: --------------------------- Regs exist at $6000-7FFF, so this mapper has no SRAM. Registers: --------------------------- Range,Mask: $6000-7FFF, $7003 $6000-6003: CHR Regs $7000-7001: [.... PPPP] PRG Regs $7002 [.... ....] IRQ Stop $7003 [.... ....] IRQ Start CHR Setup: --------------------------- $0000 $0400 $0800 $0C00 $1000 $1400 $1800 $1C00 +---------------+---------------+---------------+---------------+ | $6000 | $6001 | $6002 | $6003 | +---------------+---------------+---------------+---------------+ PRG Setup: --------------------------- $8000 $A000 $C000 $E000 +-------+-------+-------+-------+ | $7000 | $7001 | { -2} | { -1} | +-------+-------+-------+-------+ IRQs: --------------------------- IRQs on this mapper seem to behave exactly like MMC3 -- except it's fixed so that it will only fire after 8 scanlines. This is easily emulatable by using MMC3 logic. Write to $7002/$7003 can translate directly to write(s) to the following MMC3 registers: on $7002 write: a) write to $E000 on $7003 write: a) write $07 to $C000 b) write to $C001 c) write to $E001 For details on MMC3 IRQ operation, see mapper 4
It seems likely that this IRQ is actually implemented using a simple binary counter clocked by PPU A12, and it doesn't count 8 scanlines, but instead counts 64 rises of PPU A12.
See also
- NES Mapper list by Disch.
- Comprehensive NES Mapper Document by \Firebug\. Information on mapper's initial state is innacurate.