pub enum VsPpuType {
None,
Rp2C03,
Rp2C04_0001,
Rp2C04_0002,
Rp2C04_0003,
Rp2C04_0004,
Rc2C05_01,
Rc2C05_02,
Rc2C05_03,
Rc2C05_04,
}Expand description
Vs. System PPU type from NES 2.0 header byte 13 low nibble.
Only meaningful when the console type (byte 7) is ConsoleType::VsSystem;
otherwise VsPpuType::None. Per nesdev “NES 2.0” §Vs. System Type and
“PPU registers” §2C05 identifier.
Variants§
None
Not a Vs. System cart (the default for NES/Famicom + PlayChoice-10).
Rp2C03
$0: any RP2C03/RC2C03 variant.
Rp2C04_0001
$2: RP2C04-0001.
Rp2C04_0002
$3: RP2C04-0002.
Rp2C04_0003
$4: RP2C04-0003.
Rp2C04_0004
$5: RP2C04-0004.
Rc2C05_01
$8: RC2C05-01 (signature unknown; the sole known game does not check
$2002).
Rc2C05_02
$9: RC2C05-02 ($2002 AND $3F = $3D).
Rc2C05_03
$A: RC2C05-03 ($2002 AND $1F = $1C).
Rc2C05_04
$B: RC2C05-04 ($2002 AND $1F = $1B).
Implementations§
Source§impl VsPpuType
impl VsPpuType
Sourcepub const fn from_byte13_low_nibble(nibble: u8) -> Self
pub const fn from_byte13_low_nibble(nibble: u8) -> Self
Decode the NES 2.0 byte-13 low nibble into a Vs. PPU type. Reserved /
unknown nibbles fall back to VsPpuType::Rp2C03 (the most common RGB
PPU), matching how most emulators treat unspecified Vs. carts.
Sourcepub const fn ppu_palette(self) -> VsPpuPalette
pub const fn ppu_palette(self) -> VsPpuPalette
Resolve to the output palette.
Sourcepub const fn is_2c05(self) -> bool
pub const fn is_2c05(self) -> bool
True for the 2C05 series ($2000/$2001 swap + $2002 identifier).
Sourcepub const fn ppu_2c05_id(self) -> u8
pub const fn ppu_2c05_id(self) -> u8
The byte returned in the low 5 bits of $2002 on a 2C05 (0 otherwise).
The 2C05-01 signature is unknown (the only known game, Ninja Jajamaru-kun, never reads it), so it returns 0.