beginning ppu
This commit is contained in:
23
lib/bus.c
23
lib/bus.c
@ -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;
|
||||
|
Reference in New Issue
Block a user