pub enum Mmc3Revision {
Sharp,
Nec,
}Expand description
MMC3 IRQ-counter behaviour. Default is the Sharp (“new”) behaviour; the alternative suppresses the “reload to 0 asserts IRQ” behaviour.
Naming, corrected in v2.9.6. These two variants were documented as
“Sharp MMC3A” and “NEC MMC3B”. MMC3.md says otherwise: the old or
alternate behaviour belongs to the MMC3A and to non-Sharp MMC3B chips
(“1 (Sharp MMC3B, MMC3C) or 2 (MMC3A, Non-Sharp MMC3B) to 256 scanlines”),
and the NES 2.0 submapper for it is 4, not 1 (NES_2_0_submappers.md).
The behaviour of each variant was always right; only the labels were
wrong, together with the submapper mapping that followed them.
Variants§
Sharp
Sharp MMC3B and MMC3C: reloading the IRQ counter to 0 asserts IRQ if IRQs are enabled, so a latch of 0 fires every scanline. Default.
Nec
NEC MMC3B and the MMC3A: the IRQ fires on the counter’s 1 -> 0 transition, so a latch of 0 stops IRQs. NES 2.0 submapper 4.
Trait Implementations§
Source§impl Clone for Mmc3Revision
impl Clone for Mmc3Revision
Source§fn clone(&self) -> Mmc3Revision
fn clone(&self) -> Mmc3Revision
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more