color emphasis
This commit is contained in:
parent
d2ea059915
commit
784c507e85
|
@ -36,8 +36,8 @@ impl super::Ppu {
|
|||
self.show_background = byte & (1<<3) != 0;
|
||||
self.show_sprites = byte & (1<<4) != 0;
|
||||
self.emphasize_red = byte & (1<<5) != 0;
|
||||
self.emphasize_blue = byte & (1<<6) != 0;
|
||||
self.emphasize_green = byte & (1<<7) != 0;
|
||||
self.emphasize_green = byte & (1<<6) != 0;
|
||||
self.emphasize_blue = byte & (1<<7) != 0;
|
||||
}
|
||||
|
||||
// cpu reads ppu status from 0x2002, PPUSTATUS
|
||||
|
|
|
@ -135,9 +135,9 @@ impl Ppu {
|
|||
show_sprites_left: false,
|
||||
show_background: false,
|
||||
show_sprites: false,
|
||||
emphasize_red: false, //
|
||||
emphasize_green: false, // TODO: implement these
|
||||
emphasize_blue: false, //
|
||||
emphasize_red: false,
|
||||
emphasize_green: false,
|
||||
emphasize_blue: false,
|
||||
sprite_overflow: false,
|
||||
sprite_zero_hit: false,
|
||||
should_generate_nmi: false,
|
||||
|
|
|
@ -117,8 +117,22 @@ impl super::Ppu {
|
|||
}
|
||||
// let pixel = self.read(palette_address as usize) as usize;
|
||||
let pixel = self.palette_ram[palette_address as usize] as usize;
|
||||
let color: (u8, u8, u8) = super::PALETTE_TABLE[pixel];
|
||||
|
||||
let mut color: (u8, u8, u8) = super::PALETTE_TABLE[pixel];
|
||||
if self.emphasize_red {
|
||||
color.0 = emphasize(&color.0);
|
||||
color.1 = deemphasize(&color.1);
|
||||
color.2 = deemphasize(&color.2);
|
||||
}
|
||||
if self.emphasize_green {
|
||||
color.0 = deemphasize(&color.0);
|
||||
color.1 = emphasize(&color.1);
|
||||
color.2 = deemphasize(&color.2);
|
||||
}
|
||||
if self.emphasize_blue {
|
||||
color.0 = deemphasize(&color.0);
|
||||
color.1 = deemphasize(&color.1);
|
||||
color.2 = emphasize(&color.2);
|
||||
}
|
||||
(x,y,color)
|
||||
}
|
||||
|
||||
|
@ -332,3 +346,19 @@ impl super::Ppu {
|
|||
self.previous_nmi = nmi;
|
||||
}
|
||||
}
|
||||
|
||||
fn emphasize(byte: &u8) -> u8 {
|
||||
if *byte < 200 {
|
||||
byte + 55
|
||||
} else {
|
||||
255
|
||||
}
|
||||
}
|
||||
|
||||
fn deemphasize(byte: &u8) -> u8 {
|
||||
if *byte > 55 {
|
||||
byte - 55
|
||||
} else {
|
||||
0
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue