start working on ppu

This commit is contained in:
Vineet K 2024-08-31 22:25:12 -04:00
parent 279478f16f
commit f591b4adf2
2 changed files with 39 additions and 0 deletions

13
ppu.c
View File

@ -13,3 +13,16 @@ ppu_tick(void)
if (ppu.scanlines >= 262) if (ppu.scanlines >= 262)
ppu.scanlines -= 262; ppu.scanlines -= 262;
} }
uint8_t
ppu_read(uint16_t addr)
{
}
void
ppu_write(uint16_t addr, uint8_t byte)
{
static uint8_t prev;
prev = byte;
}

26
ppu.h
View File

@ -12,6 +12,32 @@ struct ppu {
uint8_t palette[16*2]; uint8_t palette[16*2];
uint16_t cycles, scanlines; uint16_t cycles, scanlines;
struct rom *rom; struct rom *rom;
struct ppu_ctrl { /* $2000 */
uint8_t nmi_enable : 1;
uint8_t master_slave : 1;
uint8_t sprite_height : 1;
uint8_t bg_tile_sel : 1;
uint8_t sprite_tile_sel : 1;
uint8_t inc_mode : 1;
uint8_t nametable_sel : 2;
} ctrl;
struct ppu_mask { /* $2001 */
uint8_t colour_emphasis : 3;
uint8_t sprite_enable : 1;
uint8_t bg_enable : 1;
uint8_t sprite_left_enable : 1;
uint8_t bg_left_enable : 1;
uint8_t grayscale : 1;
} mask;
struct ppu_status { /* $2002 */
uint8_t vblank : 1;
uint8_t sprite0_hit : 1;
uint8_t sprite_overflow : 1;
uint8_t pad : 5;
} status;
uint8_t oam_addr; /* $2003 */
uint8_t oam_data; /* $2004 */
}; };
extern struct ppu ppu; extern struct ppu ppu;