beginning ppu

This commit is contained in:
2025-02-01 00:48:49 -07:00
parent 5206c3871e
commit f4cbfd09c8
25 changed files with 683 additions and 43 deletions

View File

@ -4,6 +4,8 @@
#include <cpu.h>
#include <ram.h>
#include <io.h>
#include <ppu.h>
#include <dma.h>
// 0x0000 - 0x3FFF : ROM Bank 0
// 0x4000 - 0x7FFF : ROM Bank 1 - Switchable
@ -24,10 +26,7 @@ u8 bus_read(u16 address) {
return cart_read(address);
} else if (address < 0xA000) {
//Char/Map Data
//TODO
printf("UNSUPPORTED bus_read(%04X)\n", address);
//NO_IMPL
return 0;
return ppu_vram_read(address);
} else if (address < 0xC000) {
//Cartridge RAM
return cart_read(address);
@ -39,10 +38,9 @@ u8 bus_read(u16 address) {
return 0;
} else if (address < 0xFEA0) {
//OAM
//TODO
printf("UNSUPPORTED bus_read(%04X)\n", address);
//NO_IMPL
return 0;
if(dma_transferring())
return 0xFF;
return ppu_oam_read(address);
} else if (address < 0xFF00) {
//reserved unusable
return 0;
@ -66,10 +64,8 @@ void bus_write(u16 address, u8 value) {
return;
} else if (address < 0xA000) {
//Char/Map Data
//TODO
printf("UNSUPPORTED bus_write(%04X)\n", address);
ppu_vram_write(address, value);
return;
//NO_IMPL
} else if (address < 0xC000) {
//Cartridge RAM
cart_write(address, value);
@ -83,10 +79,9 @@ void bus_write(u16 address, u8 value) {
return;
} else if (address < 0xFEA0) {
//OAM
//TODO
printf("UNSUPPORTED bus_write(%04X)\n", address);
if(!dma_transferring())
ppu_oam_write(address, value);
return;
//NO_IMPL
} else if (address < 0xFF00) {
//reserved unusable
return;