diff --git a/tests/PPU/testPpuWrite.cpp b/tests/PPU/testPpuWrite.cpp index 814edb9..036d214 100644 --- a/tests/PPU/testPpuWrite.cpp +++ b/tests/PPU/testPpuWrite.cpp @@ -15,91 +15,91 @@ Test(PPU_write, inidisp_data_full_ones) { Init() snes._bus->write(0x2100, 0b11111111); - cr_assert_eq(snes.ppu->_inidisp.fblank, true); - cr_assert_eq(snes.ppu->_inidisp.brightness, 0xF); + cr_assert_eq(snes.ppu->_registers._inidisp.fblank, true); + cr_assert_eq(snes.ppu->_registers._inidisp.brightness, 0xF); } Test(PPU_write, inidisp_data_full_zeros) { Init() snes._bus->write(0x2100, 0b00000000); - cr_assert_eq(snes.ppu->_inidisp.fblank, false); - cr_assert_eq(snes.ppu->_inidisp.brightness, 0x0); + cr_assert_eq(snes.ppu->_registers._inidisp.fblank, false); + cr_assert_eq(snes.ppu->_registers._inidisp.brightness, 0x0); } Test(PPU_write, inidisp_data_fBlank_on_brghtness_off) { Init() snes._bus->write(0x2100, 0b10000000); - cr_assert_eq(snes.ppu->_inidisp.fblank, true); - cr_assert_eq(snes.ppu->_inidisp.brightness, 0x0); + cr_assert_eq(snes.ppu->_registers._inidisp.fblank, true); + cr_assert_eq(snes.ppu->_registers._inidisp.brightness, 0x0); } Test(PPU_write, inidisp_data_fBlank_off_brghtness_max) { Init() snes._bus->write(0x2100, 0b00001111); - cr_assert_eq(snes.ppu->_inidisp.fblank, false); - cr_assert_eq(snes.ppu->_inidisp.brightness, 0xF); + cr_assert_eq(snes.ppu->_registers._inidisp.fblank, false); + cr_assert_eq(snes.ppu->_registers._inidisp.brightness, 0xF); } Test(PPU_write, inidisp_data_fBlank_off_brghtness_half) { Init() snes._bus->write(0x2100, 0b00000101); - cr_assert_eq(snes.ppu->_inidisp.fblank, false); - cr_assert_eq(snes.ppu->_inidisp.brightness, 0x5); + cr_assert_eq(snes.ppu->_registers._inidisp.fblank, false); + cr_assert_eq(snes.ppu->_registers._inidisp.brightness, 0x5); } Test(PPU_write, obsel_111_object_size_and_all_null) { Init() snes._bus->write(0x2101, 0b11100000); - cr_assert_eq(snes.ppu->_obsel.objectSize, 0b111); - cr_assert_eq(snes.ppu->_obsel.nameSelect, 0b00); - cr_assert_eq(snes.ppu->_obsel.nameBaseSelect, 0b000); + cr_assert_eq(snes.ppu->_registers._obsel.objectSize, 0b111); + cr_assert_eq(snes.ppu->_registers._obsel.nameSelect, 0b00); + cr_assert_eq(snes.ppu->_registers._obsel.nameBaseSelect, 0b000); } Test(PPU_write, obsel_data_full) { Init() snes._bus->write(0x2101, 0b11111111); - cr_assert_eq(snes.ppu->_obsel.objectSize, 0b111); - cr_assert_eq(snes.ppu->_obsel.nameSelect, 0b11); - cr_assert_eq(snes.ppu->_obsel.nameBaseSelect, 0b111); + cr_assert_eq(snes.ppu->_registers._obsel.objectSize, 0b111); + cr_assert_eq(snes.ppu->_registers._obsel.nameSelect, 0b11); + cr_assert_eq(snes.ppu->_registers._obsel.nameBaseSelect, 0b111); } Test(PPU_write, obsel_data_full_nameselect) { Init() snes._bus->write(0x2101, 0b00011000); - cr_assert_eq(snes.ppu->_obsel.objectSize, 0b000); - cr_assert_eq(snes.ppu->_obsel.nameSelect, 0b11); - cr_assert_eq(snes.ppu->_obsel.nameBaseSelect, 0b000); + cr_assert_eq(snes.ppu->_registers._obsel.objectSize, 0b000); + cr_assert_eq(snes.ppu->_registers._obsel.nameSelect, 0b11); + cr_assert_eq(snes.ppu->_registers._obsel.nameBaseSelect, 0b000); } Test(PPU_write, obsel_data_full_baseselect) { Init() snes._bus->write(0x2101, 0b00000111); - cr_assert_eq(snes.ppu->_obsel.objectSize, 0b000); - cr_assert_eq(snes.ppu->_obsel.nameSelect, 0b00); - cr_assert_eq(snes.ppu->_obsel.nameBaseSelect, 0b111); + cr_assert_eq(snes.ppu->_registers._obsel.objectSize, 0b000); + cr_assert_eq(snes.ppu->_registers._obsel.nameSelect, 0b00); + cr_assert_eq(snes.ppu->_registers._obsel.nameBaseSelect, 0b111); } Test(PPU_write, oamaddl_data_full) { Init() snes._bus->write(0x2102, 0b11111111); - cr_assert_eq(snes.ppu->_oamadd.oamAddress, 0b011111111); + cr_assert_eq(snes.ppu->_registers._oamadd.oamAddress, 0b011111111); } Test(PPU_write, oamaddh_data_full) { Init() snes._bus->write(0x2103, 0b11111111); - cr_assert_eq(snes.ppu->_oamadd.objPriorityActivationBit, true); - cr_assert_eq(snes.ppu->_oamadd.oamAddress, 0b100000000); + cr_assert_eq(snes.ppu->_registers._oamadd.objPriorityActivationBit, true); + cr_assert_eq(snes.ppu->_registers._oamadd.oamAddress, 0b100000000); } Test(PPU_write, oamaddlh_data_full) @@ -107,8 +107,8 @@ Test(PPU_write, oamaddlh_data_full) Init() snes._bus->write(0x2102, 0b11111111); snes._bus->write(0x2103, 0b11111111); - cr_assert_eq(snes.ppu->_oamadd.objPriorityActivationBit, true); - cr_assert_eq(snes.ppu->_oamadd.oamAddress, 0b111111111); + cr_assert_eq(snes.ppu->_registers._oamadd.objPriorityActivationBit, true); + cr_assert_eq(snes.ppu->_registers._oamadd.oamAddress, 0b111111111); } Test(PPU_write, oamaddlh_data_full_priorityBit_off) @@ -116,8 +116,8 @@ Test(PPU_write, oamaddlh_data_full_priorityBit_off) Init() snes._bus->write(0x2102, 0b11111111); snes._bus->write(0x2103, 0b01111111); - cr_assert_eq(snes.ppu->_oamadd.objPriorityActivationBit, false); - cr_assert_eq(snes.ppu->_oamadd.oamAddress, 0b111111111); + cr_assert_eq(snes.ppu->_registers._oamadd.objPriorityActivationBit, false); + cr_assert_eq(snes.ppu->_registers._oamadd.oamAddress, 0b111111111); } Test(PPU_write, oamaddlh_oamAdress_11_priorityBit_on) @@ -125,141 +125,141 @@ Test(PPU_write, oamaddlh_oamAdress_11_priorityBit_on) Init() snes._bus->write(0x2102, 0b00001011); snes._bus->write(0x2103, 0b10011100); - cr_assert_eq(snes.ppu->_oamadd.objPriorityActivationBit, true); - cr_assert_eq(snes.ppu->_oamadd.oamAddress, 11); + cr_assert_eq(snes.ppu->_registers._oamadd.objPriorityActivationBit, true); + cr_assert_eq(snes.ppu->_registers._oamadd.oamAddress, 11); } Test(PPU_write, bgmode_data_full) { Init() snes._bus->write(0x2105, 0b11111111); - cr_assert_eq(snes.ppu->_bgmode.bgMode, 7); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg1, true); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg2, true); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg3, true); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg4, true); - cr_assert_eq(snes.ppu->_bgmode.mode1Bg3PriorityBit, true); + cr_assert_eq(snes.ppu->_registers._bgmode.bgMode, 7); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg1, true); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg2, true); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg3, true); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg4, true); + cr_assert_eq(snes.ppu->_registers._bgmode.mode1Bg3PriorityBit, true); } Test(PPU_write, bgmode_bgmode_5_and_bg24_on) { Init() snes._bus->write(0x2105, 0b10100101); - cr_assert_eq(snes.ppu->_bgmode.bgMode, 5); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg1, false); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg2, true); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg3, false); - cr_assert_eq(snes.ppu->_bgmode.characterSizeBg4, true); - cr_assert_eq(snes.ppu->_bgmode.mode1Bg3PriorityBit, false); + cr_assert_eq(snes.ppu->_registers._bgmode.bgMode, 5); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg1, false); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg2, true); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg3, false); + cr_assert_eq(snes.ppu->_registers._bgmode.characterSizeBg4, true); + cr_assert_eq(snes.ppu->_registers._bgmode.mode1Bg3PriorityBit, false); } Test(PPU_write, mosaic_data_full) { Init() snes._bus->write(0x2106, 0b11111111); - cr_assert_eq(snes.ppu->_mosaic.affectBg1, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg2, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg3, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg4, true); - cr_assert_eq(snes.ppu->_mosaic.pixelSize, 0xF); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg1, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg2, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg3, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg4, true); + cr_assert_eq(snes.ppu->_registers._mosaic.pixelSize, 0xF); } Test(PPU_write, mosaic_affectbg23_w_1x1_size) { Init() snes._bus->write(0x2106, 0b00000110); - cr_assert_eq(snes.ppu->_mosaic.affectBg1, false); - cr_assert_eq(snes.ppu->_mosaic.affectBg2, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg3, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg4, false); - cr_assert_eq(snes.ppu->_mosaic.pixelSize, 0x0); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg1, false); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg2, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg3, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg4, false); + cr_assert_eq(snes.ppu->_registers._mosaic.pixelSize, 0x0); } Test(PPU_write, mosaic_affectbg14_w_2x2_size) { Init() snes._bus->write(0x2106, 0b00101001); - cr_assert_eq(snes.ppu->_mosaic.affectBg1, true); - cr_assert_eq(snes.ppu->_mosaic.affectBg2, false); - cr_assert_eq(snes.ppu->_mosaic.affectBg3, false); - cr_assert_eq(snes.ppu->_mosaic.affectBg4, true); - cr_assert_eq(snes.ppu->_mosaic.pixelSize, 0x2); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg1, true); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg2, false); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg3, false); + cr_assert_eq(snes.ppu->_registers._mosaic.affectBg4, true); + cr_assert_eq(snes.ppu->_registers._mosaic.pixelSize, 0x2); } Test(PPU_write, bg1sc_data_full) { Init() snes._bus->write(0x2107, 0b11111111); - cr_assert_eq(snes.ppu->_bgsc[0].tilemapAddress, 0b111111); - cr_assert_eq(snes.ppu->_bgsc[0].tilemapHorizontalMirroring, true); - cr_assert_eq(snes.ppu->_bgsc[0].tilemapVerticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[0].tilemapAddress, 0b111111); + cr_assert_eq(snes.ppu->_registers._bgsc[0].tilemapHorizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[0].tilemapVerticalMirroring, true); } Test(PPU_write, bg2sc_data_full) { Init() snes._bus->write(0x2108, 0b11111111); - cr_assert_eq(snes.ppu->_bgsc[1].tilemapAddress, 0b111111); - cr_assert_eq(snes.ppu->_bgsc[1].tilemapHorizontalMirroring, true); - cr_assert_eq(snes.ppu->_bgsc[1].tilemapVerticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[1].tilemapAddress, 0b111111); + cr_assert_eq(snes.ppu->_registers._bgsc[1].tilemapHorizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[1].tilemapVerticalMirroring, true); } Test(PPU_write, bg3sc_data_full) { Init() snes._bus->write(0x2109, 0b11111111); - cr_assert_eq(snes.ppu->_bgsc[2].tilemapAddress, 0b111111); - cr_assert_eq(snes.ppu->_bgsc[2].tilemapHorizontalMirroring, true); - cr_assert_eq(snes.ppu->_bgsc[2].tilemapVerticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[2].tilemapAddress, 0b111111); + cr_assert_eq(snes.ppu->_registers._bgsc[2].tilemapHorizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[2].tilemapVerticalMirroring, true); } Test(PPU_write, bg4sc_data_full) { Init() snes._bus->write(0x210A, 0b11111111); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapAddress, 0b111111); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapHorizontalMirroring, true); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapVerticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapAddress, 0b111111); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring, true); } Test(PPU_write, bg4sc_data_null) { Init() snes._bus->write(0x210A, 0b00000000); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapAddress, 0); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapHorizontalMirroring, false); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapVerticalMirroring, false); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapAddress, 0); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring, false); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring, false); } Test(PPU_write, bg4sc_horizontal_off_vertical_on_random_tilemapAdress) { Init() snes._bus->write(0x210A, 0b11000110); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapAddress, 0b110001); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapHorizontalMirroring, false); - cr_assert_eq(snes.ppu->_bgsc[3].tilemapVerticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapAddress, 0b110001); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring, false); + cr_assert_eq(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring, true); } Test(PPU_write, bg12nba_data_full) { Init() snes._bus->write(0x210B, 0b11111111); - cr_assert_eq(snes.ppu->_bgnba[0].baseAddressBg1a3, 0b1111); - cr_assert_eq(snes.ppu->_bgnba[0].baseAddressBg2a4, 0b1111); + cr_assert_eq(snes.ppu->_registers._bgnba[0].baseAddressBg1a3, 0b1111); + cr_assert_eq(snes.ppu->_registers._bgnba[0].baseAddressBg2a4, 0b1111); } Test(PPU_write, bg34nba_data_full) { Init() snes._bus->write(0x210C, 0b11111111); - cr_assert_eq(snes.ppu->_bgnba[1].baseAddressBg1a3, 0b1111); - cr_assert_eq(snes.ppu->_bgnba[1].baseAddressBg2a4, 0b1111); + cr_assert_eq(snes.ppu->_registers._bgnba[1].baseAddressBg1a3, 0b1111); + cr_assert_eq(snes.ppu->_registers._bgnba[1].baseAddressBg2a4, 0b1111); } Test(PPU_write, bg12nba_data_random_data) { Init() snes._bus->write(0x210B, 0b10101010); - cr_assert_eq(snes.ppu->_bgnba[0].baseAddressBg1a3, 0b1010); - cr_assert_eq(snes.ppu->_bgnba[0].baseAddressBg2a4, 0b1010); + cr_assert_eq(snes.ppu->_registers._bgnba[0].baseAddressBg1a3, 0b1010); + cr_assert_eq(snes.ppu->_registers._bgnba[0].baseAddressBg2a4, 0b1010); } \ No newline at end of file diff --git a/tests/PPU/testPpuWriteFromVmain.cpp b/tests/PPU/testPpuWriteFromVmain.cpp index d8fdae7..5fe1fb7 100644 --- a/tests/PPU/testPpuWriteFromVmain.cpp +++ b/tests/PPU/testPpuWriteFromVmain.cpp @@ -15,36 +15,36 @@ Test(PPU_write_2, vmain_data_full) { Init() snes._bus->write(0x2115, 0b11111111); - cr_assert_eq(snes.ppu->_vmain.incrementMode, true); - cr_assert_eq(snes.ppu->_vmain.addressRemapping, 0b11); - cr_assert_eq(snes.ppu->_vmain.incrementAmount, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementMode, true); + cr_assert_eq(snes.ppu->_registers._vmain.addressRemapping, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementAmount, 0b11); } Test(PPU_write_2, vmain_incrementmode_off_false_else_full) { Init() snes._bus->write(0x2115, 0b01111111); - cr_assert_eq(snes.ppu->_vmain.incrementMode, false); - cr_assert_eq(snes.ppu->_vmain.addressRemapping, 0b11); - cr_assert_eq(snes.ppu->_vmain.incrementAmount, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementMode, false); + cr_assert_eq(snes.ppu->_registers._vmain.addressRemapping, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementAmount, 0b11); } Test(PPU_write_2, vmain_addressremaping_null_else_full) { Init() snes._bus->write(0x2115, 0b11110011); - cr_assert_eq(snes.ppu->_vmain.incrementMode, true); - cr_assert_eq(snes.ppu->_vmain.addressRemapping, 0b00); - cr_assert_eq(snes.ppu->_vmain.incrementAmount, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementMode, true); + cr_assert_eq(snes.ppu->_registers._vmain.addressRemapping, 0b00); + cr_assert_eq(snes.ppu->_registers._vmain.incrementAmount, 0b11); } Test(PPU_write_2, vmain_incrementamount_null_else_full) { Init() snes._bus->write(0x2115, 0b11111100); - cr_assert_eq(snes.ppu->_vmain.incrementMode, true); - cr_assert_eq(snes.ppu->_vmain.addressRemapping, 0b11); - cr_assert_eq(snes.ppu->_vmain.incrementAmount, 0b00); + cr_assert_eq(snes.ppu->_registers._vmain.incrementMode, true); + cr_assert_eq(snes.ppu->_registers._vmain.addressRemapping, 0b11); + cr_assert_eq(snes.ppu->_registers._vmain.incrementAmount, 0b00); } Test(PPU_write_2, vmadd_full_data) @@ -52,7 +52,7 @@ Test(PPU_write_2, vmadd_full_data) Init() snes._bus->write(0x2116, 0b11111111); snes._bus->write(0x2117, 0b11111111); - cr_assert_eq(snes.ppu->_vmadd.vmadd, 0b1111111111111111); + cr_assert_eq(snes.ppu->_registers._vmadd.vmadd, 0b1111111111111111); } Test(PPU_write_2, vmadd_full_high_byte_null) @@ -60,7 +60,7 @@ Test(PPU_write_2, vmadd_full_high_byte_null) Init() snes._bus->write(0x2116, 0b11111111); snes._bus->write(0x2117, 0b00000000); - cr_assert_eq(snes.ppu->_vmadd.vmadd, 0b0000000011111111); + cr_assert_eq(snes.ppu->_registers._vmadd.vmadd, 0b0000000011111111); } Test(PPU_write_2, vmdata_full_data) @@ -68,7 +68,7 @@ Test(PPU_write_2, vmdata_full_data) Init() snes._bus->write(0x2118, 0b11111111); snes._bus->write(0x2119, 0b11111111); - cr_assert_eq(snes.ppu->_vmdata.vmdata, 0b1111111111111111); + cr_assert_eq(snes.ppu->_registers._vmdata.vmdata, 0b1111111111111111); } Test(PPU_write_2, vmdata_full_high_byte_null) @@ -76,15 +76,15 @@ Test(PPU_write_2, vmdata_full_high_byte_null) Init() snes._bus->write(0x2118, 0b11111111); snes._bus->write(0x2119, 0b00000000); - cr_assert_eq(snes.ppu->_vmdata.vmdata, 0b0000000011111111); + cr_assert_eq(snes.ppu->_registers._vmdata.vmdata, 0b0000000011111111); } Test(PPU_write_2, cgadd_full_high_byte_null) { Init() snes._bus->write(0x2121, 0b11111111); - cr_assert_eq(snes.ppu->_cgadd, 0b11111111); - cr_assert_eq(snes.ppu->_isLowByte, true); + cr_assert_eq(snes.ppu->_registers._cgadd, 0b11111111); + cr_assert_eq(snes.ppu->_registers._isLowByte, true); } Test(PPU_write_2, cgdata_data_full) @@ -92,181 +92,196 @@ Test(PPU_write_2, cgdata_data_full) Init() snes._bus->write(0x2121, 0x0); snes._bus->write(0x2122, 0b11111111); - cr_assert_eq(snes.ppu->_cgdata.cgdatal, 0b11111111); - cr_assert_eq(snes.ppu->_isLowByte, false); - int address = snes.ppu->_cgadd; + cr_assert_eq(snes.ppu->_registers._cgdata.cgdatal, 0b11111111); + cr_assert_eq(snes.ppu->_registers._isLowByte, false); + int address = snes.ppu->_registers._cgadd; snes._bus->write(0x2122, 0b11111000); - cr_assert_eq(snes.ppu->_cgdata.cgdatah, 0b11111000); - cr_assert_eq(snes.ppu->_isLowByte, true); - cr_assert_eq(snes.ppu->_cgadd, address + 1); + cr_assert_eq(snes.ppu->_registers._cgdata.cgdatah, 0b11111000); + cr_assert_eq(snes.ppu->_registers._isLowByte, true); + cr_assert_eq(snes.ppu->_registers._cgadd, address + 1); } Test(PPU_write_2, m7sel_data_full) { Init() snes._bus->write(0x211A, 0b11111111); - cr_assert_eq(snes.ppu->_m7sel.playingFieldSize, true); - cr_assert_eq(snes.ppu->_m7sel.emptySpaceFill, true); - cr_assert_eq(snes.ppu->_m7sel.horizontalMirroring, true); - cr_assert_eq(snes.ppu->_m7sel.verticalMirroring, true); + cr_assert_eq(snes.ppu->_registers._m7sel.playingFieldSize, true); + cr_assert_eq(snes.ppu->_registers._m7sel.emptySpaceFill, true); + cr_assert_eq(snes.ppu->_registers._m7sel.horizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._m7sel.verticalMirroring, true); } Test(PPU_write_2, m7sel_data_actual) { Init() snes._bus->write(0x211A, 0b01111101); - cr_assert_eq(snes.ppu->_m7sel.playingFieldSize, false); - cr_assert_eq(snes.ppu->_m7sel.emptySpaceFill, true); - cr_assert_eq(snes.ppu->_m7sel.horizontalMirroring, true); - cr_assert_eq(snes.ppu->_m7sel.verticalMirroring, false); + cr_assert_eq(snes.ppu->_registers._m7sel.playingFieldSize, false); + cr_assert_eq(snes.ppu->_registers._m7sel.emptySpaceFill, true); + cr_assert_eq(snes.ppu->_registers._m7sel.horizontalMirroring, true); + cr_assert_eq(snes.ppu->_registers._m7sel.verticalMirroring, false); } Test(PPU_write_2, w12sel_data_full) { Init() snes._bus->write(0x2123, 0b11111111); - cr_assert_eq(snes.ppu->_wsel[0].window1InversionForBg1Bg2Obj, true); - cr_assert_eq(snes.ppu->_wsel[0].enableWindow1ForBg1Bg2Obj, true); - cr_assert_eq(snes.ppu->_wsel[0].window2InversionForBg1Bg3Obj, true); - cr_assert_eq(snes.ppu->_wsel[0].enableWindow2ForBg1Bg3Obj, true); - cr_assert_eq(snes.ppu->_wsel[0].window1InversionForBg2Bg4Color, true); - cr_assert_eq(snes.ppu->_wsel[0].enableWindow1ForBg2Bg4Color, true); - cr_assert_eq(snes.ppu->_wsel[0].window2InversionForBg2Bg4Color, true); - cr_assert_eq(snes.ppu->_wsel[0].enableWindow2ForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].window1InversionForBg1Bg2Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].enableWindow1ForBg1Bg2Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].window2InversionForBg1Bg3Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].enableWindow2ForBg1Bg3Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].window1InversionForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].enableWindow1ForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].window2InversionForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[0].enableWindow2ForBg2Bg4Color, true); } Test(PPU_write_2, w34sel_data_full) { Init() snes._bus->write(0x2124, 0b10101010); - cr_assert_eq(snes.ppu->_wsel[1].window1InversionForBg1Bg2Obj, true); - cr_assert_eq(snes.ppu->_wsel[1].enableWindow1ForBg1Bg2Obj, false); - cr_assert_eq(snes.ppu->_wsel[1].window2InversionForBg1Bg3Obj, true); - cr_assert_eq(snes.ppu->_wsel[1].enableWindow2ForBg1Bg3Obj, false); - cr_assert_eq(snes.ppu->_wsel[1].window1InversionForBg2Bg4Color, true); - cr_assert_eq(snes.ppu->_wsel[1].enableWindow1ForBg2Bg4Color, false); - cr_assert_eq(snes.ppu->_wsel[1].window2InversionForBg2Bg4Color, true); - cr_assert_eq(snes.ppu->_wsel[1].enableWindow2ForBg2Bg4Color, false); + cr_assert_eq(snes.ppu->_registers._wsel[1].window1InversionForBg1Bg2Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[1].enableWindow1ForBg1Bg2Obj, false); + cr_assert_eq(snes.ppu->_registers._wsel[1].window2InversionForBg1Bg3Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[1].enableWindow2ForBg1Bg3Obj, false); + cr_assert_eq(snes.ppu->_registers._wsel[1].window1InversionForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[1].enableWindow1ForBg2Bg4Color, false); + cr_assert_eq(snes.ppu->_registers._wsel[1].window2InversionForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[1].enableWindow2ForBg2Bg4Color, false); } Test(PPU_write_2, wobjsel_data_full) { Init() snes._bus->write(0x2125, 0b10110001); - cr_assert_eq(snes.ppu->_wsel[2].window1InversionForBg1Bg2Obj, true); - cr_assert_eq(snes.ppu->_wsel[2].enableWindow1ForBg1Bg2Obj, false); - cr_assert_eq(snes.ppu->_wsel[2].window2InversionForBg1Bg3Obj, true); - cr_assert_eq(snes.ppu->_wsel[2].enableWindow2ForBg1Bg3Obj, true); - cr_assert_eq(snes.ppu->_wsel[2].window1InversionForBg2Bg4Color, false); - cr_assert_eq(snes.ppu->_wsel[2].enableWindow1ForBg2Bg4Color, false); - cr_assert_eq(snes.ppu->_wsel[2].window2InversionForBg2Bg4Color, false); - cr_assert_eq(snes.ppu->_wsel[2].enableWindow2ForBg2Bg4Color, true); + cr_assert_eq(snes.ppu->_registers._wsel[2].window1InversionForBg1Bg2Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[2].enableWindow1ForBg1Bg2Obj, false); + cr_assert_eq(snes.ppu->_registers._wsel[2].window2InversionForBg1Bg3Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[2].enableWindow2ForBg1Bg3Obj, true); + cr_assert_eq(snes.ppu->_registers._wsel[2].window1InversionForBg2Bg4Color, false); + cr_assert_eq(snes.ppu->_registers._wsel[2].enableWindow1ForBg2Bg4Color, false); + cr_assert_eq(snes.ppu->_registers._wsel[2].window2InversionForBg2Bg4Color, false); + cr_assert_eq(snes.ppu->_registers._wsel[2].enableWindow2ForBg2Bg4Color, true); } Test(PPU_write_2, wbglog_data_full) { Init() snes._bus->write(0x212A, 0b10110001); - cr_assert_eq(snes.ppu->_wbglog.maskLogicBg1, 0b10); - cr_assert_eq(snes.ppu->_wbglog.maskLogicBg2, 0b11); - cr_assert_eq(snes.ppu->_wbglog.maskLogicBg3, 0b00); - cr_assert_eq(snes.ppu->_wbglog.maskLogicBg4, 0b01); + cr_assert_eq(snes.ppu->_registers._wbglog.maskLogicBg1, 0b10); + cr_assert_eq(snes.ppu->_registers._wbglog.maskLogicBg2, 0b11); + cr_assert_eq(snes.ppu->_registers._wbglog.maskLogicBg3, 0b00); + cr_assert_eq(snes.ppu->_registers._wbglog.maskLogicBg4, 0b01); } Test(PPU_write_2, wobjlog_data_full) { Init() snes._bus->write(0x212B, 0b10110001); - cr_assert_eq(snes.ppu->_wobjlog.maskLogicObj, 0b01); - cr_assert_eq(snes.ppu->_wobjlog.maskLogicColor, 0b00); + cr_assert_eq(snes.ppu->_registers._wobjlog.maskLogicObj, 0b01); + cr_assert_eq(snes.ppu->_registers._wobjlog.maskLogicColor, 0b00); } Test(PPU_write_2, tm_data_full) { Init() snes._bus->write(0x212C, 0b10110001); - cr_assert_eq(snes.ppu->_t[0].enableWindowDisplayBg1, true); - cr_assert_eq(snes.ppu->_t[0].enableWindowDisplayBg2, false); - cr_assert_eq(snes.ppu->_t[0].enableWindowDisplayBg3, false); - cr_assert_eq(snes.ppu->_t[0].enableWindowDisplayBg4, false); - cr_assert_eq(snes.ppu->_t[0].enableWindowDisplayObj, true); + cr_assert_eq(snes.ppu->_registers._t[0].enableWindowDisplayBg1, true); + cr_assert_eq(snes.ppu->_registers._t[0].enableWindowDisplayBg2, false); + cr_assert_eq(snes.ppu->_registers._t[0].enableWindowDisplayBg3, false); + cr_assert_eq(snes.ppu->_registers._t[0].enableWindowDisplayBg4, false); + cr_assert_eq(snes.ppu->_registers._t[0].enableWindowDisplayObj, true); } Test(PPU_write_2, ts_data_full) { Init() snes._bus->write(0x212D, 0b10101110); - cr_assert_eq(snes.ppu->_t[1].enableWindowDisplayBg1, false); - cr_assert_eq(snes.ppu->_t[1].enableWindowDisplayBg2, true); - cr_assert_eq(snes.ppu->_t[1].enableWindowDisplayBg3, true); - cr_assert_eq(snes.ppu->_t[1].enableWindowDisplayBg4, true); - cr_assert_eq(snes.ppu->_t[1].enableWindowDisplayObj, false); + cr_assert_eq(snes.ppu->_registers._t[1].enableWindowDisplayBg1, false); + cr_assert_eq(snes.ppu->_registers._t[1].enableWindowDisplayBg2, true); + cr_assert_eq(snes.ppu->_registers._t[1].enableWindowDisplayBg3, true); + cr_assert_eq(snes.ppu->_registers._t[1].enableWindowDisplayBg4, true); + cr_assert_eq(snes.ppu->_registers._t[1].enableWindowDisplayObj, false); } Test(PPU_write_2, tmw_data_full) { Init() snes._bus->write(0x212E, 0b10101110); - cr_assert_eq(snes.ppu->_tw[0].enableWindowMaskingBg1, false); - cr_assert_eq(snes.ppu->_tw[0].enableWindowMaskingBg2, true); - cr_assert_eq(snes.ppu->_tw[0].enableWindowMaskingBg3, true); - cr_assert_eq(snes.ppu->_tw[0].enableWindowMaskingBg4, true); - cr_assert_eq(snes.ppu->_tw[0].enableWindowMaskingObj, false); + cr_assert_eq(snes.ppu->_registers._tw[0].enableWindowMaskingBg1, false); + cr_assert_eq(snes.ppu->_registers._tw[0].enableWindowMaskingBg2, true); + cr_assert_eq(snes.ppu->_registers._tw[0].enableWindowMaskingBg3, true); + cr_assert_eq(snes.ppu->_registers._tw[0].enableWindowMaskingBg4, true); + cr_assert_eq(snes.ppu->_registers._tw[0].enableWindowMaskingObj, false); } Test(PPU_write_2, tsw_data_full) { Init() snes._bus->write(0x212F, 0b10100011); - cr_assert_eq(snes.ppu->_tw[1].enableWindowMaskingBg1, true); - cr_assert_eq(snes.ppu->_tw[1].enableWindowMaskingBg2, true); - cr_assert_eq(snes.ppu->_tw[1].enableWindowMaskingBg3, false); - cr_assert_eq(snes.ppu->_tw[1].enableWindowMaskingBg4, false); - cr_assert_eq(snes.ppu->_tw[1].enableWindowMaskingObj, false); + cr_assert_eq(snes.ppu->_registers._tw[1].enableWindowMaskingBg1, true); + cr_assert_eq(snes.ppu->_registers._tw[1].enableWindowMaskingBg2, true); + cr_assert_eq(snes.ppu->_registers._tw[1].enableWindowMaskingBg3, false); + cr_assert_eq(snes.ppu->_registers._tw[1].enableWindowMaskingBg4, false); + cr_assert_eq(snes.ppu->_registers._tw[1].enableWindowMaskingObj, false); } Test(PPU_write_2, cgwsel_data_full) { Init() snes._bus->write(0x2130, 0b10111001); - cr_assert_eq(snes.ppu->_cgwsel.clipColorToBlackBeforeMath, 0b10); - cr_assert_eq(snes.ppu->_cgwsel.preventColorMath, 0b11); - cr_assert_eq(snes.ppu->_cgwsel.addSubscreen, false); - cr_assert_eq(snes.ppu->_cgwsel.directColorMode, true); + cr_assert_eq(snes.ppu->_registers._cgwsel.clipColorToBlackBeforeMath, 0b10); + cr_assert_eq(snes.ppu->_registers._cgwsel.preventColorMath, 0b11); + cr_assert_eq(snes.ppu->_registers._cgwsel.addSubscreen, false); + cr_assert_eq(snes.ppu->_registers._cgwsel.directColorMode, true); } Test(PPU_write_2, cgadsub_data_full) { Init() snes._bus->write(0x2131, 0b10111001); - cr_assert_eq(snes.ppu->_cgadsub.addSubtractSelect, true); - cr_assert_eq(snes.ppu->_cgadsub.halfColorMath, false); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathBackdrop, true); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathObj, true); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathBg4, true); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathBg3, false); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathBg2, false); - cr_assert_eq(snes.ppu->_cgadsub.enableColorMathBg1, true); + cr_assert_eq(snes.ppu->_registers._cgadsub.addSubtractSelect, true); + cr_assert_eq(snes.ppu->_registers._cgadsub.halfColorMath, false); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathBackdrop, true); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathObj, true); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathBg4, true); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathBg3, false); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathBg2, false); + cr_assert_eq(snes.ppu->_registers._cgadsub.enableColorMathBg1, true); } Test(PPU_write_2, coldata_data_full) { Init() snes._bus->write(0x2132, 0b10111001); - cr_assert_eq(snes.ppu->_coldata.blue, true); - cr_assert_eq(snes.ppu->_coldata.green, false); - cr_assert_eq(snes.ppu->_coldata.red, true); - cr_assert_eq(snes.ppu->_coldata.colorIntensity, 0b11001); + cr_assert_eq(snes.ppu->_registers._coldata.blue, true); + cr_assert_eq(snes.ppu->_registers._coldata.green, false); + cr_assert_eq(snes.ppu->_registers._coldata.red, true); + cr_assert_eq(snes.ppu->_registers._coldata.colorIntensity, 0b11001); } Test(PPU_write_2, setini_data_full) { Init() snes._bus->write(0x2133, 0b10111001); - cr_assert_eq(snes.ppu->_setini.externalSync, true); - cr_assert_eq(snes.ppu->_setini.mode7ExtBg, false); - cr_assert_eq(snes.ppu->_setini.enablePseudoHiresMode, true); - cr_assert_eq(snes.ppu->_setini.overscanMode, false); - cr_assert_eq(snes.ppu->_setini.objInterlace, false); - cr_assert_eq(snes.ppu->_setini.screenInterlace, true); + cr_assert_eq(snes.ppu->_registers._setini.externalSync, true); + cr_assert_eq(snes.ppu->_registers._setini.mode7ExtBg, false); + cr_assert_eq(snes.ppu->_registers._setini.enablePseudoHiresMode, true); + cr_assert_eq(snes.ppu->_registers._setini.overscanMode, false); + cr_assert_eq(snes.ppu->_registers._setini.objInterlace, false); + cr_assert_eq(snes.ppu->_registers._setini.screenInterlace, true); +} + +Test(PPU_write_2, m7a_data_full) +{ + Init() + snes._bus->write(0x211B, 0b10111001); + cr_assert_eq(snes.ppu->_registers._m7[0].m7l, 0b10111001); +} + +Test(PPU_write_2, m7c_data_low_and_high_byte) +{ + Init() + snes._bus->write(0x211D, 0b10111001); + snes._bus->write(0x211D, 0b11111111); + cr_assert_eq(snes.ppu->_registers._m7[2].m7, 0b1011100111111111); } \ No newline at end of file diff --git a/tests/testMemoryBus.cpp b/tests/testMemoryBus.cpp index f1d27f8..81600be 100644 --- a/tests/testMemoryBus.cpp +++ b/tests/testMemoryBus.cpp @@ -350,7 +350,7 @@ Test(BusRead, ReadPPU) Init() uint8_t data; - snes.ppu->mpy.mpyl = 123; + snes.ppu->_registers._mpy.mpyl = 123; data = snes._bus->read(0x002134); cr_assert_eq(data, 123); } @@ -428,7 +428,7 @@ Test(BusWrite, WritePPU) Init() snes._bus->write(0x002106, 123); - cr_assert_eq(snes.ppu->_mosaic.raw, 123); + cr_assert_eq(snes.ppu->_registers._mosaic.raw, 123); } Test(BusWrite, WriteCPU)