public CEmulator(Byte[] aDataArray) { time = 0; Logger.LogNormal("Load"); rom = new NesRom(aDataArray); // rom?f?[?^?????????? // To Be Fixed. //mem = new NesMemory( rom ); // ???????????[?h?J?n?A?h???X????rom?f?[?^???i?[ vram = new CVram(rom); // ???????????[?h?J?n?A?h???X????rom?f?[?^???i?[ }
public void Update(NesMemory mem, CVram vram) { ppuRegister.Update(mem, vram); }
public void Update(NesMemory mem, CVram vram) { if (mem.IsWrite(0x2000) == true) { REG2000 = mem.GetDataByte(0x2000); Logger.LogNormal("2000:%02x\n" + REG2000); } if (mem.IsWrite(0x2001) == true) { REG2001 = mem.GetDataByte(0x2001); Logger.LogNormal("2001:%02x\n" + REG2001); } if (mem.IsWrite(0x2002) == true) { REG2002 = mem.GetDataByte(0x2002); Logger.LogNormal("2002:%02x\n" + REG2002); } if (mem.IsWrite(0x2003) == true) { REG2003 = mem.GetDataByte(0x2003); Logger.LogNormal("2003:%02x\n" + REG2003); } if (mem.IsWrite(0x2004) == true) { REG2004 = mem.GetDataByte(0x2004); Logger.LogNormal("2004:%02x\n" + REG2004); } if (mem.IsWrite(0x2005) == true) { REG2005 = mem.GetDataByte(0x2005); Logger.LogNormal("2005:%02x\n" + REG2005); } if (mem.IsWrite(0x2006) == true) { REG2006 = mem.GetDataByte(0x2006); Logger.LogNormal("2006:%02x\n" + REG2006); address = ( UInt16 )((address << 8) | REG2006); Logger.LogNormal("address:%04x\n" + address); } if (mem.IsWrite(0x2007) == true) { REG2007 = mem.GetDataByte(0x2007); Logger.LogNormal("2007:%02x\n" + REG2007); vram.SetDataByte(address, REG2007); if ((REG2000 & 0x04) == 0x00) { address += 1; } else { address += 32; } Logger.LogNormal("address:%04x\n" + address); } }