Skip to main content

PpuPalette

Enum PpuPalette 

Source
pub enum PpuPalette {
    Composite2C02,
    Rgb2C03,
    Rgb2C04_0001,
    Rgb2C04_0002,
    Rgb2C04_0003,
    Rgb2C04_0004,
    Rgb2C05,
}
Expand description

Which PPU palette is active for the running console.

The default 2C02 (Self::Composite2C02) is the standard NES/Famicom composite palette (NES_PALETTE + apply_emphasis). The other variants are the hardware RGB palettes baked into the Vs. System / PlayChoice-10 arcade PPUs (the 2C03 / 2C04-xxxx / 2C05), which output digital RGB rather than composite video. Selected from the NES 2.0 header byte 13 Vs. PPU type when the console type is Vs. System.

Source: nesdev “PPU palettes” (https://www.nesdev.org/wiki/PPU_palettes) — the per-PPU 9-bit DAC tables converted with C = 255 * DAC / 7 (integer truncation, matching the wiki’s rendered hex).

Variants§

§

Composite2C02

Standard 2C02 NES/Famicom composite palette (default).

§

Rgb2C03

2C03 RGB PPU (PlayChoice-10, Vs. Duck Hunt / Tennis, Sharp C1). Shared with the 2C05.

§

Rgb2C04_0001

RP2C04-0001 RGB PPU (Vs. System).

§

Rgb2C04_0002

RP2C04-0002 RGB PPU (Vs. System).

§

Rgb2C04_0003

RP2C04-0003 RGB PPU (Vs. System).

§

Rgb2C04_0004

RP2C04-0004 RGB PPU (Vs. System).

§

Rgb2C05

2C05 RGB PPU — uses the 2C03 master palette (the 2C05’s quirks are the $2000/$2001 swap and the $2002 identifier, not the colors).

Implementations§

Source§

impl PpuPalette

Source

pub const fn is_composite(self) -> bool

True for the composite 2C02 (the default NES/Famicom path).

Trait Implementations§

Source§

impl Clone for PpuPalette

Source§

fn clone(&self) -> PpuPalette

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PpuPalette

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PpuPalette

Source§

fn default() -> PpuPalette

Returns the “default value” for a type. Read more
Source§

impl Hash for PpuPalette

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PpuPalette

Source§

fn eq(&self, other: &PpuPalette) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PpuPalette

Source§

impl Eq for PpuPalette

Source§

impl StructuralPartialEq for PpuPalette

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.