fixing ppu vram write

This commit is contained in:
Clément Le Bihan
2021-02-02 00:20:22 +01:00
parent ced42a3bf9
commit 58f7fe6a2c
2 changed files with 7 additions and 6 deletions
+3 -3
View File
@@ -126,7 +126,7 @@ namespace ComSquare::PPU
//std::cout << "vmdatal" << std::endl;
if (!this->_registers._inidisp.fblank) {
this->_registers._vmdata.vmdatal = data;
this->vram->write_internal(getVramAddress(), data);
this->vram->write_internal(this->getVramAddress(), data);
}
if (!this->_registers._vmain.incrementMode)
this->_registers._vmadd.vmadd += this->_registers._incrementAmount;
@@ -135,7 +135,7 @@ namespace ComSquare::PPU
//std::cout << "vmdatah" << std::endl;
if (!this->_registers._inidisp.fblank) {
this->_registers._vmdata.vmdatah = data;
this->vram->write_internal(getVramAddress(), data);
this->vram->write_internal(this->getVramAddress() + 1, data);
}
if (this->_registers._vmain.incrementMode)
this->_registers._vmadd.vmadd += this->_registers._incrementAmount;
@@ -221,7 +221,7 @@ namespace ComSquare::PPU
uint16_t PPU::getVramAddress()
{
uint16_t vanillaAddress = this->_registers._vmadd.vmadd;
uint16_t vanillaAddress = this->_registers._vmadd.vmadd * 2;
switch (this->_registers._vmain.addressRemapping) {
case 0b00: