public byte PpuRead(ushort address, bool readOnly = false) { byte data = 0x00; address &= 0x3FFF; if (_cartridge.CpuWrite(address, data))// Possible remove { } else if (address <= 0x1FFF) //Pattern memory { data = _tablePattern[(address & 0x1000) >> 12, address & 0x0FFF]; } else if (address >= 0x2000 && address <= 0x3EFF) //Name table memory { } else if (address >= 0x3F00 && address <= 0x3FFF) //Palette memory { address &= 0x001f; if (address == 0x0010) { address = 0x0000; } if (address == 0x0014) { address = 0x0004; } if (address == 0x0018) { address = 0x0008; } if (address == 0x001C) { address = 0x000C; } data = _tablePalette[address]; } return(data); }
public void CpuWrite(ushort address, byte data) { if (_cartridge.CpuWrite(address, data))// Possible remove { } else if (address <= 0x1FFF) { CpuRam[address & 0x07FF] = data; } else if (address >= 0x2000 && address <= 0x3FFF) { _ppu.CpuWrite((ushort)(address & 0x0007), data); } }