Skip to content

Commit

Permalink
chore: new register comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
joamag committed Jul 4, 2024
1 parent e87caa0 commit 660f229
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
1 change: 1 addition & 0 deletions src/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ pub const SCY_ADDR: u16 = 0xff42;
pub const SCX_ADDR: u16 = 0xff43;
pub const LY_ADDR: u16 = 0xff44;
pub const LYC_ADDR: u16 = 0xff45;
pub const BGP_ADDR: u16 = 0xff47;

// DMA registers
pub const DMA_ADDR: u16 = 0xff46;
Expand Down
10 changes: 6 additions & 4 deletions src/ppu.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ use crate::{
rgb888_to_rgb565_u16, Pixel, PixelAlpha, RGB1555_SIZE, RGB565_SIZE, RGB888_SIZE, RGB_SIZE,
XRGB8888_SIZE,
},
consts::{LCDC_ADDR, LYC_ADDR, LY_ADDR, SCX_ADDR, SCY_ADDR, STAT_ADDR},
consts::{BGP_ADDR, LCDC_ADDR, LYC_ADDR, LY_ADDR, SCX_ADDR, SCY_ADDR, STAT_ADDR},
gb::{GameBoyConfig, GameBoyMode},
mmu::BusComponent,
util::SharedThread,
Expand Down Expand Up @@ -807,9 +807,10 @@ impl Ppu {
SCY_ADDR => self.scy,
SCX_ADDR => self.scx,
LY_ADDR => self.ly,
// 0xFF45 — LYC: LY compare
// 0xFF45 — LYC
LYC_ADDR => self.lyc,
0xff47 => self.palettes[0],
// 0xFF47 — BGP: BG palette data (Non-CGB Mode only)
BGP_ADDR => self.palettes[0],
0xff48 => self.palettes[1],
0xff49 => self.palettes[2],
0xff4a => self.wy,
Expand Down Expand Up @@ -892,7 +893,8 @@ impl Ppu {
SCX_ADDR => self.scx = value,
// 0xFF45 — LYC: LY compare
LYC_ADDR => self.lyc = value,
0xff47 => {
// 0xFF47 — BGP: BG palette data (Non-CGB Mode only)
BGP_ADDR => {
if value == self.palettes[0] {
return;
}
Expand Down
5 changes: 3 additions & 2 deletions src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ pub fn run_image_test(
mod tests {
use crate::{
consts::{
DIV_ADDR, DMA_ADDR, IF_ADDR, LCDC_ADDR, LYC_ADDR, LY_ADDR, SCX_ADDR, SCY_ADDR,
STAT_ADDR, TAC_ADDR, TIMA_ADDR, TMA_ADDR,
BGP_ADDR, DIV_ADDR, DMA_ADDR, IF_ADDR, LCDC_ADDR, LYC_ADDR, LY_ADDR, SCX_ADDR,
SCY_ADDR, STAT_ADDR, TAC_ADDR, TIMA_ADDR, TMA_ADDR,
},
data::BootRom,
};
Expand Down Expand Up @@ -119,6 +119,7 @@ mod tests {
assert_eq!(result.ppu().read(SCX_ADDR), 0x00);
assert_eq!(result.ppu().read(LY_ADDR), 0x99);
assert_eq!(result.ppu().read(LYC_ADDR), 0x00);
assert_eq!(result.ppu().read(BGP_ADDR), 0xfc);

assert_eq!(result.ppu().read(DMA_ADDR), 0xff);
}
Expand Down

0 comments on commit 660f229

Please sign in to comment.