From f78903d2d96eb24807e40dc47e23dea35e29bea6 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Sun, 4 Jul 2021 03:14:01 +0200 Subject: [PATCH] Fixing tests compilations --- tests/APU/testAPU.cpp | 93 ++- tests/APU/testAPUInstructions.cpp | 1092 +++++++++++++-------------- tests/APU/testOperand.cpp | 119 ++- tests/CPU/Math/testADC.cpp | 148 ++-- tests/CPU/Math/testCMP.cpp | 76 +- tests/CPU/Math/testOthersMath.cpp | 368 ++++----- tests/CPU/Math/testSBC.cpp | 114 +-- tests/CPU/testAddressingMode.cpp | 310 ++++---- tests/CPU/testBits.cpp | 400 +++++----- tests/CPU/testDMA.cpp | 88 +-- tests/CPU/testInternal.cpp | 1000 ++++++++++++------------ tests/CPU/testInterupts.cpp | 104 +-- tests/CPU/testStore.cpp | 146 ++-- tests/CPU/testTransfers.cpp | 576 +++++++------- tests/PPU/testBackground.cpp | 4 +- tests/PPU/testPpuRead.cpp | 8 +- tests/PPU/testPpuWrite.cpp | 164 ++-- tests/PPU/testPpuWriteFromVmain.cpp | 218 +++--- tests/testMemoryBus.cpp | 195 ++--- tests/testRectangleMemory.cpp | 22 +- tests/tests.hpp | 23 +- 21 files changed, 2565 insertions(+), 2703 deletions(-) diff --git a/tests/APU/testAPU.cpp b/tests/APU/testAPU.cpp index 8f1a8e4..f8c718a 100644 --- a/tests/APU/testAPU.cpp +++ b/tests/APU/testAPU.cpp @@ -20,54 +20,49 @@ using namespace ComSquare; TEST_CASE("register internalRead", "[internalRead]") { Init() - auto apu = snes.apu;int8_t result = 0; - apu->_registers.counter0 = 123; - result = apu->_internalRead(0x00FD); + snes.apu._registers.counter0 = 123; + auto result = snes.apu._internalRead(0x00FD); REQUIRE(result == 123); } TEST_CASE("Page0 read Read", "[Read]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_map->Page0._data[0x0010] = 123; - result = apu->_internalRead(0x0010); + snes.apu._map->Page0._data[0x0010] = 123; + result = snes.apu._internalRead(0x0010); REQUIRE(result == 123); } TEST_CASE("Page1 read Read", "[Read]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_map->Page1._data[0x0042] = 123; - result = apu->_internalRead(0x0142); + snes.apu._map->Page1._data[0x0042] = 123; + result = snes.apu._internalRead(0x0142); REQUIRE(result == 123); } TEST_CASE("Memory internalRead", "[internalRead]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_map->Memory._data[0xFCDC] = 123; - result = apu->_internalRead(0xFEDC); + snes.apu._map->Memory._data[0xFCDC] = 123; + result = snes.apu._internalRead(0xFEDC); REQUIRE(result == 123); } TEST_CASE("IPL internalRead", "[internalRead]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_map->IPL._data[0x001F] = 123; - result = apu->_internalRead(0xFFDF); + snes.apu._map->IPL._data[0x001F] = 123; + result = snes.apu._internalRead(0xFFDF); REQUIRE(result == 123); } @@ -76,7 +71,7 @@ TEST_CASE("Invalid internalRead", "[internalRead]") Init() auto apu = snes.apu; - REQUIRE_THROWS_AS(apu->_internalRead(0x10000), InvalidAddress); + REQUIRE_THROWS_AS(snes.apu._internalRead(0x10000), InvalidAddress); } /////////////////////////////// @@ -90,8 +85,8 @@ TEST_CASE("Page0 write Write", "[Write]") Init() auto apu = snes.apu; - apu->_internalWrite(0x0001, 123); - REQUIRE(apu->_map->Page0._data[0x0001] == 123); + snes.apu._internalWrite(0x0001, 123); + REQUIRE(snes.apu._map->Page0._data[0x0001] == 123); } TEST_CASE("register write Write", "[Write]") @@ -99,8 +94,8 @@ TEST_CASE("register write Write", "[Write]") Init() auto apu = snes.apu; - apu->_internalWrite(0x00F4, 123); - REQUIRE(apu->_registers.port0 == 123); + snes.apu._internalWrite(0x00F4, 123); + REQUIRE(snes.apu._registers.port0 == 123); } TEST_CASE("Page1 internalWrite", "[internalWrite]") @@ -108,8 +103,8 @@ TEST_CASE("Page1 internalWrite", "[internalWrite]") Init() auto apu = snes.apu; - apu->_internalWrite(0x01FF, 123); - REQUIRE(apu->_map->Page1._data[0x00FF] == 123); + snes.apu._internalWrite(0x01FF, 123); + REQUIRE(snes.apu._map->Page1._data[0x00FF] == 123); } TEST_CASE("Memory write internalWrite", "[internalWrite]") @@ -117,8 +112,8 @@ TEST_CASE("Memory write internalWrite", "[internalWrite]") Init() auto apu = snes.apu; - apu->_internalWrite(0x0789, 123); - REQUIRE(apu->_map->Memory._data[0x0589] == 123); + snes.apu._internalWrite(0x0789, 123); + REQUIRE(snes.apu._map->Memory._data[0x0589] == 123); } TEST_CASE("IPL internalWrite", "[internalWrite]") @@ -126,8 +121,8 @@ TEST_CASE("IPL internalWrite", "[internalWrite]") Init() auto apu = snes.apu; - apu->_internalWrite(0xFFF0, 123); - REQUIRE(apu->_map->IPL._data[0x0030] == 123); + snes.apu._internalWrite(0xFFF0, 123); + REQUIRE(snes.apu._map->IPL._data[0x0030] == 123); } TEST_CASE("Invalid internalWrite", "[internalWrite]") @@ -135,7 +130,7 @@ TEST_CASE("Invalid internalWrite", "[internalWrite]") Init() auto apu = snes.apu; - REQUIRE_THROWS_AS(apu->_internalWrite(0x10000, 123), InvalidAddress); + REQUIRE_THROWS_AS(snes.apu._internalWrite(0x10000, 123), InvalidAddress); } ///////////////////// @@ -147,11 +142,10 @@ TEST_CASE("Invalid internalWrite", "[internalWrite]") TEST_CASE("Valid read", "[read]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_registers.port2 = 123; - result = apu->read(0x02); + snes.apu._registers.port2 = 123; + result = snes.apu.read(0x02); REQUIRE(result == 123); } @@ -160,7 +154,7 @@ TEST_CASE("Invalid read", "[read]") Init() auto apu = snes.apu; - REQUIRE_THROWS_AS(apu->read(0x10000), InvalidAddress); + REQUIRE_THROWS_AS(snes.apu.read(0x10000), InvalidAddress); } ////////////////////// @@ -174,8 +168,8 @@ TEST_CASE("Valid write", "[write]") Init() auto apu = snes.apu; - apu->write(0x03, 123); - REQUIRE(apu->_registers.port3 == 123); + snes.apu.write(0x03, 123); + REQUIRE(snes.apu._registers.port3 == 123); } TEST_CASE("Invalid write", "[write]") @@ -183,7 +177,7 @@ TEST_CASE("Invalid write", "[write]") Init() auto apu = snes.apu; - REQUIRE_THROWS_AS(apu->write(0x04, 123), InvalidAddress); + REQUIRE_THROWS_AS(snes.apu.write(0x04, 123), InvalidAddress); } /////////////////////////////////// @@ -195,11 +189,10 @@ TEST_CASE("Invalid write", "[write]") TEST_CASE("Valid executeInstruction", "[executeInstruction]") { Init() - auto apu = snes.apu; uint8_t result = 0; - apu->_internalRegisters.pc = 0x00; - result = apu->_executeInstruction(); + snes.apu._internalRegisters.pc = 0x00; + result = snes.apu._executeInstruction(); REQUIRE(result == 2); } @@ -214,9 +207,9 @@ TEST_CASE("running update", "[update]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x00; - apu->update(1); - REQUIRE(apu->_paddingCycles == 1); + snes.apu._internalRegisters.pc = 0x00; + snes.apu.update(1); + REQUIRE(snes.apu._paddingCycles == 1); } TEST_CASE("stopped update", "[update]") @@ -224,9 +217,9 @@ TEST_CASE("stopped update", "[update]") Init() auto apu = snes.apu; - apu->_state = APU::Stopped; - apu->update(1); - REQUIRE(apu->_paddingCycles == 0); + snes.apu._state = APU::Stopped; + snes.apu.update(1); + REQUIRE(snes.apu._paddingCycles == 0); } ////////////////////////// @@ -240,9 +233,9 @@ TEST_CASE("direct get", "[get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 123); - REQUIRE(apu->_getDirectAddr() == 123); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 123); + REQUIRE(snes.apu._getDirectAddr() == 123); } TEST_CASE("absolute get", "[get]") @@ -250,8 +243,8 @@ TEST_CASE("absolute get", "[get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - REQUIRE(apu->_getAbsoluteAddr() == 61455); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + REQUIRE(snes.apu._getAbsoluteAddr() == 61455); } \ No newline at end of file diff --git a/tests/APU/testAPUInstructions.cpp b/tests/APU/testAPUInstructions.cpp index 4fb9697..914f5d0 100644 --- a/tests/APU/testAPUInstructions.cpp +++ b/tests/APU/testAPUInstructions.cpp @@ -21,33 +21,30 @@ using namespace ComSquare; TEST_CASE("NOP Standbys", "[Standbys]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->NOP(); + result = snes.apu.NOP(); REQUIRE(result == 2); } TEST_CASE("SLEEP Standbys", "[Standbys]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->SLEEP(); + result = snes.apu.SLEEP(); REQUIRE(result == 3); - REQUIRE(apu->_state == APU::Sleeping); + REQUIRE(snes.apu._state == APU::Sleeping); } TEST_CASE("STOP Standbys", "[Standbys]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->STOP(); + result = snes.apu.STOP(); REQUIRE(result == 3); - REQUIRE(apu->_state == APU::Stopped); + REQUIRE(snes.apu._state == APU::Stopped); } /////////////// @@ -59,91 +56,83 @@ TEST_CASE("STOP Standbys", "[Standbys]") TEST_CASE("CLRC PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->CLRC(); + result = snes.apu.CLRC(); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.c == false); + REQUIRE(snes.apu._internalRegisters.c == false); } TEST_CASE("SETC PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->SETC(); + result = snes.apu.SETC(); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("NOTC PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.c = false; - result = apu->NOTC(); + snes.apu._internalRegisters.c = false; + result = snes.apu.NOTC(); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("CLRV PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->CLRV(); + result = snes.apu.CLRV(); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.v == false); - REQUIRE(apu->_internalRegisters.h == false); + REQUIRE(snes.apu._internalRegisters.v == false); + REQUIRE(snes.apu._internalRegisters.h == false); } TEST_CASE("CLRP PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->CLRP(); + result = snes.apu.CLRP(); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.p == false); + REQUIRE(snes.apu._internalRegisters.p == false); } TEST_CASE("SETP PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->SETP(); + result = snes.apu.SETP(); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.p == true); + REQUIRE(snes.apu._internalRegisters.p == true); } TEST_CASE("EI PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->EI(); + result = snes.apu.EI(); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.i == true); + REQUIRE(snes.apu._internalRegisters.i == true); } TEST_CASE("DI PSW", "[PSW]") { Init() - auto apu = snes.apu; int result = 0; - result = apu->DI(); + result = snes.apu.DI(); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.i == false); + REQUIRE(snes.apu._internalRegisters.i == false); } /////////////// @@ -155,210 +144,198 @@ TEST_CASE("DI PSW", "[PSW]") TEST_CASE("SET1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(apu->_getDirectAddr(), 0b00000000); - apu->_internalRegisters.pc--; - result = apu->SET1(apu->_getDirectAddr(), 0); - apu->_internalRegisters.pc--; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(snes.apu._getDirectAddr(), 0b00000000); + snes.apu._internalRegisters.pc--; + result = snes.apu.SET1(snes.apu._getDirectAddr(), 0); + snes.apu._internalRegisters.pc--; REQUIRE(result == 4); - REQUIRE(apu->_internalRead(apu->_getDirectAddr()) == 1); + REQUIRE(snes.apu._internalRead(snes.apu._getDirectAddr()) == 1); } TEST_CASE("CLR1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(apu->_getDirectAddr(), 0b11111111); - apu->_internalRegisters.pc--; - result = apu->CLR1(apu->_getDirectAddr(), 0); - apu->_internalRegisters.pc--; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(snes.apu._getDirectAddr(), 0b11111111); + snes.apu._internalRegisters.pc--; + result = snes.apu.CLR1(snes.apu._getDirectAddr(), 0); + snes.apu._internalRegisters.pc--; REQUIRE(result == 4); - REQUIRE(apu->_internalRead(apu->_getDirectAddr()) == 0b11111110); + REQUIRE(snes.apu._internalRead(snes.apu._getDirectAddr()) == 0b11111110); } TEST_CASE("TSET1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr(), 123); - apu->_internalRegisters.pc -= 2; - result = apu->TSET1(apu->_getAbsoluteAddr()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRead(apu->_getAbsoluteAddr()) == 0x7B); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr(), 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.TSET1(snes.apu._getAbsoluteAddr()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRead(snes.apu._getAbsoluteAddr()) == 0x7B); REQUIRE(result == 6); } TEST_CASE("TCLR1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x80; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr(), 0x80); - apu->_internalRegisters.pc -= 2; - result = apu->TCLR1(apu->_getAbsoluteAddr()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRead(apu->_getAbsoluteAddr()) == 0x00); + snes.apu._internalRegisters.a = 0x80; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr(), 0x80); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.TCLR1(snes.apu._getAbsoluteAddr()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRead(snes.apu._getAbsoluteAddr()) == 0x00); REQUIRE(result == 6); } TEST_CASE("AND1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->AND1(apu->_getAbsoluteBit()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.AND1(snes.apu._getAbsoluteBit()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 4); } TEST_CASE("AND1_invert Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->AND1(apu->_getAbsoluteBit(), true); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.AND1(snes.apu._getAbsoluteBit(), true); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 4); } TEST_CASE("OR1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->OR1(apu->_getAbsoluteBit()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.OR1(snes.apu._getAbsoluteBit()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 5); } TEST_CASE("OR1_invert Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->OR1(apu->_getAbsoluteBit(), true); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == true); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.OR1(snes.apu._getAbsoluteBit(), true); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == true); REQUIRE(result == 5); } TEST_CASE("EOR1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->EOR1(apu->_getAbsoluteBit()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.EOR1(snes.apu._getAbsoluteBit()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 5); } TEST_CASE("NOT1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->NOT1(apu->_getAbsoluteBit()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.NOT1(snes.apu._getAbsoluteBit()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 5); } TEST_CASE("MOV1 Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->MOV1(apu->_getAbsoluteBit()); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRead(apu->_getAbsoluteAddr() & 0x1FFFu) == 123); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.MOV1(snes.apu._getAbsoluteBit()); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRead(snes.apu._getAbsoluteAddr() & 0x1FFFu) == 123); REQUIRE(result == 6); } TEST_CASE("MOV1_carry Bit", "[Bit]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 42; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(apu->_getAbsoluteAddr() & 0x1FFFu, 123); - apu->_internalRegisters.pc -= 2; - result = apu->MOV1(apu->_getAbsoluteBit(), true); - apu->_internalRegisters.pc -= 2; - REQUIRE(apu->_internalRegisters.c == false); + snes.apu._internalRegisters.a = 42; + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(snes.apu._getAbsoluteAddr() & 0x1FFFu, 123); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.MOV1(snes.apu._getAbsoluteBit(), true); + snes.apu._internalRegisters.pc -= 2; + REQUIRE(snes.apu._internalRegisters.c == false); REQUIRE(result == 4); } @@ -371,27 +348,25 @@ TEST_CASE("MOV1_carry Bit", "[Bit]") TEST_CASE("PUSH Stack", "[Stack]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 56; - result = apu->PUSH(apu->_internalRegisters.a); - apu->_internalRegisters.sp++; + snes.apu._internalRegisters.a = 56; + result = snes.apu.PUSH(snes.apu._internalRegisters.a); + snes.apu._internalRegisters.sp++; REQUIRE(result == 4); - REQUIRE(apu->_internalRead(apu->_internalRegisters.sp | 0x100u) == 56); + REQUIRE(snes.apu._internalRead(snes.apu._internalRegisters.sp | 0x100u) == 56); } TEST_CASE("POP Stack", "[Stack]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 82); - apu->_internalRegisters.sp--; - result = apu->POP(apu->_internalRegisters.y); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 82); + snes.apu._internalRegisters.sp--; + result = snes.apu.POP(snes.apu._internalRegisters.y); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.y == 82); + REQUIRE(snes.apu._internalRegisters.y == 82); } ////////////////////// @@ -403,95 +378,89 @@ TEST_CASE("POP Stack", "[Stack]") TEST_CASE("CALL Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_getAbsoluteAddr(), 23); - apu->_internalRegisters.pc -= 2; - result = apu->CALL(apu->_getAbsoluteAddr()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._getAbsoluteAddr(), 23); + snes.apu._internalRegisters.pc -= 2; + result = snes.apu.CALL(snes.apu._getAbsoluteAddr()); REQUIRE(result == 8); - REQUIRE(apu->_internalRegisters.pc == 23); - REQUIRE(apu->_internalRead(++apu->_internalRegisters.sp + 0x0100u) == 2); - REQUIRE(apu->_internalRead(++apu->_internalRegisters.sp + 0x0100u) == 0); + REQUIRE(snes.apu._internalRegisters.pc == 23); + REQUIRE(snes.apu._internalRead(++snes.apu._internalRegisters.sp + 0x0100u) == 2); + REQUIRE(snes.apu._internalRead(++snes.apu._internalRegisters.sp + 0x0100u) == 0); } TEST_CASE("PCALL Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 123); - result = apu->PCALL(); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 123); + result = snes.apu.PCALL(); REQUIRE(result == 6); - REQUIRE(apu->_internalRegisters.pc == 65403); + REQUIRE(snes.apu._internalRegisters.pc == 65403); } TEST_CASE("TCALL Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(0xFFD0, 45); - result = apu->TCALL(7); + snes.apu._internalWrite(0xFFD0, 45); + result = snes.apu.TCALL(7); REQUIRE(result == 8); - REQUIRE(apu->_internalRegisters.pc == 45); + REQUIRE(snes.apu._internalRegisters.pc == 45); } TEST_CASE("BRK Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pch = 0xFF; - apu->_internalRegisters.pcl = 0xEE; - apu->_internalRegisters.psw = 0xDD; - apu->_internalWrite(0xFFDF, 0xAA); - apu->_internalWrite(0xFFDE, 0xBB); - result = apu->BRK(); - apu->_internalRegisters.sp += 3; + snes.apu._internalRegisters.pch = 0xFF; + snes.apu._internalRegisters.pcl = 0xEE; + snes.apu._internalRegisters.psw = 0xDD; + snes.apu._internalWrite(0xFFDF, 0xAA); + snes.apu._internalWrite(0xFFDE, 0xBB); + result = snes.apu.BRK(); + snes.apu._internalRegisters.sp += 3; REQUIRE(result == 8); - REQUIRE(apu->_internalRegisters.i == false); - REQUIRE(apu->_internalRegisters.b == true); - REQUIRE(apu->_internalRegisters.pc == 0xAABB); - REQUIRE(apu->_internalRead(apu->_internalRegisters.sp-- | 0x100u) == 0xFF); - REQUIRE(apu->_internalRead(apu->_internalRegisters.sp-- | 0x100u) == 0xEE); - REQUIRE(apu->_internalRead(apu->_internalRegisters.sp | 0x100u) == 0xDD); + REQUIRE(snes.apu._internalRegisters.i == false); + REQUIRE(snes.apu._internalRegisters.b == true); + REQUIRE(snes.apu._internalRegisters.pc == 0xAABB); + REQUIRE(snes.apu._internalRead(snes.apu._internalRegisters.sp-- | 0x100u) == 0xFF); + REQUIRE(snes.apu._internalRead(snes.apu._internalRegisters.sp-- | 0x100u) == 0xEE); + REQUIRE(snes.apu._internalRead(snes.apu._internalRegisters.sp | 0x100u) == 0xDD); } TEST_CASE("RET Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 0x12); - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 0x34); - apu->_internalRegisters.sp -= 2; - result = apu->RET(); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 0x12); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 0x34); + snes.apu._internalRegisters.sp -= 2; + result = snes.apu.RET(); REQUIRE(result == 5); - REQUIRE(apu->_internalRegisters.pch == 0x12); - REQUIRE(apu->_internalRegisters.pcl == 0x34); + REQUIRE(snes.apu._internalRegisters.pch == 0x12); + REQUIRE(snes.apu._internalRegisters.pcl == 0x34); } TEST_CASE("RETI Subroutine", "[Subroutine]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 0x12); - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 0x34); - apu->_internalWrite(++apu->_internalRegisters.sp | 0x100u, 0x56); - apu->_internalRegisters.sp -= 3; - result = apu->RETI(); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 0x12); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 0x34); + snes.apu._internalWrite(++snes.apu._internalRegisters.sp | 0x100u, 0x56); + snes.apu._internalRegisters.sp -= 3; + result = snes.apu.RETI(); REQUIRE(result == 6); - REQUIRE(apu->_internalRegisters.psw == 0x12); - REQUIRE(apu->_internalRegisters.pch == 0x34); - REQUIRE(apu->_internalRegisters.pcl == 0x56); + REQUIRE(snes.apu._internalRegisters.psw == 0x12); + REQUIRE(snes.apu._internalRegisters.pch == 0x34); + REQUIRE(snes.apu._internalRegisters.pcl == 0x56); } //////////////////////// @@ -503,244 +472,230 @@ TEST_CASE("RETI Subroutine", "[Subroutine]") TEST_CASE("BRA ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 23); - result = apu->BRA(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 23); + result = snes.apu.BRA(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 24); + REQUIRE(snes.apu._internalRegisters.pc == 24); } TEST_CASE("BEQ ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - result = apu->BEQ(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + result = snes.apu.BEQ(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.z = true; - result = apu->BEQ(apu->_getImmediateData()); + snes.apu._internalRegisters.z = true; + result = snes.apu.BEQ(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BNE ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - apu->_internalRegisters.z = true; - result = apu->BNE(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + snes.apu._internalRegisters.z = true; + result = snes.apu.BNE(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.z = false; - result = apu->BNE(apu->_getImmediateData()); + snes.apu._internalRegisters.z = false; + result = snes.apu.BNE(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BCS ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - result = apu->BCS(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + result = snes.apu.BCS(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.c = true; - result = apu->BCS(apu->_getImmediateData()); + snes.apu._internalRegisters.c = true; + result = snes.apu.BCS(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BCC ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - apu->_internalRegisters.c = true; - result = apu->BCC(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + snes.apu._internalRegisters.c = true; + result = snes.apu.BCC(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.c = false; - result = apu->BCC(apu->_getImmediateData()); + snes.apu._internalRegisters.c = false; + result = snes.apu.BCC(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BVS ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - result = apu->BVS(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + result = snes.apu.BVS(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.v = true; - result = apu->BVS(apu->_getImmediateData()); + snes.apu._internalRegisters.v = true; + result = snes.apu.BVS(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BVC ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - apu->_internalRegisters.v = true; - result = apu->BVC(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + snes.apu._internalRegisters.v = true; + result = snes.apu.BVC(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.v = false; - result = apu->BVC(apu->_getImmediateData()); + snes.apu._internalRegisters.v = false; + result = snes.apu.BVC(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BMI ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - result = apu->BMI(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + result = snes.apu.BMI(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.n = true; - result = apu->BMI(apu->_getImmediateData()); + snes.apu._internalRegisters.n = true; + result = snes.apu.BMI(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BPL ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - apu->_internalRegisters.n = true; - result = apu->BPL(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + snes.apu._internalRegisters.n = true; + result = snes.apu.BPL(snes.apu._getImmediateData()); REQUIRE(result == 2); - apu->_internalRegisters.n = false; - result = apu->BPL(apu->_getImmediateData()); + snes.apu._internalRegisters.n = false; + result = snes.apu.BPL(snes.apu._getImmediateData()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.pc == 25); + REQUIRE(snes.apu._internalRegisters.pc == 25); } TEST_CASE("BBS ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 23); - apu->_internalWrite(23, 0); - result = apu->BBS(apu->_getDirectAddr(), apu->_getImmediateData(), 2); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 23); + snes.apu._internalWrite(23, 0); + result = snes.apu.BBS(snes.apu._getDirectAddr(), snes.apu._getImmediateData(), 2); REQUIRE(result == 5); - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 10); - apu->_internalWrite(23, 100); - result = apu->BBS(apu->_getDirectAddr(), apu->_getImmediateData(), 2); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 10); + snes.apu._internalWrite(23, 100); + result = snes.apu.BBS(snes.apu._getDirectAddr(), snes.apu._getImmediateData(), 2); REQUIRE(result == 7); - REQUIRE(apu->_internalRegisters.pc == 12); + REQUIRE(snes.apu._internalRegisters.pc == 12); } TEST_CASE("BBC ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 10); - apu->_internalWrite(10, 255); - result = apu->BBC(apu->_getDirectAddr(), apu->_getImmediateData(), 2); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 10); + snes.apu._internalWrite(10, 255); + result = snes.apu.BBC(snes.apu._getDirectAddr(), snes.apu._getImmediateData(), 2); REQUIRE(result == 5); - apu->_internalRegisters.pc = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 10); - apu->_internalWrite(apu->_internalRegisters.pc + 1, 0); - result = apu->BBC(apu->_getDirectAddr(), apu->_getImmediateData(), 2); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 10); + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 0); + result = snes.apu.BBC(snes.apu._getDirectAddr(), snes.apu._getImmediateData(), 2); REQUIRE(result == 7); - REQUIRE(apu->_internalRegisters.pc == 12); + REQUIRE(snes.apu._internalRegisters.pc == 12); } TEST_CASE("CBNE ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalRegisters.a = 4; - apu->_internalWrite(apu->_internalRegisters.pc + 1, 10); - apu->_internalWrite(10, 4); - result = apu->CBNE(apu->_getDirectAddr(), apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalRegisters.a = 4; + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 10); + snes.apu._internalWrite(10, 4); + result = snes.apu.CBNE(snes.apu._getDirectAddr(), snes.apu._getImmediateData()); REQUIRE(result == 5); - apu->_internalRegisters.pc = 0; - apu->_internalRegisters.a = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 10); - result = apu->CBNE(apu->_getDirectAddrByX(), apu->_getImmediateData(), true); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalRegisters.a = 0; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 10); + result = snes.apu.CBNE(snes.apu._getDirectAddrByX(), snes.apu._getImmediateData(), true); REQUIRE(result == 8); - REQUIRE(apu->_internalRegisters.pc == 12); + REQUIRE(snes.apu._internalRegisters.pc == 12); } TEST_CASE("DBNZ ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalRegisters.y = 1; - result = apu->DBNZ(apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalRegisters.y = 1; + result = snes.apu.DBNZ(snes.apu._getImmediateData()); REQUIRE(result == 4); - apu->_internalWrite(apu->_internalRegisters.pc, 10); - apu->_internalWrite(apu->_internalRegisters.pc + 1, 5); - apu->_internalWrite(5, 55); - result = apu->DBNZ(apu->_getImmediateData(), true); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 10); + snes.apu._internalWrite(snes.apu._internalRegisters.pc + 1, 5); + snes.apu._internalWrite(5, 55); + result = snes.apu.DBNZ(snes.apu._getImmediateData(), true); REQUIRE(result == 7); - REQUIRE( apu->_internalRead(5) == 54); - REQUIRE(apu->_internalRegisters.pc == 13); + REQUIRE( snes.apu._internalRead(5) == 54); + REQUIRE(snes.apu._internalRegisters.pc == 13); } TEST_CASE("JMP ProgramFlow", "[ProgramFlow]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - result = apu->JMP(apu->_getAbsoluteAddr()); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + result = snes.apu.JMP(snes.apu._getAbsoluteAddr()); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.pc == 61455); - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.x = 0b000000001; - apu->_internalWrite(0b1111000000001111 + 1, 0b00010000); - apu->_internalWrite(0b1111000000001111 + 2, 0b11110001); - result = apu->JMP(apu->_getAbsoluteByXAddr(), true); + REQUIRE(snes.apu._internalRegisters.pc == 61455); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.x = 0b000000001; + snes.apu._internalWrite(0b1111000000001111 + 1, 0b00010000); + snes.apu._internalWrite(0b1111000000001111 + 2, 0b11110001); + result = snes.apu.JMP(snes.apu._getAbsoluteByXAddr(), true); REQUIRE(result == 6); - REQUIRE(apu->_internalRegisters.pc == 61712); + REQUIRE(snes.apu._internalRegisters.pc == 61712); } //////////////////////////////// @@ -752,29 +707,27 @@ TEST_CASE("JMP ProgramFlow", "[ProgramFlow]") TEST_CASE("DAA DecimalCompensation", "[DecimalCompensation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.c = true; - apu->_internalRegisters.h = true; - apu->_internalRegisters.a = 0x1A; - result = apu->DAA(); + snes.apu._internalRegisters.c = true; + snes.apu._internalRegisters.h = true; + snes.apu._internalRegisters.a = 0x1A; + result = snes.apu.DAA(); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 0x80); + REQUIRE(snes.apu._internalRegisters.a == 0x80); } TEST_CASE("DAS DecimalCompensation", "[DecimalCompensation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.c = false; - apu->_internalRegisters.h = false; - apu->_internalRegisters.a = 0xFF; - result = apu->DAS(); + snes.apu._internalRegisters.c = false; + snes.apu._internalRegisters.h = false; + snes.apu._internalRegisters.a = 0xFF; + result = snes.apu.DAS(); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 0x99); + REQUIRE(snes.apu._internalRegisters.a == 0x99); } /////////////////////////////////// @@ -786,33 +739,31 @@ TEST_CASE("DAS DecimalCompensation", "[DecimalCompensation]") TEST_CASE("MUL MultiplicationDivision", "[MultiplicationDivision]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 10; - apu->_internalRegisters.y = 23; - result = apu->MUL(); + snes.apu._internalRegisters.a = 10; + snes.apu._internalRegisters.y = 23; + result = snes.apu.MUL(); REQUIRE(result == 9); - REQUIRE(apu->_internalRegisters.ya == 230); + REQUIRE(snes.apu._internalRegisters.ya == 230); } TEST_CASE("DIV MultiplicationDivision", "[MultiplicationDivision]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.ya = 235; - apu->_internalRegisters.x = 10; - result = apu->DIV(); + snes.apu._internalRegisters.ya = 235; + snes.apu._internalRegisters.x = 10; + result = snes.apu.DIV(); REQUIRE(result == 12); - REQUIRE(apu->_internalRegisters.y == 5); - REQUIRE(apu->_internalRegisters.a == 23); - apu->_internalRegisters.ya = 12345; - apu->_internalRegisters.x = 2; - result = apu->DIV(); - REQUIRE(apu->_internalRegisters.y == 147); - REQUIRE(apu->_internalRegisters.a == 211); + REQUIRE(snes.apu._internalRegisters.y == 5); + REQUIRE(snes.apu._internalRegisters.a == 23); + snes.apu._internalRegisters.ya = 12345; + snes.apu._internalRegisters.x = 2; + result = snes.apu.DIV(); + REQUIRE(snes.apu._internalRegisters.y == 147); + REQUIRE(snes.apu._internalRegisters.a == 211); } ////////////////////////////////// @@ -824,82 +775,77 @@ TEST_CASE("DIV MultiplicationDivision", "[MultiplicationDivision]") TEST_CASE("INCW XVIbitArithmetic", "[XVIbitArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xFF); - apu->_internalWrite(0x55 + 1, 0x22); - result = apu->INCW(apu->_getDirectAddr()); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xFF); + snes.apu._internalWrite(0x55 + 1, 0x22); + result = snes.apu.INCW(snes.apu._getDirectAddr()); REQUIRE(result == 6); - REQUIRE(apu->_internalRead(0x55) == 0x00); - REQUIRE(apu->_internalRead(0x55 + 1) == 0x23); + REQUIRE(snes.apu._internalRead(0x55) == 0x00); + REQUIRE(snes.apu._internalRead(0x55 + 1) == 0x23); } TEST_CASE("DECW XVIbitArithmetic", "[XVIbitArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0x00); - apu->_internalWrite(0x55 + 1, 0x23); - result = apu->DECW(apu->_getDirectAddr()); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0x00); + snes.apu._internalWrite(0x55 + 1, 0x23); + result = snes.apu.DECW(snes.apu._getDirectAddr()); REQUIRE(result == 6); - REQUIRE(apu->_internalRead(0x55) == 0xFF); - REQUIRE(apu->_internalRead(0x55 + 1) == 0x22); + REQUIRE(snes.apu._internalRead(0x55) == 0xFF); + REQUIRE(snes.apu._internalRead(0x55 + 1) == 0x22); } TEST_CASE("ADDW XVIbitArithmetic", "[XVIbitArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.ya = 0x4321; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0x11); - apu->_internalWrite(0x55 + 1, 0x22); - result = apu->ADDW(apu->_getDirectAddr()); + snes.apu._internalRegisters.ya = 0x4321; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0x11); + snes.apu._internalWrite(0x55 + 1, 0x22); + result = snes.apu.ADDW(snes.apu._getDirectAddr()); REQUIRE(result == 5); - REQUIRE(apu->_internalRegisters.ya == 0x6532); - REQUIRE(apu->_internalRegisters.v == false); - REQUIRE(apu->_internalRegisters.h == false); - REQUIRE(apu->_internalRegisters.c == false); + REQUIRE(snes.apu._internalRegisters.ya == 0x6532); + REQUIRE(snes.apu._internalRegisters.v == false); + REQUIRE(snes.apu._internalRegisters.h == false); + REQUIRE(snes.apu._internalRegisters.c == false); } TEST_CASE("SUBW XVIbitArithmetic", "[XVIbitArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.ya = 0x4321; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0x11); - apu->_internalWrite(0x55 + 1, 0x22); - result = apu->SUBW(apu->_getDirectAddr()); + snes.apu._internalRegisters.ya = 0x4321; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0x11); + snes.apu._internalWrite(0x55 + 1, 0x22); + result = snes.apu.SUBW(snes.apu._getDirectAddr()); REQUIRE(result == 5); - REQUIRE(apu->_internalRegisters.ya == 0x2110); - REQUIRE(apu->_internalRegisters.v == false); - REQUIRE(apu->_internalRegisters.h == true); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.ya == 0x2110); + REQUIRE(snes.apu._internalRegisters.v == false); + REQUIRE(snes.apu._internalRegisters.h == true); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("CMPW XVIbitArithmetic", "[XVIbitArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.ya = 0x2211; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0x11); - apu->_internalWrite(0x55 + 1, 0x22); - result = apu->CMPW(apu->_getDirectAddr()); + snes.apu._internalRegisters.ya = 0x2211; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0x11); + snes.apu._internalWrite(0x55 + 1, 0x22); + result = snes.apu.CMPW(snes.apu._getDirectAddr()); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.c == true); } ///////////////////////////////////////// @@ -911,22 +857,21 @@ TEST_CASE("CMPW XVIbitArithmetic", "[XVIbitArithmetic]") TEST_CASE("MOVW XVIbitDataTransmission", "[XVIbitDataTransmission]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0; - apu->_internalRegisters.ya = 0x2211; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - result = apu->MOVW(apu->_getDirectAddr()); + snes.apu._internalRegisters.pc = 0; + snes.apu._internalRegisters.ya = 0x2211; + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + result = snes.apu.MOVW(snes.apu._getDirectAddr()); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x55) == 0x11); - REQUIRE(apu->_internalRead(0x56) == 0x22); - apu->_internalRegisters.ya = 0x0000; - apu->_internalRegisters.pc = 0; - apu->_internalWrite(0x55, 0x33); - apu->_internalWrite(0x55 + 1, 0x44); - apu->MOVW(apu->_getDirectAddr(), true); - REQUIRE(apu->_internalRegisters.ya == 0x4433); + REQUIRE(snes.apu._internalRead(0x55) == 0x11); + REQUIRE(snes.apu._internalRead(0x56) == 0x22); + snes.apu._internalRegisters.ya = 0x0000; + snes.apu._internalRegisters.pc = 0; + snes.apu._internalWrite(0x55, 0x33); + snes.apu._internalWrite(0x55 + 1, 0x44); + snes.apu.MOVW(snes.apu._getDirectAddr(), true); + REQUIRE(snes.apu._internalRegisters.ya == 0x4433); } ////////////////////////////////////// @@ -938,89 +883,84 @@ TEST_CASE("MOVW XVIbitDataTransmission", "[XVIbitDataTransmission]") TEST_CASE("ASL VIIIbitShiftRotation", "[VIIIbitShiftRotation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x66; - result = apu->ASL(apu->_internalRegisters.a, 2, true); + snes.apu._internalRegisters.a = 0x66; + result = snes.apu.ASL(snes.apu._internalRegisters.a, 2, true); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0xCC); - REQUIRE(apu->_internalRegisters.c == false); - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->ASL(apu->_getDirectAddr(), 5); + REQUIRE(snes.apu._internalRegisters.a == 0xCC); + REQUIRE(snes.apu._internalRegisters.c == false); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.ASL(snes.apu._getDirectAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x55) == 0xBA); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRead(0x55) == 0xBA); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("LSR VIIIbitShiftRotation", "[VIIIbitShiftRotation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x66; - result = apu->LSR(apu->_internalRegisters.a, 2, true); + snes.apu._internalRegisters.a = 0x66; + result = snes.apu.LSR(snes.apu._internalRegisters.a, 2, true); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0x33); - REQUIRE(apu->_internalRegisters.c == false); - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->LSR(apu->_getDirectAddr(), 5); + REQUIRE(snes.apu._internalRegisters.a == 0x33); + REQUIRE(snes.apu._internalRegisters.c == false); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.LSR(snes.apu._getDirectAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x55) == 0x6E); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRead(0x55) == 0x6E); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("ROL VIIIbitShiftRotation", "[VIIIbitShiftRotation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x66; - result = apu->ROL(apu->_internalRegisters.a, 2, true); + snes.apu._internalRegisters.a = 0x66; + result = snes.apu.ROL(snes.apu._internalRegisters.a, 2, true); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0xCC); - REQUIRE(apu->_internalRegisters.c == false); - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->ROL(apu->_getDirectAddr(), 5); + REQUIRE(snes.apu._internalRegisters.a == 0xCC); + REQUIRE(snes.apu._internalRegisters.c == false); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.ROL(snes.apu._getDirectAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x55) == 0xBA); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRead(0x55) == 0xBA); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("ROR VIIIbitShiftRotation", "[VIIIbitShiftRotation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x66; - result = apu->ROR(apu->_internalRegisters.a, 2, true); + snes.apu._internalRegisters.a = 0x66; + result = snes.apu.ROR(snes.apu._internalRegisters.a, 2, true); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0x33); - REQUIRE(apu->_internalRegisters.c == false); - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->ROR(apu->_getDirectAddr(), 5); + REQUIRE(snes.apu._internalRegisters.a == 0x33); + REQUIRE(snes.apu._internalRegisters.c == false); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.ROR(snes.apu._getDirectAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x55) == 0x6E); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRead(0x55) == 0x6E); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("XCN VIIIShiftRotation", "[VIIIShiftRotation]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0b10101010; - result = apu->XCN(); + snes.apu._internalRegisters.a = 0b10101010; + result = snes.apu.XCN(); REQUIRE(result == 5); - REQUIRE(apu->_internalRegisters.a == 0xAA); + REQUIRE(snes.apu._internalRegisters.a == 0xAA); } /////////////////////////////////////////// @@ -1032,51 +972,47 @@ TEST_CASE("XCN VIIIShiftRotation", "[VIIIShiftRotation]") TEST_CASE("INC VIIIbitIncrementDecrement", "[VIIIbitIncrementDecrement]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->INC(apu->_getDirectAddr(), 4); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.INC(snes.apu._getDirectAddr(), 4); REQUIRE(result == 4); - REQUIRE(apu->_internalRead(0x55) == 0xDE); + REQUIRE(snes.apu._internalRead(0x55) == 0xDE); } TEST_CASE("INCreg VIIIbitIncrementDecrement", "[VIIIbitIncrementDecrement]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x76; - result = apu->INCreg(apu->_internalRegisters.a); + snes.apu._internalRegisters.a = 0x76; + result = snes.apu.INCreg(snes.apu._internalRegisters.a); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0x77); + REQUIRE(snes.apu._internalRegisters.a == 0x77); } TEST_CASE("DEC VIIIbitIncrementDecrement", "[VIIIbitIncrementDecrement]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalWrite(apu->_internalRegisters.pc, 0x55); - apu->_internalWrite(0x55, 0xDD); - result = apu->DEC(apu->_getDirectAddr(), 4); + snes.apu._internalWrite(snes.apu._internalRegisters.pc, 0x55); + snes.apu._internalWrite(0x55, 0xDD); + result = snes.apu.DEC(snes.apu._getDirectAddr(), 4); REQUIRE(result == 4); - REQUIRE(apu->_internalRead(0x55) == 0xDC); + REQUIRE(snes.apu._internalRead(0x55) == 0xDC); } TEST_CASE("DECreg VIIIbitIncrementDecrement", "[VIIIbitIncrementDecrement]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 0x76; - result = apu->DECreg(apu->_internalRegisters.a); + snes.apu._internalRegisters.a = 0x76; + result = snes.apu.DECreg(snes.apu._internalRegisters.a); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 0x75); + REQUIRE(snes.apu._internalRegisters.a == 0x75); } /////////////////////////////// @@ -1088,88 +1024,82 @@ TEST_CASE("DECreg VIIIbitIncrementDecrement", "[VIIIbitIncrementDecrement]") TEST_CASE("ANDacc VIIILogical", "[VIIILogical]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 24; - apu->_internalWrite(4, 23); - result = apu->ANDacc(apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 24; + snes.apu._internalWrite(4, 23); + result = snes.apu.ANDacc(snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 16); + REQUIRE(snes.apu._internalRegisters.a == 16); } TEST_CASE("AND VIIILogical", "[VIIILogical]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalWrite(4, 12); - apu->_internalWrite(7, 44); - result = apu->AND(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalWrite(4, 12); + snes.apu._internalWrite(7, 44); + result = snes.apu.AND(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(4) == 12); + REQUIRE(snes.apu._internalRead(4) == 12); } TEST_CASE("ORacc VIIILogical", "[VIIILogical]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 24; - apu->_internalWrite(4, 23); - result = apu->ORacc(apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 24; + snes.apu._internalWrite(4, 23); + result = snes.apu.ORacc(snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 31); + REQUIRE(snes.apu._internalRegisters.a == 31); } TEST_CASE("OR VIIILogical", "[VIIILogical]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalWrite(4, 12); - apu->_internalWrite(7, 44); - result = apu->OR(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalWrite(4, 12); + snes.apu._internalWrite(7, 44); + result = snes.apu.OR(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(4) == 44); + REQUIRE(snes.apu._internalRead(4) == 44); } TEST_CASE("EORacc VIIILogical", "[VIIILogical]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 24; - apu->_internalWrite(4, 23); - result = apu->EORacc(apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 24; + snes.apu._internalWrite(4, 23); + result = snes.apu.EORacc(snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 15); + REQUIRE(snes.apu._internalRegisters.a == 15); } TEST_CASE("EOR VIIILogical", "[VIIILogical]") { Init() - auto &apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalWrite(4, 12); - apu->_internalWrite(7, 44); - result = apu->EOR(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalWrite(4, 12); + snes.apu._internalWrite(7, 44); + result = snes.apu.EOR(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(4) == 32); + REQUIRE(snes.apu._internalRead(4) == 32); } ////////////////////////////////// @@ -1181,104 +1111,98 @@ TEST_CASE("EOR VIIILogical", "[VIIILogical]") TEST_CASE("ADC VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalRegisters.c = true; - apu->_internalWrite(4, 53); - apu->_internalWrite(7, 76); - result = apu->ADC(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalRegisters.c = true; + snes.apu._internalWrite(4, 53); + snes.apu._internalWrite(7, 76); + result = snes.apu.ADC(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(4) == 130); - REQUIRE(apu->_internalRegisters.c == false); - REQUIRE(apu->_internalRegisters.h == true); - REQUIRE(apu->_internalRegisters.v == true); + REQUIRE(snes.apu._internalRead(4) == 130); + REQUIRE(snes.apu._internalRegisters.c == false); + REQUIRE(snes.apu._internalRegisters.h == true); + REQUIRE(snes.apu._internalRegisters.v == true); } TEST_CASE("ADCacc VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 53; - apu->_internalRegisters.c = true; - apu->_internalWrite(4, 76); - result = apu->ADCacc(apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 53; + snes.apu._internalRegisters.c = true; + snes.apu._internalWrite(4, 76); + result = snes.apu.ADCacc(snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 130); - REQUIRE(apu->_internalRegisters.c == false); - REQUIRE(apu->_internalRegisters.h == true); - REQUIRE(apu->_internalRegisters.v == true); + REQUIRE(snes.apu._internalRegisters.a == 130); + REQUIRE(snes.apu._internalRegisters.c == false); + REQUIRE(snes.apu._internalRegisters.h == true); + REQUIRE(snes.apu._internalRegisters.v == true); } TEST_CASE("SBC VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalRegisters.c = true; - apu->_internalWrite(4, 67); - apu->_internalWrite(7, 45); - result = apu->SBC(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalRegisters.c = true; + snes.apu._internalWrite(4, 67); + snes.apu._internalWrite(7, 45); + result = snes.apu.SBC(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(4) == 22); - REQUIRE(apu->_internalRegisters.c == true); - REQUIRE(apu->_internalRegisters.h == false); - REQUIRE(apu->_internalRegisters.v == false); + REQUIRE(snes.apu._internalRead(4) == 22); + REQUIRE(snes.apu._internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.h == false); + REQUIRE(snes.apu._internalRegisters.v == false); } TEST_CASE("SBCacc VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 67; - apu->_internalRegisters.c = true; - apu->_internalWrite(4, 45); - result = apu->SBCacc(apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 67; + snes.apu._internalRegisters.c = true; + snes.apu._internalWrite(4, 45); + result = snes.apu.SBCacc(snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.a == 22); - REQUIRE(apu->_internalRegisters.c == true); - REQUIRE(apu->_internalRegisters.h == false); - REQUIRE(apu->_internalRegisters.v == false); + REQUIRE(snes.apu._internalRegisters.a == 22); + REQUIRE(snes.apu._internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.h == false); + REQUIRE(snes.apu._internalRegisters.v == false); } TEST_CASE("CMP VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.y = 7; - apu->_internalWrite(4, 67); - apu->_internalWrite(7, 45); - result = apu->CMP(apu->_getIndexXAddr(), apu->_getIndexYAddr(), 5); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.y = 7; + snes.apu._internalWrite(4, 67); + snes.apu._internalWrite(7, 45); + result = snes.apu.CMP(snes.apu._getIndexXAddr(), snes.apu._getIndexYAddr(), 5); REQUIRE(result == 5); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.c == true); } TEST_CASE("CMPacc VIIIArithmetic", "[VIIIArithmetic]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 4; - apu->_internalRegisters.a = 67; - apu->_internalWrite(4, 45); - result = apu->CMPreg(apu->_internalRegisters.a, apu->_getIndexXAddr(), 3); + snes.apu._internalRegisters.x = 4; + snes.apu._internalRegisters.a = 67; + snes.apu._internalWrite(4, 45); + result = snes.apu.CMPreg(snes.apu._internalRegisters.a, snes.apu._getIndexXAddr(), 3); REQUIRE(result == 3); - REQUIRE(apu->_internalRegisters.c == true); + REQUIRE(snes.apu._internalRegisters.c == true); } ///////////////////////////////////////// @@ -1290,57 +1214,53 @@ TEST_CASE("CMPacc VIIIArithmetic", "[VIIIArithmetic]") TEST_CASE("MovRegToReg VIIIDataTransmission", "[VIIIDataTransmission]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.a = 23; - apu->_internalRegisters.x = 45; - result = apu->MOV(apu->_internalRegisters.x, apu->_internalRegisters.a); + snes.apu._internalRegisters.a = 23; + snes.apu._internalRegisters.x = 45; + result = snes.apu.MOV(snes.apu._internalRegisters.x, snes.apu._internalRegisters.a); REQUIRE(result == 2); - REQUIRE(apu->_internalRegisters.a == 45); + REQUIRE(snes.apu._internalRegisters.a == 45); } TEST_CASE("MovMemToMem VIIIDataTransmission", "[VIIIDataTransmission]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.pc = 0x23; - apu->_internalWrite(0x23, 0x56); - apu->_internalWrite(0x24, 0x33); - apu->_internalWrite(0x56, 99); - apu->_internalWrite(0x33, 66); - result = apu->MOV(apu->_getDirectAddr(), apu->_getImmediateData()); + snes.apu._internalRegisters.pc = 0x23; + snes.apu._internalWrite(0x23, 0x56); + snes.apu._internalWrite(0x24, 0x33); + snes.apu._internalWrite(0x56, 99); + snes.apu._internalWrite(0x33, 66); + result = snes.apu.MOV(snes.apu._getDirectAddr(), snes.apu._getImmediateData()); REQUIRE(result == 5); - REQUIRE(apu->_internalRead(0x33) == 0x56); + REQUIRE(snes.apu._internalRead(0x33) == 0x56); } TEST_CASE("MovRegToMem VIIIDataTransmission", "[VIIIDataTransmission]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 0x23; - apu->_internalRegisters.a = 0x44; - apu->_internalWrite(0x23, 0x56); - result = apu->MOV(apu->_internalRegisters.a, apu->_getIndexXAddr(), 4, true); + snes.apu._internalRegisters.x = 0x23; + snes.apu._internalRegisters.a = 0x44; + snes.apu._internalWrite(0x23, 0x56); + result = snes.apu.MOV(snes.apu._internalRegisters.a, snes.apu._getIndexXAddr(), 4, true); REQUIRE(result == 4); - REQUIRE(apu->_internalRead(0x23) == 0x44); - REQUIRE(apu->_internalRegisters.x == 0x24); + REQUIRE(snes.apu._internalRead(0x23) == 0x44); + REQUIRE(snes.apu._internalRegisters.x == 0x24); } TEST_CASE("MovMemToReg VIIIDataTransmission", "[VIIIDataTransmission]") { Init() - auto apu = snes.apu; int result = 0; - apu->_internalRegisters.x = 0x23; - apu->_internalRegisters.a = 0x44; - result = apu->MOV(apu->_getIndexXAddr(), apu->_internalRegisters.a, 4, true); + snes.apu._internalRegisters.x = 0x23; + snes.apu._internalRegisters.a = 0x44; + result = snes.apu.MOV(snes.apu._getIndexXAddr(), snes.apu._internalRegisters.a, 4, true); REQUIRE(result == 4); - REQUIRE(apu->_internalRegisters.x == 0x24); - REQUIRE(apu->_internalRegisters.a == 0x23); + REQUIRE(snes.apu._internalRegisters.x == 0x24); + REQUIRE(snes.apu._internalRegisters.a == 0x23); } \ No newline at end of file diff --git a/tests/APU/testOperand.cpp b/tests/APU/testOperand.cpp index 012b948..908d1a2 100644 --- a/tests/APU/testOperand.cpp +++ b/tests/APU/testOperand.cpp @@ -16,9 +16,9 @@ TEST_CASE("immediate apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0x40); - REQUIRE(apu->_getImmediateData() == 0x40); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0x40); + REQUIRE(snes.apu._getImmediateData() == 0x40); } TEST_CASE("direct apu_get", "[apu_get]") @@ -26,10 +26,10 @@ TEST_CASE("direct apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.p = true; - apu->_internalWrite(0x32, 0x40); - REQUIRE(apu->_getDirectAddr() == 0x140); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.p = true; + snes.apu._internalWrite(0x32, 0x40); + REQUIRE(snes.apu._getDirectAddr() == 0x140); } TEST_CASE("X apu_get", "[apu_get]") @@ -37,9 +37,9 @@ TEST_CASE("X apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.x = 0x32; - apu->_internalRegisters.p = true; - REQUIRE(apu->_getIndexXAddr() == 0x132); + snes.apu._internalRegisters.x = 0x32; + snes.apu._internalRegisters.p = true; + REQUIRE(snes.apu._getIndexXAddr() == 0x132); } TEST_CASE("Y apu_get", "[apu_get]") @@ -47,9 +47,9 @@ TEST_CASE("Y apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.y = 0x32; - apu->_internalRegisters.p = true; - REQUIRE(apu->_getIndexYAddr() == 0x132); + snes.apu._internalRegisters.y = 0x32; + snes.apu._internalRegisters.p = true; + REQUIRE(snes.apu._getIndexYAddr() == 0x132); } TEST_CASE("directbyX apu_get", "[apu_get]") @@ -57,10 +57,10 @@ TEST_CASE("directbyX apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.x = 0x03; - apu->_internalWrite(0x32, 0x40); - REQUIRE(apu->_getDirectAddrByX() == 0x43); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.x = 0x03; + snes.apu._internalWrite(0x32, 0x40); + REQUIRE(snes.apu._getDirectAddrByX() == 0x43); } TEST_CASE("directbyY apu_get", "[apu_get]") @@ -68,10 +68,10 @@ TEST_CASE("directbyY apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.y = 0x05; - apu->_internalWrite(0x32, 0x40); - REQUIRE(apu->_getDirectAddrByY() == 0x45); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.y = 0x05; + snes.apu._internalWrite(0x32, 0x40); + REQUIRE(snes.apu._getDirectAddrByY() == 0x45); } TEST_CASE("absolute apu_get", "[apu_get]") @@ -79,10 +79,10 @@ TEST_CASE("absolute apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - REQUIRE(apu->_getAbsoluteAddr() == 61455); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + REQUIRE(snes.apu._getAbsoluteAddr() == 61455); } TEST_CASE("absolutebyx apu_get", "[apu_get]") @@ -90,12 +90,12 @@ TEST_CASE("absolutebyx apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.x = 10; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - apu->_internalWrite(0b1111000000001111 + 10, 255); - REQUIRE(apu->_getAbsoluteByXAddr() == 255); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.x = 10; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + snes.apu._internalWrite(0b1111000000001111 + 10, 255); + REQUIRE(snes.apu._getAbsoluteByXAddr() == 255); } TEST_CASE("absoluteaddrbyx apu_get", "[apu_get]") @@ -103,11 +103,11 @@ TEST_CASE("absoluteaddrbyx apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.x = 10; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - REQUIRE(apu->_getAbsoluteAddrByX() == 61465); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.x = 10; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + REQUIRE(snes.apu._getAbsoluteAddrByX() == 61465); } TEST_CASE("absoluteaddrbyy apu_get", "[apu_get]") @@ -115,23 +115,22 @@ TEST_CASE("absoluteaddrbyy apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.y = 10; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - REQUIRE(apu->_getAbsoluteAddrByY() == 61465); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.y = 10; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + REQUIRE(snes.apu._getAbsoluteAddrByY() == 61465); } TEST_CASE("absolutebit apu_get", "[apu_get]") { Init() - auto apu = snes.apu; std::pair result; - apu->_internalRegisters.pc = 0x32; - apu->_internalWrite(0x32, 0b00001111); - apu->_internalWrite(0x33, 0b11110000); - result = apu->_getAbsoluteBit(); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalWrite(0x32, 0b00001111); + snes.apu._internalWrite(0x33, 0b11110000); + result = snes.apu._getAbsoluteBit(); REQUIRE(result.first == 4111); REQUIRE(result.second == 7); } @@ -141,13 +140,13 @@ TEST_CASE("absolutebyxdirect apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.p = true; - apu->_internalRegisters.x = 0x10; - apu->_internalWrite(0x32, 0x42); - apu->_internalWrite(0x152, 0b00001101); - apu->_internalWrite(0x253, 0b01101011); - REQUIRE(apu->_getAbsoluteDirectByXAddr() == 0b0110101100001101); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.p = true; + snes.apu._internalRegisters.x = 0x10; + snes.apu._internalWrite(0x32, 0x42); + snes.apu._internalWrite(0x152, 0b00001101); + snes.apu._internalWrite(0x253, 0b01101011); + REQUIRE(snes.apu._getAbsoluteDirectByXAddr() == 0b0110101100001101); } TEST_CASE("absolutedirectbyy apu_get", "[apu_get]") @@ -155,11 +154,11 @@ TEST_CASE("absolutedirectbyy apu_get", "[apu_get]") Init() auto apu = snes.apu; - apu->_internalRegisters.pc = 0x32; - apu->_internalRegisters.p = true; - apu->_internalRegisters.y = 0x10; - apu->_internalWrite(0x32, 0x42); - apu->_internalWrite(0x142, 0b00001101); - apu->_internalWrite(0x243, 0b01101011); - REQUIRE(apu->_getAbsoluteDirectAddrByY() == 0b0110101100011101); + snes.apu._internalRegisters.pc = 0x32; + snes.apu._internalRegisters.p = true; + snes.apu._internalRegisters.y = 0x10; + snes.apu._internalWrite(0x32, 0x42); + snes.apu._internalWrite(0x142, 0b00001101); + snes.apu._internalWrite(0x243, 0b01101011); + REQUIRE(snes.apu._getAbsoluteDirectAddrByY() == 0b0110101100011101); } \ No newline at end of file diff --git a/tests/CPU/Math/testADC.cpp b/tests/CPU/Math/testADC.cpp index f86debb..39e345b 100644 --- a/tests/CPU/Math/testADC.cpp +++ b/tests/CPU/Math/testADC.cpp @@ -11,113 +11,113 @@ using namespace ComSquare; TEST_CASE("addingOne ADC", "[ADC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.a = 0; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 1); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.a = 0; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 1); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("addingOneEmulation ADC", "[ADC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.a = 0; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 1); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.a = 0; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 1); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("overflow ADC", "[ADC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.a = 0xFFFF; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.a = 0xFFFF; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("overflowEmulation ADC", "[ADC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.a = 0xFF; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.a = 0xFF; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("signedOverflow ADC", "[ADC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x7FFF; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x8000); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == true); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x7FFF; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x8000); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == true); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("signedOverflowEmulated ADC", "[ADC]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x007F; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x0080); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == true); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x007F; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x0080); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == true); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negative ADC", "[ADC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x8FFF; - snes.wram->_data[0] = 0x1; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x9000); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x8FFF; + snes.wram._data[0] = 0x1; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x9000); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("memoryTwoBytes ADC", "[ADC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x000F; - snes.wram->_data[0] = 0x01; - snes.wram->_data[1] = 0x04; - snes.cpu->ADC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x0410); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x000F; + snes.wram._data[0] = 0x01; + snes.wram._data[1] = 0x04; + snes.cpu.ADC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x0410); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } \ No newline at end of file diff --git a/tests/CPU/Math/testCMP.cpp b/tests/CPU/Math/testCMP.cpp index 1309486..fcdee84 100644 --- a/tests/CPU/Math/testCMP.cpp +++ b/tests/CPU/Math/testCMP.cpp @@ -11,63 +11,63 @@ using namespace ComSquare; TEST_CASE("underflow CMP", "[CMP]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0; - snes.wram->_data[0] = 0x1; - snes.cpu->CMP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0; + snes.wram._data[0] = 0x1; + snes.cpu.CMP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero CMP", "[CMP]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x5; - snes.wram->_data[0] = 0x5; - snes.cpu->CMP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x5; + snes.wram._data[0] = 0x5; + snes.cpu.CMP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("nativeModeZero CMP", "[CMP]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x5000; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x50; - snes.cpu->CMP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x5000; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x50; + snes.cpu.CMP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("nativeModeNothing CMP", "[CMP]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x8000; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x50; - snes.cpu->CMP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x8000; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x50; + snes.cpu.CMP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negative CMP", "[CMP]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0xB000; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x10; - snes.cpu->CMP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0xB000; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x10; + snes.cpu.CMP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } diff --git a/tests/CPU/Math/testOthersMath.cpp b/tests/CPU/Math/testOthersMath.cpp index 7507ac5..a39212c 100644 --- a/tests/CPU/Math/testOthersMath.cpp +++ b/tests/CPU/Math/testOthersMath.cpp @@ -11,333 +11,333 @@ using namespace ComSquare; TEST_CASE("simple DEX", "[DEX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0x57; - snes.cpu->DEX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x56); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0x57; + snes.cpu.DEX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x56); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("overflowEmul DEX", "[DEX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0; - snes.cpu->DEX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xFF); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0; + snes.cpu.DEX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xFF); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("fakeOverflowNonEmul DEX", "[DEX]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0xFF00; - snes.cpu->DEX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xFEFF); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0xFF00; + snes.cpu.DEX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xFEFF); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nonNegative DEX", "[DEX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0x80; - snes.cpu->DEX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x7F); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0x80; + snes.cpu.DEX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x7F); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero DEX", "[DEX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 1; - snes.cpu->DEX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 1; + snes.cpu.DEX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("simple DEY", "[DEY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0x57; - snes.cpu->DEY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x56); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0x57; + snes.cpu.DEY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x56); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("overflowEmul DEY", "[DEY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0; - snes.cpu->DEY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xFF); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0; + snes.cpu.DEY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xFF); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("fakeOverflowNonEmul DEY", "[DEY]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0xFF00; - snes.cpu->DEY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xFEFF); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0xFF00; + snes.cpu.DEY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xFEFF); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nonNegative DEY", "[DEY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0x80; - snes.cpu->DEY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x7F); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0x80; + snes.cpu.DEY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x7F); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero DEY", "[DEY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 1; - snes.cpu->DEY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 1; + snes.cpu.DEY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("simple ORA", "[ORA]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x80; - snes.wram->_data[0] = 0x0F; - snes.cpu->ORA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x8F); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x80; + snes.wram._data[0] = 0x0F; + snes.cpu.ORA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x8F); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("simple2 ORA", "[ORA]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->ORA(0x00, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xF0); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.ORA(0x00, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xF0); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero ORA", "[ORA]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x00; - snes.wram->_data[0] = 0x00; - snes.cpu->ORA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x00); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x00; + snes.wram._data[0] = 0x00; + snes.cpu.ORA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x00); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("simple INC", "[INC]") { Init() - snes.cpu->_registers.p.m = true; - snes.wram->_data[0] = 0x56; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0x57); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.wram._data[0] = 0x56; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0x57); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negative INC", "[INC]") { Init() - snes.cpu->_registers.p.m = true; - snes.wram->_data[0] = 0x7F; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0x80); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.wram._data[0] = 0x7F; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0x80); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("accumulator INC", "[INC]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x56; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x57); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x56; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x57); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negativeAccumulator INC", "[INC]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x7F; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x80); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x7F; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x80); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeAccumulator INC", "[INC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x5600; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x5601); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x5600; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x5601); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negativeNativeAccumulator INC", "[INC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x8FFF; - snes.cpu->INC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x9000); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x8FFF; + snes.cpu.INC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x9000); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("simple DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = true; - snes.wram->_data[0] = 0x58; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0x57); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.wram._data[0] = 0x58; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0x57); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negative DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = true; - snes.wram->_data[0] = 0x81; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0x80); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.wram._data[0] = 0x81; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0x80); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("accumulator DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x58; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x57); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x58; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x57); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negativeAccumulator DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x81; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x80); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x81; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x80); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeAccumulator DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x5602; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x5601); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x5602; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x5601); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("negativeNativeAccumulator DEC", "[DEC]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x9001; - snes.cpu->DEC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x9000); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x9001; + snes.cpu.DEC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x9000); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("simple EOR", "[EOR]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x80; - snes.wram->_data[0] = 0x0F; - snes.cpu->EOR(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x8F); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x80; + snes.wram._data[0] = 0x0F; + snes.cpu.EOR(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x8F); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("simple2 EOR", "[EOR]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->EOR(0x00, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x70); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.EOR(0x00, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x70); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero EOR", "[EOR]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x00; - snes.wram->_data[0] = 0x00; - snes.cpu->EOR(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x00); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x00; + snes.wram._data[0] = 0x00; + snes.cpu.EOR(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x00); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("zero XBA", "[XBA]") { Init() - snes.cpu->_registers.a = 0x0001; - snes.cpu->XBA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x0100); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._registers.a = 0x0001; + snes.cpu.XBA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x0100); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("negative XBA", "[XBA]") { Init() - snes.cpu->_registers.a = 0x8001; - snes.cpu->XBA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x0180); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._registers.a = 0x8001; + snes.cpu.XBA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x0180); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } diff --git a/tests/CPU/Math/testSBC.cpp b/tests/CPU/Math/testSBC.cpp index 3eebb67..d4eaeb0 100644 --- a/tests/CPU/Math/testSBC.cpp +++ b/tests/CPU/Math/testSBC.cpp @@ -11,82 +11,82 @@ using namespace ComSquare; TEST_CASE("removingOne SBC", "[SBC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.c = true; - snes.cpu->_registers.a = 0x1; - snes.wram->_data[0] = 0x1; - snes.cpu->SBC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.c = true; + snes.cpu._registers.a = 0x1; + snes.wram._data[0] = 0x1; + snes.cpu.SBC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("legitOverflowWithCarry SBC", "[SBC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.a = 0x1; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.c = true; - snes.wram->_data[0] = 0x03; - snes.wram->_data[1] = 0x20; - snes.cpu->SBC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xDFFE); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.a = 0x1; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.c = true; + snes.wram._data[0] = 0x03; + snes.wram._data[1] = 0x20; + snes.cpu.SBC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xDFFE); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("overflowWithCarry SBC", "[SBC]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.a = 0x1; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.c = true; - snes.wram->_data[0] = 0x03; - snes.wram->_data[1] = 0x20; - snes.cpu->SBC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xDFFE); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.a = 0x1; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.c = true; + snes.wram._data[0] = 0x03; + snes.wram._data[1] = 0x20; + snes.cpu.SBC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xDFFE); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("overflowEmulation SBC", "[SBC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.a = 0x1; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = false; - snes.wram->_data[0] = 0x02; - snes.cpu->SBC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xFE); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.a = 0x1; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = false; + snes.wram._data[0] = 0x02; + snes.cpu.SBC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xFE); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } //TEST_CASE("decimal SBC", "[SBC]") //{ // Init() -// snes.cpu->_isEmulationMode = true; -// snes.cpu->_registers.a = 0x1; -// snes.cpu->_registers.p.d = true; -// snes.cpu->_registers.p.m = false; -// snes.wram->_data[0] = 0x03; -// snes.wram->_data[1] = 0x20; -// snes.cpu->SBC(0x0, ComSquare::CPU::AddressingMode::Implied); -// REQUIRE(snes.cpu->_registers.a == 0x7998); -// REQUIRE(snes.cpu->_registers.p.c == false); -// REQUIRE(snes.cpu->_registers.p.v == false); -// REQUIRE(snes.cpu->_registers.p.n == false); -// REQUIRE(snes.cpu->_registers.p.z == false); +// snes.cpu._isEmulationMode = true; +// snes.cpu._registers.a = 0x1; +// snes.cpu._registers.p.d = true; +// snes.cpu._registers.p.m = false; +// snes.wram._data[0] = 0x03; +// snes.wram._data[1] = 0x20; +// snes.cpu.SBC(0x0, ComSquare::CPU::AddressingMode::Implied); +// REQUIRE(snes.cpu._registers.a == 0x7998); +// REQUIRE(snes.cpu._registers.p.c == false); +// REQUIRE(snes.cpu._registers.p.v == false); +// REQUIRE(snes.cpu._registers.p.n == false); +// REQUIRE(snes.cpu._registers.p.z == false); //} diff --git a/tests/CPU/testAddressingMode.cpp b/tests/CPU/testAddressingMode.cpp index ff7972f..d7e419e 100644 --- a/tests/CPU/testAddressingMode.cpp +++ b/tests/CPU/testAddressingMode.cpp @@ -8,288 +8,282 @@ using namespace ComSquare; -TEST_CASE("LegitBus AddrModeInit", "[AddrModeInit]") -{ - Init() - REQUIRE(snes.bus.get() == snes.cpu->_bus.get()); -} - TEST_CASE("Immediate AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x000015; - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = false; - REQUIRE(snes.cpu->_getImmediateAddrForA() == 0x000015); - REQUIRE(snes.cpu->_registers.pac == 0x000017); + snes.cpu._registers.pac = 0x000015; + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = false; + REQUIRE(snes.cpu._getImmediateAddrForA() == 0x000015); + REQUIRE(snes.cpu._registers.pac == 0x000017); } TEST_CASE("ImmediateMemoryFlag AddrMode", "[AddrMode]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.pac = 0x000015; - snes.cpu->_registers.p.m = false; - REQUIRE(snes.cpu->_getImmediateAddrForA() == 0x000015); - REQUIRE(snes.cpu->_registers.pac == 0x000017); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.pac = 0x000015; + snes.cpu._registers.p.m = false; + REQUIRE(snes.cpu._getImmediateAddrForA() == 0x000015); + REQUIRE(snes.cpu._registers.pac == 0x000017); } TEST_CASE("ImmediateBankChange AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x00FFFF; - snes.cpu->_registers.p.m = true; - REQUIRE(snes.cpu->_getImmediateAddrForA() == 0x00FFFF); - REQUIRE(snes.cpu->_registers.pac == 0x000000); + snes.cpu._registers.pac = 0x00FFFF; + snes.cpu._registers.p.m = true; + REQUIRE(snes.cpu._getImmediateAddrForA() == 0x00FFFF); + REQUIRE(snes.cpu._registers.pac == 0x000000); } TEST_CASE("Direct AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x15; - snes.cpu->_registers.pac = 0x808000; - snes.cpu->_registers.d = 0x1000; - REQUIRE(snes.cpu->_getDirectAddr() == 0x1015); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cartridge._data[0] = 0x15; + snes.cpu._registers.pac = 0x808000; + snes.cpu._registers.d = 0x1000; + REQUIRE(snes.cpu._getDirectAddr() == 0x1015); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("Absolute AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x1C; - snes.cartridge->_data[1] = 0x90; - snes.cpu->_registers.pac = 0x808000; - snes.cpu->_registers.dbr = 0x88; - REQUIRE(snes.cpu->_getAbsoluteAddr() == 0x88901C); - REQUIRE(snes.cpu->_registers.pac == 0x808002); + snes.cartridge._data[0] = 0x1C; + snes.cartridge._data[1] = 0x90; + snes.cpu._registers.pac = 0x808000; + snes.cpu._registers.dbr = 0x88; + REQUIRE(snes.cpu._getAbsoluteAddr() == 0x88901C); + REQUIRE(snes.cpu._registers.pac == 0x808002); } TEST_CASE("AbsoluteLong AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x1C; - snes.cartridge->_data[1] = 0x90; - snes.cartridge->_data[2] = 0xFF; - snes.cpu->_registers.pac = 0x808000; - snes.cpu->_registers.dbr = 0x88; - REQUIRE(snes.cpu->_getAbsoluteLongAddr() == 0xFF901C); - REQUIRE(snes.cpu->_registers.pac == 0x808003); + snes.cartridge._data[0] = 0x1C; + snes.cartridge._data[1] = 0x90; + snes.cartridge._data[2] = 0xFF; + snes.cpu._registers.pac = 0x808000; + snes.cpu._registers.dbr = 0x88; + REQUIRE(snes.cpu._getAbsoluteLongAddr() == 0xFF901C); + REQUIRE(snes.cpu._registers.pac == 0x808003); } TEST_CASE("DirectIndirectIndexed AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x10; - snes.wram->_data[0x1010] = 0x30; - snes.wram->_data[0x1011] = 0x40; - snes.cpu->_registers.pac = 0x808000; - snes.cpu->_registers.dbr = 0x80; - snes.cpu->_registers.y = 0x0001; - snes.cpu->_registers.d = 0x1000; - REQUIRE(snes.cpu->_getDirectIndirectIndexedYAddr() == 0x804031); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cartridge._data[0] = 0x10; + snes.wram._data[0x1010] = 0x30; + snes.wram._data[0x1011] = 0x40; + snes.cpu._registers.pac = 0x808000; + snes.cpu._registers.dbr = 0x80; + snes.cpu._registers.y = 0x0001; + snes.cpu._registers.d = 0x1000; + REQUIRE(snes.cpu._getDirectIndirectIndexedYAddr() == 0x804031); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("DirectIndirectIndexedLong AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cpu->_registers.d = 0x1000; - snes.cartridge->_data[0] = 0x10; - snes.wram->_data[0x1010] = 0x30; - snes.wram->_data[0x1011] = 0x40; - snes.wram->_data[0x1012] = 0x23; - REQUIRE(snes.cpu->_getDirectIndirectIndexedYLongAddr() == 0x234030); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cpu._registers.pac = 0x808000; + snes.cpu._registers.d = 0x1000; + snes.cartridge._data[0] = 0x10; + snes.wram._data[0x1010] = 0x30; + snes.wram._data[0x1011] = 0x40; + snes.wram._data[0x1012] = 0x23; + REQUIRE(snes.cpu._getDirectIndirectIndexedYLongAddr() == 0x234030); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("DirectIndexedIndirect AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x10; - snes.cpu->_registers.d = 0x1000; - snes.cpu->_registers.x = 0x0002; - snes.wram->_data[0x1012] = 0x30; - snes.wram->_data[0x1013] = 0x40; - snes.cpu->_registers.dbr = 0x80; - snes.cpu->_registers.pac = 0x808000; - REQUIRE(snes.cpu->_getDirectIndirectIndexedXAddr() == 0x804030); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cartridge._data[0] = 0x10; + snes.cpu._registers.d = 0x1000; + snes.cpu._registers.x = 0x0002; + snes.wram._data[0x1012] = 0x30; + snes.wram._data[0x1013] = 0x40; + snes.cpu._registers.dbr = 0x80; + snes.cpu._registers.pac = 0x808000; + REQUIRE(snes.cpu._getDirectIndirectIndexedXAddr() == 0x804030); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("DirectIndexedByX AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x10; - snes.cpu->_registers.d = 0x1000; - snes.cpu->_registers.x = 0x0002; - snes.cpu->_registers.pac = 0x808000; - REQUIRE(snes.cpu->_getDirectIndexedByXAddr() == 0x1012); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cartridge._data[0] = 0x10; + snes.cpu._registers.d = 0x1000; + snes.cpu._registers.x = 0x0002; + snes.cpu._registers.pac = 0x808000; + REQUIRE(snes.cpu._getDirectIndexedByXAddr() == 0x1012); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("DirectIndexedByY AddrMode", "[AddrMode]") { Init() - snes.cartridge->_data[0] = 0x10; - snes.cpu->_registers.d = 0x1000; - snes.cpu->_registers.y = 0x0002; - snes.cpu->_registers.pac = 0x808000; - REQUIRE(snes.cpu->_getDirectIndexedByYAddr() == 0x1012); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + snes.cartridge._data[0] = 0x10; + snes.cpu._registers.d = 0x1000; + snes.cpu._registers.y = 0x0002; + snes.cpu._registers.pac = 0x808000; + REQUIRE(snes.cpu._getDirectIndexedByYAddr() == 0x1012); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("AbsoluteIndexByX AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x10; - snes.cartridge->_data[1] = 0xAC; - snes.cpu->_registers.dbr = 0xEF; - snes.cpu->_registers.x = 0x0005; - REQUIRE(snes.cpu->_getAbsoluteIndexedByXAddr() == 0xEFAC15); - REQUIRE(snes.cpu->_registers.pac == 0x808002); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x10; + snes.cartridge._data[1] = 0xAC; + snes.cpu._registers.dbr = 0xEF; + snes.cpu._registers.x = 0x0005; + REQUIRE(snes.cpu._getAbsoluteIndexedByXAddr() == 0xEFAC15); + REQUIRE(snes.cpu._registers.pac == 0x808002); } TEST_CASE("AbsoluteIndexByY AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x10; - snes.cartridge->_data[1] = 0xAC; - snes.cpu->_registers.dbr = 0xEF; - snes.cpu->_registers.y = 0x0005; - REQUIRE(snes.cpu->_getAbsoluteIndexedByYAddr() == 0xEFAC15); - REQUIRE(snes.cpu->_registers.pac == 0x808002); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x10; + snes.cartridge._data[1] = 0xAC; + snes.cpu._registers.dbr = 0xEF; + snes.cpu._registers.y = 0x0005; + REQUIRE(snes.cpu._getAbsoluteIndexedByYAddr() == 0xEFAC15); + REQUIRE(snes.cpu._registers.pac == 0x808002); } TEST_CASE("AbsoluteLongIndexByX AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x10; - snes.cartridge->_data[1] = 0xAC; - snes.cartridge->_data[2] = 0xEF; - snes.cpu->_registers.x = 0x0005; - REQUIRE(snes.cpu->_getAbsoluteIndexedByXLongAddr() == 0xEFAC15); - REQUIRE(snes.cpu->_registers.pac == 0x808003); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x10; + snes.cartridge._data[1] = 0xAC; + snes.cartridge._data[2] = 0xEF; + snes.cpu._registers.x = 0x0005; + REQUIRE(snes.cpu._getAbsoluteIndexedByXLongAddr() == 0xEFAC15); + REQUIRE(snes.cpu._registers.pac == 0x808003); } //TEST_CASE("ProgramCounterRelativePositive AddrMode", "[AddrMode]") //{ // Init() -// snes.cpu->_registers.pac = 0x808010; -// snes.cartridge->_data[0x10] = 0x15; -// REQUIRE(snes.cpu->_getProgramCounterRelativeAddr() == 0x808025); -// REQUIRE(snes.cpu->_registers.pac == 0x808011); +// snes.cpu._registers.pac = 0x808010; +// snes.cartridge._data[0x10] = 0x15; +// REQUIRE(snes.cpu._getProgramCounterRelativeAddr() == 0x808025); +// REQUIRE(snes.cpu._registers.pac == 0x808011); //} // //TEST_CASE("ProgramCounterRelativeNegative AddrMode", "[AddrMode]") //{ // Init() -// snes.cpu->_registers.pac = 0x808010; -// snes.cartridge->_data[0x10] = -0x15; -// REQUIRE(snes.cpu->_getProgramCounterRelativeAddr() == 0x807FFB); -// REQUIRE(snes.cpu->_registers.pac == 0x808011); +// snes.cpu._registers.pac = 0x808010; +// snes.cartridge._data[0x10] = -0x15; +// REQUIRE(snes.cpu._getProgramCounterRelativeAddr() == 0x807FFB); +// REQUIRE(snes.cpu._registers.pac == 0x808011); //} // //TEST_CASE("ProgramCounterRelativeLongPositive AddrMode", "[AddrMode]") //{ // Init() -// snes.cpu->_registers.pac = 0x808010; -// snes.cartridge->_data[0x10] = 0x15; -// snes.cartridge->_data[0x11] = 0x10; -// auto addr = snes.cpu->_getProgramCounterRelativeLongAddr(); +// snes.cpu._registers.pac = 0x808010; +// snes.cartridge._data[0x10] = 0x15; +// snes.cartridge._data[0x11] = 0x10; +// auto addr = snes.cpu._getProgramCounterRelativeLongAddr(); // REQUIRE(addr == 0x809025); -// REQUIRE(snes.cpu->_registers.pac == 0x808012); +// REQUIRE(snes.cpu._registers.pac == 0x808012); //} // //TEST_CASE("ProgramCounterRelativeLongNegative AddrMode", "[AddrMode]") //{ // Init() -// snes.cpu->_registers.pac = 0x808010; -// snes.cartridge->_data[0x10] = 0x10; -// snes.cartridge->_data[0x11] = -0x15; -// auto addr = snes.cpu->_getProgramCounterRelativeLongAddr(); +// snes.cpu._registers.pac = 0x808010; +// snes.cartridge._data[0x10] = 0x10; +// snes.cartridge._data[0x11] = -0x15; +// auto addr = snes.cpu._getProgramCounterRelativeLongAddr(); // REQUIRE(addr == 0x806B00); -// REQUIRE(snes.cpu->_registers.pac == 0x808012); +// REQUIRE(snes.cpu._registers.pac == 0x808012); //} TEST_CASE("AbsoluteIndirect AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0xAB; - snes.cartridge->_data[1] = 0x01; - snes.wram->_data[0x01AB] = 0xEF; - snes.wram->_data[0x01AC] = 0x01; - auto addr = snes.cpu->_getAbsoluteIndirectAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0xAB; + snes.cartridge._data[1] = 0x01; + snes.wram._data[0x01AB] = 0xEF; + snes.wram._data[0x01AC] = 0x01; + auto addr = snes.cpu._getAbsoluteIndirectAddr(); REQUIRE(addr == 0x01EF); - REQUIRE(snes.cpu->_registers.pac == 0x808002); + REQUIRE(snes.cpu._registers.pac == 0x808002); } TEST_CASE("AbsoluteIndexedIndirect AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0xAB; - snes.cartridge->_data[1] = 0x01; - snes.cpu->_registers.x = 2; - snes.wram->_data[0x01AD] = 0xEF; - snes.wram->_data[0x01AE] = 0x01; - auto addr = snes.cpu->_getAbsoluteIndirectIndexedByXAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0xAB; + snes.cartridge._data[1] = 0x01; + snes.cpu._registers.x = 2; + snes.wram._data[0x01AD] = 0xEF; + snes.wram._data[0x01AE] = 0x01; + auto addr = snes.cpu._getAbsoluteIndirectIndexedByXAddr(); REQUIRE(addr == 0x01EF); - REQUIRE(snes.cpu->_registers.pac == 0x808002); + REQUIRE(snes.cpu._registers.pac == 0x808002); } TEST_CASE("DirectIndirect AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x01; - snes.cpu->_registers.d = 0x1010; - snes.wram->_data[0x1011] = 0xEF; - snes.wram->_data[0x1012] = 0x01; - snes.cpu->_registers.dbr = 0x88; - auto addr = snes.cpu->_getDirectIndirectAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x01; + snes.cpu._registers.d = 0x1010; + snes.wram._data[0x1011] = 0xEF; + snes.wram._data[0x1012] = 0x01; + snes.cpu._registers.dbr = 0x88; + auto addr = snes.cpu._getDirectIndirectAddr(); REQUIRE(addr == 0x8801EF); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("DirectIndirectLong AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x06; - snes.cpu->_registers.d = 0x1010; - snes.wram->_data[0x1016] = 0xEF; - snes.wram->_data[0x1017] = 0x01; - snes.wram->_data[0x1018] = 0x88; - auto addr = snes.cpu->_getDirectIndirectLongAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x06; + snes.cpu._registers.d = 0x1010; + snes.wram._data[0x1016] = 0xEF; + snes.wram._data[0x1017] = 0x01; + snes.wram._data[0x1018] = 0x88; + auto addr = snes.cpu._getDirectIndirectLongAddr(); REQUIRE(addr == 0x8801EF); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("StackRelative AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x06; - snes.cpu->_registers.s = 0x1010; - auto addr = snes.cpu->_getStackRelativeAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x06; + snes.cpu._registers.s = 0x1010; + auto addr = snes.cpu._getStackRelativeAddr(); REQUIRE(addr == 0x1016); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + REQUIRE(snes.cpu._registers.pac == 0x808001); } TEST_CASE("StackRelativeIndirectIndexed AddrMode", "[AddrMode]") { Init() - snes.cpu->_registers.pac = 0x808000; - snes.cartridge->_data[0] = 0x06; - snes.cpu->_registers.s = 0x1010; - snes.cpu->_registers.y = 0x5; - snes.cpu->_registers.dbr = 0x88; - auto addr = snes.cpu->_getStackRelativeIndirectIndexedYAddr(); + snes.cpu._registers.pac = 0x808000; + snes.cartridge._data[0] = 0x06; + snes.cpu._registers.s = 0x1010; + snes.cpu._registers.y = 0x5; + snes.cpu._registers.dbr = 0x88; + auto addr = snes.cpu._getStackRelativeIndirectIndexedYAddr(); REQUIRE(addr == 0x88101B); - REQUIRE(snes.cpu->_registers.pac == 0x808001); + REQUIRE(snes.cpu._registers.pac == 0x808001); } \ No newline at end of file diff --git a/tests/CPU/testBits.cpp b/tests/CPU/testBits.cpp index 0c7ea30..d7e0bec 100644 --- a/tests/CPU/testBits.cpp +++ b/tests/CPU/testBits.cpp @@ -12,324 +12,324 @@ using namespace ComSquare; TEST_CASE("emulation AND", "[AND]") { Init() - snes.wram->_data[0] = 0x00; - snes.cpu->_registers.a = 0xFF; - snes.cpu->_isEmulationMode = true; - snes.cpu->AND(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x00); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0x00; + snes.cpu._registers.a = 0xFF; + snes.cpu._isEmulationMode = true; + snes.cpu.AND(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x00); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("nativeNegative AND", "[AND]") { Init() - snes.wram->_data[0] = 0xF0; - snes.wram->_data[1] = 0xF0; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0xFF00; - snes.cpu->_isEmulationMode = false; - snes.cpu->AND(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xF000); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); + snes.wram._data[0] = 0xF0; + snes.wram._data[1] = 0xF0; + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0xFF00; + snes.cpu._isEmulationMode = false; + snes.cpu.AND(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xF000); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); } TEST_CASE("emulationTest AND", "[AND]") { Init() - snes.wram->_data[0] = 0b00110011; - snes.cpu->_registers.a = 0b00110111; - snes.cpu->_isEmulationMode = true; - snes.cpu->AND(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0b00110011); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b00110011; + snes.cpu._registers.a = 0b00110111; + snes.cpu._isEmulationMode = true; + snes.cpu.AND(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0b00110011); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTest TSB", "[TSB]") { Init() - snes.wram->_data[0] = 0b00110011; - snes.cpu->_registers.a = 0b00110111; - snes.cpu->_registers.p.m = true; - snes.cpu->TSB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[0] == 0b00110111); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.wram._data[0] = 0b00110011; + snes.cpu._registers.a = 0b00110111; + snes.cpu._registers.p.m = true; + snes.cpu.TSB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[0] == 0b00110111); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeTest TSB", "[TSB]") { Init() - snes.wram->_data[0] = 0xF0; - snes.wram->_data[1] = 0x0F; - snes.cpu->_registers.a = 0x8008; - snes.cpu->_registers.p.m = false; - snes.cpu->TSB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[0] == 0xF8); - REQUIRE(snes.wram->_data[1] == 0x8F); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.wram._data[0] = 0xF0; + snes.wram._data[1] = 0x0F; + snes.cpu._registers.a = 0x8008; + snes.cpu._registers.p.m = false; + snes.cpu.TSB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[0] == 0xF8); + REQUIRE(snes.wram._data[1] == 0x8F); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("immediate BIT", "[BIT]") { Init() - snes.wram->_data[0] = 0xFF; - snes.wram->_data[1] = 0x00; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x8008; - snes.cpu->_registers.p.v = false; - snes.cpu->_registers.p.n = false; - snes.cpu->BIT(0x0, ComSquare::CPU::AddressingMode::ImmediateForA); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.v == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0xFF; + snes.wram._data[1] = 0x00; + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x8008; + snes.cpu._registers.p.v = false; + snes.cpu._registers.p.n = false; + snes.cpu.BIT(0x0, ComSquare::CPU::AddressingMode::ImmediateForA); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.v == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("immediateZero BIT", "[BIT]") { Init() - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0xFF; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x0008; - snes.cpu->_registers.p.v = true; - snes.cpu->_registers.p.n = true; - snes.cpu->BIT(0x0, ComSquare::CPU::AddressingMode::ImmediateForA); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.v == true); - REQUIRE(snes.cpu->_registers.p.n == true); + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0xFF; + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x0008; + snes.cpu._registers.p.v = true; + snes.cpu._registers.p.n = true; + snes.cpu.BIT(0x0, ComSquare::CPU::AddressingMode::ImmediateForA); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.v == true); + REQUIRE(snes.cpu._registers.p.n == true); } TEST_CASE("other BIT", "[BIT]") { Init() - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0xFF; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x8008; - snes.cpu->_registers.p.v = false; - snes.cpu->_registers.p.n = false; - snes.cpu->BIT(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.v == true); - REQUIRE(snes.cpu->_registers.p.n == true); + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0xFF; + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x8008; + snes.cpu._registers.p.v = false; + snes.cpu._registers.p.n = false; + snes.cpu.BIT(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.v == true); + REQUIRE(snes.cpu._registers.p.n == true); } TEST_CASE("emulationTest ASL", "[ASL]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->ASL(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b01100110); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu.ASL(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b01100110); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("nativeTest ASL", "[ASL]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.wram->_data[1] = 0b10000011; - snes.cpu->_registers.p.m = false; - snes.cpu->ASL(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b01100110); - REQUIRE(snes.wram->_data[1] == 0b00000111); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.wram._data[1] = 0b10000011; + snes.cpu._registers.p.m = false; + snes.cpu.ASL(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b01100110); + REQUIRE(snes.wram._data[1] == 0b00000111); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("accumulator ASL", "[ASL]") { Init() - snes.cpu->_registers.a = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->ASL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.al == 0b01100110); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._registers.a = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu.ASL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.al == 0b01100110); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTest LSR", "[LSR]") { Init() - snes.wram->_data[0] = 0b01100110; - snes.cpu->_registers.p.m = true; - snes.cpu->LSR(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b00110011); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b01100110; + snes.cpu._registers.p.m = true; + snes.cpu.LSR(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b00110011); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("nativeTest LSR", "[LSR]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.wram->_data[1] = 0b10000011; - snes.cpu->_registers.p.m = false; - snes.cpu->LSR(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b11011001); - REQUIRE(snes.wram->_data[1] == 0b01000001); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.wram._data[1] = 0b10000011; + snes.cpu._registers.p.m = false; + snes.cpu.LSR(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b11011001); + REQUIRE(snes.wram._data[1] == 0b01000001); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("accumulator LSR", "[LSR]") { Init() - snes.cpu->_registers.a = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->LSR(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.al == 0b01011001); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._registers.a = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu.LSR(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.al == 0b01011001); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTest ROL", "[ROL]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b01100110); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu.ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b01100110); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTestWithCarry ROL", "[ROL]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = true; - snes.cpu->ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b01100111); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = true; + snes.cpu.ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b01100111); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("nativeTest ROL", "[ROL]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.wram->_data[1] = 0b10000011; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.c = true; - snes.cpu->ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b01100111); - REQUIRE(snes.wram->_data[1] == 0b00000111); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.wram._data[1] = 0b10000011; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.c = true; + snes.cpu.ROL(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b01100111); + REQUIRE(snes.wram._data[1] == 0b00000111); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("accumulator ROL", "[ROL]") { Init() - snes.cpu->_registers.a = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = true; - snes.cpu->ROL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.al == 0b01100111); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._registers.a = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = true; + snes.cpu.ROL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.al == 0b01100111); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTestWithtoutCarry ROR", "[ROR]") { Init() - snes.wram->_data[0] = 0b01100110; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = false; - snes.cpu->ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b00110011); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b01100110; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = false; + snes.cpu.ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b00110011); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTest ROR", "[ROR]") { Init() - snes.wram->_data[0] = 0b01100110; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = true; - snes.cpu->ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b10110011); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b01100110; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = true; + snes.cpu.ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b10110011); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("nativeTest ROR", "[ROR]") { Init() - snes.wram->_data[0] = 0b10110011; - snes.wram->_data[1] = 0b10000011; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.c = true; - snes.cpu->ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); - REQUIRE(snes.wram->_data[0] == 0b11011001); - REQUIRE(snes.wram->_data[1] == 0b11000001); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.wram._data[0] = 0b10110011; + snes.wram._data[1] = 0b10000011; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.c = true; + snes.cpu.ROR(0x0, ComSquare::CPU::AddressingMode::Absolute); + REQUIRE(snes.wram._data[0] == 0b11011001); + REQUIRE(snes.wram._data[1] == 0b11000001); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("accumulator ROR", "[ROR]") { Init() - snes.cpu->_registers.a = 0b10110011; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.c = true; - snes.cpu->ROR(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.al == 0b11011001); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._registers.a = 0b10110011; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.c = true; + snes.cpu.ROR(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.al == 0b11011001); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("emulationTest TRB", "[TRB]") { Init() - snes.wram->_data[0] = 0xFF; - snes.cpu->_registers.a = 0b00110111; - snes.cpu->_registers.p.m = true; - snes.cpu->TRB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[0] == 0b11001000); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.wram._data[0] = 0xFF; + snes.cpu._registers.a = 0b00110111; + snes.cpu._registers.p.m = true; + snes.cpu.TRB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[0] == 0b11001000); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeTest TRB", "[TRB]") { Init() - snes.wram->_data[0] = 0xF0; - snes.wram->_data[1] = 0x0F; - snes.cpu->_registers.a = 0x0F0F; - snes.cpu->_registers.p.m = false; - snes.cpu->TRB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[0] == 0xF0); - REQUIRE(snes.wram->_data[1] == 0x00); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.wram._data[0] = 0xF0; + snes.wram._data[1] = 0x0F; + snes.cpu._registers.a = 0x0F0F; + snes.cpu._registers.p.m = false; + snes.cpu.TRB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[0] == 0xF0); + REQUIRE(snes.wram._data[1] == 0x00); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero TRB", "[TRB]") { Init() - snes.wram->_data[0] = 0xFF; - snes.cpu->_registers.a = 0b0; - snes.cpu->_registers.p.m = true; - snes.cpu->TRB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[0] == 0xFF); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.wram._data[0] = 0xFF; + snes.cpu._registers.a = 0b0; + snes.cpu._registers.p.m = true; + snes.cpu.TRB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[0] == 0xFF); + REQUIRE(snes.cpu._registers.p.z == true); } \ No newline at end of file diff --git a/tests/CPU/testDMA.cpp b/tests/CPU/testDMA.cpp index 0b25bdf..61ee2d1 100644 --- a/tests/CPU/testDMA.cpp +++ b/tests/CPU/testDMA.cpp @@ -10,11 +10,11 @@ using namespace ComSquare; TEST_CASE("RomToVRAM DMA", "[DMA]") { Init() - snes.cartridge->_size = 4000000; - snes.cartridge->_data = new uint8_t[snes.cartridge->_size]; + snes.cartridge._size = 4000000; + snes.cartridge._data = new uint8_t[snes.cartridge._size]; for (unsigned i = 0; i < 0x400; i++) { - snes.cartridge->_data[0x9be00 + i * 2] = i; - snes.cartridge->_data[0x9be00 + i * 2 + 1] = i >> 8; + snes.cartridge._data[0x9be00 + i * 2] = i; + snes.cartridge._data[0x9be00 + i * 2 + 1] = i >> 8; } // Transferring $800 bytes from ROM ($13BE00) to VRam ($2000) via DMA channel 0 @@ -25,36 +25,36 @@ TEST_CASE("RomToVRAM DMA", "[DMA]") snes.bus.write(0x2116, 0); snes.bus.write(0x4301, 0x18); - REQUIRE(snes.cpu->_dmaChannels[0]._port == 0x18); + REQUIRE(snes.cpu._dmaChannels[0]._port == 0x18); snes.bus.write(0x4304, 0x13); snes.bus.write(0x4303, 0xBE); snes.bus.write(0x4302, 0x00); - REQUIRE(snes.cpu->_dmaChannels[0]._aAddress.raw == 0x13BE00); + REQUIRE(snes.cpu._dmaChannels[0]._aAddress.raw == 0x13BE00); snes.bus.write(0x4306, 0x08); snes.bus.write(0x4305, 0); - REQUIRE(snes.cpu->_dmaChannels[0]._count.raw == 0x0800); + REQUIRE(snes.cpu._dmaChannels[0]._count.raw == 0x0800); snes.bus.write(0x4300, 1); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.direction == CPU::DMA::AtoB); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister._ == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.increment == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.fixed == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.mode == CPU::DMA::TwoToTwo); - REQUIRE(snes.cpu->_dmaChannels[0].enabled == false); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.direction == CPU::DMA::AtoB); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister._ == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.increment == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.fixed == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.mode == CPU::DMA::TwoToTwo); + REQUIRE(snes.cpu._dmaChannels[0].enabled == false); // Enabling DMA's channel 0 snes.bus.write(0x420B, 1); - REQUIRE(snes.cpu->_dmaChannels[0].enabled == true); + REQUIRE(snes.cpu._dmaChannels[0].enabled == true); // TODO There is an overhead of 12-24 cycles for the whole transfer. How should I know how many cycles there is? - auto cycles = snes.cpu->_dmaChannels[0].run(1000000); + auto cycles = snes.cpu._dmaChannels[0].run(1000000); REQUIRE(cycles == 8 + 8 * 0x800); - REQUIRE(snes.cpu->_dmaChannels[0]._count.raw == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._aAddress.raw == 0x13C600); - REQUIRE(snes.cpu->_dmaChannels[0]._port == 0x18); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0x2400); + REQUIRE(snes.cpu._dmaChannels[0]._count.raw == 0); + REQUIRE(snes.cpu._dmaChannels[0]._aAddress.raw == 0x13C600); + REQUIRE(snes.cpu._dmaChannels[0]._port == 0x18); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0x2400); for(unsigned i = 0; i < 0x400; i++) { - uint16_t value = snes.ppu->vram->_data[0x2000 * 2 + i * 2] | (snes.ppu->vram->_data[0x2000 * 2 + i * 2 + 1] << 8); + uint16_t value = snes.ppu.vram->_data[0x2000 * 2 + i * 2] | (snes.ppu.vram->_data[0x2000 * 2 + i * 2 + 1] << 8); REQUIRE(value == i); } - REQUIRE(snes.cpu->_dmaChannels[0].enabled == false); + REQUIRE(snes.cpu._dmaChannels[0].enabled == false); } TEST_CASE("VramWrite DMA", "[DMA]") @@ -65,10 +65,10 @@ TEST_CASE("VramWrite DMA", "[DMA]") for (unsigned i = 0; i < 0x400; i++) { snes.bus.write(0x2119, i >> 8); snes.bus.write(0x2118, i); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0x2001 + i); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0x2001 + i); } for(unsigned i = 0; i < 0x400; i++) { - uint16_t value = snes.ppu->vram->_data[0x2000 * 2 + i * 2] | (snes.ppu->vram->_data[0x2000 * 2 + i * 2 + 1] << 8); + uint16_t value = snes.ppu.vram->_data[0x2000 * 2 + i * 2] | (snes.ppu.vram->_data[0x2000 * 2 + i * 2 + 1] << 8); REQUIRE(value == (uint16_t)i); } } @@ -82,10 +82,10 @@ TEST_CASE("VramWriteInvertedOrder DMA", "[DMA]") for (unsigned i = 0; i < 0x400; i++) { snes.bus.write(0x2118, i); snes.bus.write(0x2119, i >> 8); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0x2001 + i); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0x2001 + i); } for(unsigned i = 0; i < 0x400; i++) { - uint16_t value = snes.ppu->vram->_data[0x2000 * 2 + i * 2] | (snes.ppu->vram->_data[0x2000 * 2 + i * 2 + 1] << 8); + uint16_t value = snes.ppu.vram->_data[0x2000 * 2 + i * 2] | (snes.ppu.vram->_data[0x2000 * 2 + i * 2 + 1] << 8); REQUIRE(value == (uint16_t)i); } } @@ -94,8 +94,8 @@ TEST_CASE("WRamToVRAM DMA", "[DMA]") { Init() for (unsigned i = 0; i < 0x400; i++) { - snes.wram->_data[i * 2] = i; - snes.wram->_data[i * 2 + 1] = i >> 8; + snes.wram._data[i * 2] = i; + snes.wram._data[i * 2 + 1] = i >> 8; } // Transferring $800 bytes from WRAM ($00) to VRam ($2000) via DMA channel 0 @@ -106,34 +106,34 @@ TEST_CASE("WRamToVRAM DMA", "[DMA]") snes.bus.write(0x2116, 0); snes.bus.write(0x4301, 0x18); - REQUIRE(snes.cpu->_dmaChannels[0]._port == 0x18); + REQUIRE(snes.cpu._dmaChannels[0]._port == 0x18); snes.bus.write(0x4304, 0x7E); snes.bus.write(0x4303, 0x00); snes.bus.write(0x4302, 0x00); - REQUIRE(snes.cpu->_dmaChannels[0]._aAddress.raw == 0x7E0000); + REQUIRE(snes.cpu._dmaChannels[0]._aAddress.raw == 0x7E0000); snes.bus.write(0x4306, 0x08); snes.bus.write(0x4305, 0); - REQUIRE(snes.cpu->_dmaChannels[0]._count.raw == 0x0800); + REQUIRE(snes.cpu._dmaChannels[0]._count.raw == 0x0800); snes.bus.write(0x4300, 1); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.direction == CPU::DMA::AtoB); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister._ == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.increment == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.fixed == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._controlRegister.mode == CPU::DMA::TwoToTwo); - REQUIRE(snes.cpu->_dmaChannels[0].enabled == false); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.direction == CPU::DMA::AtoB); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister._ == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.increment == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.fixed == 0); + REQUIRE(snes.cpu._dmaChannels[0]._controlRegister.mode == CPU::DMA::TwoToTwo); + REQUIRE(snes.cpu._dmaChannels[0].enabled == false); // Enabling DMA's channel 0 snes.bus.write(0x420B, 1); - REQUIRE(snes.cpu->_dmaChannels[0].enabled == true); + REQUIRE(snes.cpu._dmaChannels[0].enabled == true); // TODO There is an overhead of 12-24 cycles for the whole transfer. How should I know how many cycles there is? - auto cycles = snes.cpu->_dmaChannels[0].run(1000000); + auto cycles = snes.cpu._dmaChannels[0].run(1000000); REQUIRE(cycles == 8 + 8 * 0x800); - REQUIRE(snes.cpu->_dmaChannels[0]._count.raw == 0); - REQUIRE(snes.cpu->_dmaChannels[0]._aAddress.raw == 0x7E0800); - REQUIRE(snes.cpu->_dmaChannels[0]._port == 0x18); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0x0400); + REQUIRE(snes.cpu._dmaChannels[0]._count.raw == 0); + REQUIRE(snes.cpu._dmaChannels[0]._aAddress.raw == 0x7E0800); + REQUIRE(snes.cpu._dmaChannels[0]._port == 0x18); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0x0400); for(unsigned i = 0; i < 0x400; i++) { - uint16_t value = snes.ppu->vram->_data[i * 2] | (snes.ppu->vram->_data[i * 2 + 1] << 8); + uint16_t value = snes.ppu.vram->_data[i * 2] | (snes.ppu.vram->_data[i * 2 + 1] << 8); REQUIRE(value == i); } - REQUIRE(snes.cpu->_dmaChannels[0].enabled == false); + REQUIRE(snes.cpu._dmaChannels[0].enabled == false); } \ No newline at end of file diff --git a/tests/CPU/testInternal.cpp b/tests/CPU/testInternal.cpp index 338edbe..0903070 100644 --- a/tests/CPU/testInternal.cpp +++ b/tests/CPU/testInternal.cpp @@ -10,950 +10,950 @@ using namespace ComSquare; TEST_CASE("setall SEP", "[SEP]") { Init() - snes.wram->_data[0] = 0xFF; - snes.cpu->SEP(0x00, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.wram._data[0] = 0xFF; + snes.cpu.SEP(0x00, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0xFF); } TEST_CASE("setsome SEP", "[SEP]") { Init() - snes.cpu->_registers.p.flags = 0b01000000; - snes.wram->_data[0] = 0b10110101; - snes.cpu->SEP(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.cpu._registers.p.flags = 0b01000000; + snes.wram._data[0] = 0b10110101; + snes.cpu.SEP(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0b11110101); } TEST_CASE("resetall REP", "[REP]") { Init() - snes.cpu->_isEmulationMode = false; - snes.wram->_data[0] = 0xFF; - snes.cpu->REP(0x00, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.cpu._isEmulationMode = false; + snes.wram._data[0] = 0xFF; + snes.cpu.REP(0x00, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0x00); } TEST_CASE("resetsome REP", "[REP]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.flags = 0b01000000; - snes.wram->_data[0] = 0b01000000; - snes.cpu->REP(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.flags = 0b01000000; + snes.wram._data[0] = 0b01000000; + snes.cpu.REP(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0x0); } TEST_CASE("resetallEmulation REP", "[REP]") { Init() - snes.cpu->_isEmulationMode = true; - snes.wram->_data[0] = 0xFF; - snes.cpu->REP(0x00, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.cpu._isEmulationMode = true; + snes.wram._data[0] = 0xFF; + snes.cpu.REP(0x00, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0b00110000); } TEST_CASE("resetsomeEmulation REP", "[REP]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0b01000101; - snes.wram->_data[0] = 0b01000001; - snes.cpu->REP(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0b01000101; + snes.wram._data[0] = 0b01000001; + snes.cpu.REP(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0b00110100); } TEST_CASE("jump JSR", "[JSR]") { Init() - snes.cpu->_registers.pc = 0xABCD; - snes.cpu->_registers.s = 0x0123; - snes.cpu->JSR(0xABFF, ComSquare::CPU::AddressingMode::Implied); - auto pc = snes.cpu->_registers.pc; + snes.cpu._registers.pc = 0xABCD; + snes.cpu._registers.s = 0x0123; + snes.cpu.JSR(0xABFF, ComSquare::CPU::AddressingMode::Implied); + auto pc = snes.cpu._registers.pc; REQUIRE(pc == 0xABFF); - REQUIRE(snes.cpu->_registers.s == 0x0121); - auto pushed = snes.cpu->_pop16(); + REQUIRE(snes.cpu._registers.s == 0x0121); + auto pushed = snes.cpu._pop16(); REQUIRE(pushed == 0xABCC); } TEST_CASE("jump JSL", "[JSL]") { Init() - snes.cpu->_registers.pbr = 0xFF; - snes.cpu->_registers.pc = 0xABCD; - snes.cpu->_registers.s = 0x0123; - snes.cpu->JSL(0xCDABFF, ComSquare::CPU::AddressingMode::Implied); - auto pac = snes.cpu->_registers.pac; + snes.cpu._registers.pbr = 0xFF; + snes.cpu._registers.pc = 0xABCD; + snes.cpu._registers.s = 0x0123; + snes.cpu.JSL(0xCDABFF, ComSquare::CPU::AddressingMode::Implied); + auto pac = snes.cpu._registers.pac; REQUIRE(pac == 0xCDABFF); - REQUIRE(snes.cpu->_registers.s == 0x0120); - auto pushed = snes.cpu->_pop16() + (snes.cpu->_pop() << 16u); + REQUIRE(snes.cpu._registers.s == 0x0120); + auto pushed = snes.cpu._pop16() + (snes.cpu._pop() << 16u); REQUIRE(pushed == 0xFFABCC); } TEST_CASE("basic PHA", "[PHA]") { Init() - snes.cpu->_registers.a = 0xABCD; - snes.cpu->_registers.s = 0x02; - snes.cpu->_registers.p.m = false; - snes.cpu->PHA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[1] == 0xCD); - REQUIRE(snes.wram->_data[2] == 0xAB); - REQUIRE(snes.cpu->_registers.s == 0x0); + snes.cpu._registers.a = 0xABCD; + snes.cpu._registers.s = 0x02; + snes.cpu._registers.p.m = false; + snes.cpu.PHA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[1] == 0xCD); + REQUIRE(snes.wram._data[2] == 0xAB); + REQUIRE(snes.cpu._registers.s == 0x0); } TEST_CASE("8bits PHA", "[PHA]") { Init() - snes.cpu->_registers.a = 0xCD; - snes.cpu->_registers.s = 0x02; - snes.cpu->_registers.p.m = false; - snes.cpu->PHA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[1] == 0xCD); - REQUIRE(snes.cpu->_registers.s == 0x0); + snes.cpu._registers.a = 0xCD; + snes.cpu._registers.s = 0x02; + snes.cpu._registers.p.m = false; + snes.cpu.PHA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[1] == 0xCD); + REQUIRE(snes.cpu._registers.s == 0x0); } TEST_CASE("basic PHB", "[PHB]") { Init() - snes.cpu->_registers.dbr = 0xFF; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHB(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[2] == 0xFF); - REQUIRE(snes.cpu->_registers.s == 0x1); + snes.cpu._registers.dbr = 0xFF; + snes.cpu._registers.s = 0x02; + snes.cpu.PHB(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[2] == 0xFF); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("basic PHD", "[PHD]") { Init() - snes.cpu->_registers.d = 0xABCD; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHD(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[1] == 0xCD); - REQUIRE(snes.wram->_data[2] == 0xAB); - REQUIRE(snes.cpu->_registers.s == 0x0); + snes.cpu._registers.d = 0xABCD; + snes.cpu._registers.s = 0x02; + snes.cpu.PHD(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[1] == 0xCD); + REQUIRE(snes.wram._data[2] == 0xAB); + REQUIRE(snes.cpu._registers.s == 0x0); } TEST_CASE("basic PHK", "[PHK]") { Init() - snes.cpu->_registers.pbr = 0xFF; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHK(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[2] == 0xFF); - REQUIRE(snes.cpu->_registers.s == 0x1); + snes.cpu._registers.pbr = 0xFF; + snes.cpu._registers.s = 0x02; + snes.cpu.PHK(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[2] == 0xFF); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("basic PHP", "[PHP]") { Init() - snes.cpu->_registers.p.flags = 0xFF; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[2] == 0xFF); - REQUIRE(snes.cpu->_registers.s == 0x1); + snes.cpu._registers.p.flags = 0xFF; + snes.cpu._registers.s = 0x02; + snes.cpu.PHP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[2] == 0xFF); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("basic PHX", "[PHX]") { Init() - snes.cpu->_registers.x = 0xABCD; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[1] == 0xCD); - REQUIRE(snes.wram->_data[2] == 0xAB); - REQUIRE(snes.cpu->_registers.s == 0x0); + snes.cpu._registers.x = 0xABCD; + snes.cpu._registers.s = 0x02; + snes.cpu.PHX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[1] == 0xCD); + REQUIRE(snes.wram._data[2] == 0xAB); + REQUIRE(snes.cpu._registers.s == 0x0); } TEST_CASE("basic PHY", "[PHY]") { Init() - snes.cpu->_registers.y = 0xABCD; - snes.cpu->_registers.s = 0x02; - snes.cpu->PHY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.wram->_data[1] == 0xCD); - REQUIRE(snes.wram->_data[2] == 0xAB); - REQUIRE(snes.cpu->_registers.s == 0x0); + snes.cpu._registers.y = 0xABCD; + snes.cpu._registers.s = 0x02; + snes.cpu.PHY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.wram._data[1] == 0xCD); + REQUIRE(snes.wram._data[2] == 0xAB); + REQUIRE(snes.cpu._registers.s == 0x0); } TEST_CASE("basic PLA", "[PLA]") { Init() - snes.wram->_data[1] = 0xCD; - snes.wram->_data[2] = 0x7B; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.m = false; - snes.cpu->PLA(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.a; + snes.wram._data[1] = 0xCD; + snes.wram._data[2] = 0x7B; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.m = false; + snes.cpu.PLA(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.a; REQUIRE(data == 0x7BCD); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("zero PLA", "[PLA]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.m = false; - snes.cpu->PLA(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.a; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.m = false; + snes.cpu.PLA(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.a; REQUIRE(data == 0x0000); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("negative PLA", "[PLA]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0xA0; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.m = false; - snes.cpu->PLA(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.a; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0xA0; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.m = false; + snes.cpu.PLA(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.a; REQUIRE(data == 0xA000); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("basic PLX", "[PLX]") { Init() - snes.wram->_data[1] = 0xCD; - snes.wram->_data[2] = 0x7B; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.wram._data[1] = 0xCD; + snes.wram._data[2] = 0x7B; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x7BCD); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("zero PLX", "[PLX]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x0000); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("negative PLX", "[PLX]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0xA0; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0xA0; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0xA000); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("basic PLY", "[PLY]") { Init() - snes.wram->_data[1] = 0xCD; - snes.wram->_data[2] = 0x7B; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLY(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.y; + snes.wram._data[1] = 0xCD; + snes.wram._data[2] = 0x7B; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLY(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.y; REQUIRE(data == 0x7BCD); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("zero PLY", "[PLY]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLY(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.y; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLY(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.y; REQUIRE(data == 0x0000); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("negative PLY", "[PLY]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0xA0; - snes.cpu->_registers.s = 0x00; - snes.cpu->_registers.p.x_b = false; - snes.cpu->PLY(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.y; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0xA0; + snes.cpu._registers.s = 0x00; + snes.cpu._registers.p.x_b = false; + snes.cpu.PLY(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.y; REQUIRE(data == 0xA000); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("basic PLD", "[PLD]") { Init() - snes.wram->_data[1] = 0xCD; - snes.wram->_data[2] = 0x7B; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLD(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.d; + snes.wram._data[1] = 0xCD; + snes.wram._data[2] = 0x7B; + snes.cpu._registers.s = 0x00; + snes.cpu.PLD(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.d; REQUIRE(data == 0x7BCD); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("zero PLD", "[PLD]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLD(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.d; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu.PLD(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.d; REQUIRE(data == 0x0000); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("negative PLD", "[PLD]") { Init() - snes.wram->_data[1] = 0x00; - snes.wram->_data[2] = 0xA0; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLD(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.d; + snes.wram._data[1] = 0x00; + snes.wram._data[2] = 0xA0; + snes.cpu._registers.s = 0x00; + snes.cpu.PLD(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.d; REQUIRE(data == 0xA000); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.s == 0x2); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.s == 0x2); } TEST_CASE("basic PLB", "[PLB]") { Init() - snes.wram->_data[1] = 0x7D; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLB(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.dbr; + snes.wram._data[1] = 0x7D; + snes.cpu._registers.s = 0x00; + snes.cpu.PLB(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.dbr; REQUIRE(data == 0x7D); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x1); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("zero PLB", "[PLB]") { Init() - snes.wram->_data[1] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLB(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.dbr; + snes.wram._data[1] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu.PLB(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.dbr; REQUIRE(data == 0x00); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.s == 0x1); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("negative PLB", "[PLB]") { Init() - snes.wram->_data[1] = 0xA0; - snes.cpu->_registers.s = 0x00; - snes.cpu->PLB(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.dbr; + snes.wram._data[1] = 0xA0; + snes.cpu._registers.s = 0x00; + snes.cpu.PLB(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.dbr; REQUIRE(data == 0xA0); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.s == 0x1); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("basic PLP", "[PLP]") { Init() - snes.wram->_data[1] = 0x7D; - snes.cpu->_registers.s = 0x00; - snes.cpu->_isEmulationMode = false; - snes.cpu->PLP(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.wram._data[1] = 0x7D; + snes.cpu._registers.s = 0x00; + snes.cpu._isEmulationMode = false; + snes.cpu.PLP(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0x7D); - REQUIRE(snes.cpu->_registers.s == 0x1); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("emulation PLP", "[PLP]") { Init() - snes.wram->_data[1] = 0x00; - snes.cpu->_registers.s = 0x00; - snes.cpu->_isEmulationMode = true; - snes.cpu->PLP(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.p.flags; + snes.wram._data[1] = 0x00; + snes.cpu._registers.s = 0x00; + snes.cpu._isEmulationMode = true; + snes.cpu.PLP(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.p.flags; REQUIRE(data == 0b00110000); - REQUIRE(snes.cpu->_registers.s == 0x1); + REQUIRE(snes.cpu._registers.s == 0x1); } TEST_CASE("clear CLC", "[CLC]") { Init() - snes.cpu->_registers.p.flags = 0xFF; - snes.cpu->CLC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == false); + snes.cpu._registers.p.flags = 0xFF; + snes.cpu.CLC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == false); } TEST_CASE("clear CLI", "[CLI]") { Init() - snes.cpu->_registers.p.flags = 0xFF; - snes.cpu->CLI(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.i == false); + snes.cpu._registers.p.flags = 0xFF; + snes.cpu.CLI(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.i == false); } TEST_CASE("clear CLD", "[CLD]") { Init() - snes.cpu->_registers.p.flags = 0xFF; - snes.cpu->CLD(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.d == false); + snes.cpu._registers.p.flags = 0xFF; + snes.cpu.CLD(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.d == false); } TEST_CASE("clear CLV", "[CLV]") { Init() - snes.cpu->_registers.p.flags = 0xFF; - snes.cpu->CLV(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.v == false); + snes.cpu._registers.p.flags = 0xFF; + snes.cpu.CLV(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.v == false); } TEST_CASE("set SEC", "[SEC]") { Init() - snes.cpu->_registers.p.flags = 0x00; - snes.cpu->SEC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.c == true); + snes.cpu._registers.p.flags = 0x00; + snes.cpu.SEC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.c == true); } TEST_CASE("set SEI", "[SEI]") { Init() - snes.cpu->_registers.p.flags = 0x00; - snes.cpu->SEI(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.i == true); + snes.cpu._registers.p.flags = 0x00; + snes.cpu.SEI(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.i == true); } TEST_CASE("set SED", "[SED]") { Init() - snes.cpu->_registers.p.flags = 0x00; - snes.cpu->SED(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.d == true); + snes.cpu._registers.p.flags = 0x00; + snes.cpu.SED(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.d == true); } TEST_CASE("enableEmulation XCE", "[XCE]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.c = true; - snes.cpu->_registers.xh = 0xFF; - snes.cpu->_registers.yh = 0xFF; - snes.cpu->XCE(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_isEmulationMode == true); - REQUIRE(snes.cpu->_registers.p.c == false); - REQUIRE(snes.cpu->_registers.p.m == false); - REQUIRE(snes.cpu->_registers.p.x_b == false); - REQUIRE(snes.cpu->_registers.xh == 0xFF); - REQUIRE(snes.cpu->_registers.yh == 0xFF); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.c = true; + snes.cpu._registers.xh = 0xFF; + snes.cpu._registers.yh = 0xFF; + snes.cpu.XCE(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._isEmulationMode == true); + REQUIRE(snes.cpu._registers.p.c == false); + REQUIRE(snes.cpu._registers.p.m == false); + REQUIRE(snes.cpu._registers.p.x_b == false); + REQUIRE(snes.cpu._registers.xh == 0xFF); + REQUIRE(snes.cpu._registers.yh == 0xFF); } TEST_CASE("enableNative XCE", "[XCE]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.xh = 0xFF; - snes.cpu->_registers.yh = 0xFF; - snes.cpu->XCE(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_isEmulationMode == false); - REQUIRE(snes.cpu->_registers.p.c == true); - REQUIRE(snes.cpu->_registers.p.m == true); - REQUIRE(snes.cpu->_registers.p.x_b == true); - REQUIRE(snes.cpu->_registers.xh == 0); - REQUIRE(snes.cpu->_registers.yh == 0); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.xh = 0xFF; + snes.cpu._registers.yh = 0xFF; + snes.cpu.XCE(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._isEmulationMode == false); + REQUIRE(snes.cpu._registers.p.c == true); + REQUIRE(snes.cpu._registers.p.m == true); + REQUIRE(snes.cpu._registers.p.x_b == true); + REQUIRE(snes.cpu._registers.xh == 0); + REQUIRE(snes.cpu._registers.yh == 0); } TEST_CASE("basic INX", "[INX]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0xFF; - snes.cpu->INX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x0100); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0xFF; + snes.cpu.INX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x0100); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("8bits INX", "[INX]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0xFF; - snes.cpu->INX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x00); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0xFF; + snes.cpu.INX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x00); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("basic INY", "[INY]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0xFF; - snes.cpu->INY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x0100); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0xFF; + snes.cpu.INY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x0100); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("8bits INY", "[INY]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0xFF; - snes.cpu->INY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x00); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0xFF; + snes.cpu.INY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x00); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("basic CPX", "[CPX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.x = 0xFF; - snes.wram->_data[0] = 0xFF; - snes.cpu->CPX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.c == true); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.x = 0xFF; + snes.wram._data[0] = 0xFF; + snes.cpu.CPX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.c == true); } TEST_CASE("negative CPX", "[CPX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.x = 0x80; - snes.wram->_data[0] = 0xFF; - snes.cpu->CPX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.c == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.x = 0x80; + snes.wram._data[0] = 0xFF; + snes.cpu.CPX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.c == false); } TEST_CASE("16bits CPX", "[CPX]") { Init() - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0x8888; - snes.wram->_data[0] = 0x88; - snes.wram->_data[1] = 0x98; - snes.cpu->CPX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.c == false); + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0x8888; + snes.wram._data[0] = 0x88; + snes.wram._data[1] = 0x98; + snes.cpu.CPX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.c == false); } TEST_CASE("basic CPY", "[CPY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.y = 0xFF; - snes.wram->_data[0] = 0xFF; - snes.cpu->CPY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.c == true); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.y = 0xFF; + snes.wram._data[0] = 0xFF; + snes.cpu.CPY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.c == true); } TEST_CASE("negative CPY", "[CPY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.flags = 0; - snes.cpu->_registers.y = 0x80; - snes.wram->_data[0] = 0xFF; - snes.cpu->CPY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.c == false); + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.flags = 0; + snes.cpu._registers.y = 0x80; + snes.wram._data[0] = 0xFF; + snes.cpu.CPY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.c == false); } TEST_CASE("basic BCC", "[BCC]") { Init() - snes.cpu->_registers.p.c = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BCC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.c = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BCC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BCC", "[BCC]") { Init() - snes.cpu->_registers.p.c = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BCC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.c = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BCC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BCC", "[BCC]") { Init() - snes.cpu->_registers.p.c = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BCC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.c = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BCC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BCS", "[BCS]") { Init() - snes.cpu->_registers.p.c = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BCS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.c = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BCS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BCS", "[BCS]") { Init() - snes.cpu->_registers.p.c = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BCS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.c = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BCS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BCS", "[BCS]") { Init() - snes.cpu->_registers.p.c = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BCS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.c = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BCS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BEQ", "[BEQ]") { Init() - snes.cpu->_registers.p.z = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.z = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BEQ", "[BEQ]") { Init() - snes.cpu->_registers.p.z = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.z = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BEQ", "[BEQ]") { Init() - snes.cpu->_registers.p.z = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.z = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BEQ(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BNE", "[BNE]") { Init() - snes.cpu->_registers.p.z = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BNE(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.z = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BNE(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BNE", "[BNE]") { Init() - snes.cpu->_registers.p.z = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BNE(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.z = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BNE(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BNE", "[BNE]") { Init() - snes.cpu->_registers.p.z = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BNE(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.z = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BNE(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BMI", "[BMI]") { Init() - snes.cpu->_registers.p.n = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BMI(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.n = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BMI(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BMI", "[BMI]") { Init() - snes.cpu->_registers.p.n = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BMI(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.n = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BMI(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BMI", "[BMI]") { Init() - snes.cpu->_registers.p.n = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BMI(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.n = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BMI(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BPL", "[BPL]") { Init() - snes.cpu->_registers.p.n = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BPL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.n = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BPL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BPL", "[BPL]") { Init() - snes.cpu->_registers.p.n = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BPL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.n = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BPL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BPL", "[BPL]") { Init() - snes.cpu->_registers.p.n = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BPL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.n = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BPL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BRA", "[BRA]") { Init() - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BRA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BRA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BRA", "[BRA]") { Init() - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BRA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BRA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("basic BRL", "[BRL]") { Init() - snes.cpu->_registers.pc = 0x8080; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x10; - snes.cpu->BRL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x9080); + snes.cpu._registers.pc = 0x8080; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x10; + snes.cpu.BRL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x9080); } TEST_CASE("negativeJump BRL", "[BRL]") { Init() - snes.cpu->_registers.pc = 0x8080; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0xF0; - snes.cpu->BRL(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x7080); + snes.cpu._registers.pc = 0x8080; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0xF0; + snes.cpu.BRL(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x7080); } TEST_CASE("basic BVC", "[BVC]") { Init() - snes.cpu->_registers.p.v = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BVC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.v = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BVC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BVC", "[BVC]") { Init() - snes.cpu->_registers.p.v = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BVC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.v = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BVC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BVC", "[BVC]") { Init() - snes.cpu->_registers.p.v = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BVC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.v = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BVC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("basic BVS", "[BVS]") { Init() - snes.cpu->_registers.p.v = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x50; - snes.cpu->BVS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0xD0); + snes.cpu._registers.p.v = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x50; + snes.cpu.BVS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0xD0); } TEST_CASE("negativeJump BVS", "[BVS]") { Init() - snes.cpu->_registers.p.v = true; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0xF0; - snes.cpu->BVS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x70); + snes.cpu._registers.p.v = true; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0xF0; + snes.cpu.BVS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x70); } TEST_CASE("noJump BVS", "[BVS]") { Init() - snes.cpu->_registers.p.v = false; - snes.cpu->_registers.pc = 0x80; - snes.wram->_data[0] = 0x90; - snes.cpu->BVS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x80); + snes.cpu._registers.p.v = false; + snes.cpu._registers.pc = 0x80; + snes.wram._data[0] = 0x90; + snes.cpu.BVS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x80); } TEST_CASE("simpleJump JMP", "[JMP]") { Init() - snes.cpu->_registers.pc = 0x8000; - snes.cpu->JMP(0x1000, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x1000); + snes.cpu._registers.pc = 0x8000; + snes.cpu.JMP(0x1000, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x1000); } TEST_CASE("simpleJump JML", "[JML]") { Init() - snes.cpu->_registers.pc = 0x8000; - snes.cpu->JML(0x10AB00, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pac == 0x10AB00); + snes.cpu._registers.pc = 0x8000; + snes.cpu.JML(0x10AB00, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pac == 0x10AB00); } TEST_CASE("simple PER", "[PER]") { Init() - snes.cpu->_registers.pac = 0x008005; - snes.cpu->_registers.s = 0x1FFF; - snes.wram->_data[0x0] = 0xFF; - snes.wram->_data[0x1] = 0xFF; - snes.cpu->PER(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0x1FFD); - uint16_t value = snes.cpu->_pop16(); + snes.cpu._registers.pac = 0x008005; + snes.cpu._registers.s = 0x1FFF; + snes.wram._data[0x0] = 0xFF; + snes.wram._data[0x1] = 0xFF; + snes.cpu.PER(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0x1FFD); + uint16_t value = snes.cpu._pop16(); REQUIRE(value == 0x8004); } TEST_CASE("simple PEI", "[PEI]") { Init() - snes.cpu->_registers.s = 0x1FFF; - snes.cpu->PEI(0xFFFF, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0x1FFD); - uint16_t value = snes.cpu->_pop16(); + snes.cpu._registers.s = 0x1FFF; + snes.cpu.PEI(0xFFFF, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0x1FFD); + uint16_t value = snes.cpu._pop16(); REQUIRE(value == 0xFFFF); } TEST_CASE("simple PEA", "[PEA]") { Init() - snes.cpu->_registers.s = 0x1FFF; - snes.wram->_data[0x0] = 0xFF; - snes.wram->_data[0x1] = 0xFF; - snes.cpu->PEA(0xFFFF, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0x1FFD); - uint16_t value = snes.cpu->_pop16(); + snes.cpu._registers.s = 0x1FFF; + snes.wram._data[0x0] = 0xFF; + snes.wram._data[0x1] = 0xFF; + snes.cpu.PEA(0xFFFF, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0x1FFD); + uint16_t value = snes.cpu._pop16(); REQUIRE(value == 0xFFFF); } \ No newline at end of file diff --git a/tests/CPU/testInterupts.cpp b/tests/CPU/testInterupts.cpp index 9e5c8f1..a9b2d50 100644 --- a/tests/CPU/testInterupts.cpp +++ b/tests/CPU/testInterupts.cpp @@ -13,81 +13,81 @@ using namespace ComSquare; TEST_CASE("BRK_emulated CPU][emulated", "[CPU][emulated]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cartridge->header.emulationInterrupts.brk = 0x123u; - snes.cpu->_registers.p.flags = 0xF1; - snes.cpu->_registers.pc = 0x156u; - snes.cpu->_registers.pbr = 0x15; - snes.cpu->BRK(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x123u); - REQUIRE(snes.cpu->_registers.pbr == 0x0); - REQUIRE(snes.cpu->_registers.p.d == false); - REQUIRE(snes.cpu->_registers.p.i == true); - REQUIRE(snes.cpu->_registers.p.x_b == true); - int data = snes.cpu->_pop(); + snes.cpu._isEmulationMode = true; + snes.cartridge.header.emulationInterrupts.brk = 0x123u; + snes.cpu._registers.p.flags = 0xF1; + snes.cpu._registers.pc = 0x156u; + snes.cpu._registers.pbr = 0x15; + snes.cpu.BRK(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x123u); + REQUIRE(snes.cpu._registers.pbr == 0x0); + REQUIRE(snes.cpu._registers.p.d == false); + REQUIRE(snes.cpu._registers.p.i == true); + REQUIRE(snes.cpu._registers.p.x_b == true); + int data = snes.cpu._pop(); REQUIRE(data == 0xF1); - data = snes.cpu->_pop16(); + data = snes.cpu._pop16(); REQUIRE(data == 0x156u); } TEST_CASE("BRK_native CPU][native", "[CPU][native]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cartridge->header.nativeInterrupts.brk = 0x123u; - snes.cpu->_registers.p.flags = 0xF1; - snes.cpu->_registers.pc = 0x156u; - snes.cpu->_registers.pbr = 0x15; - snes.cpu->BRK(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x123u); - REQUIRE(snes.cpu->_registers.pbr == 0x0); - REQUIRE(snes.cpu->_registers.p.d == false); - REQUIRE(snes.cpu->_registers.p.i == true); - int data = snes.cpu->_pop(); + snes.cpu._isEmulationMode = false; + snes.cartridge.header.nativeInterrupts.brk = 0x123u; + snes.cpu._registers.p.flags = 0xF1; + snes.cpu._registers.pc = 0x156u; + snes.cpu._registers.pbr = 0x15; + snes.cpu.BRK(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x123u); + REQUIRE(snes.cpu._registers.pbr == 0x0); + REQUIRE(snes.cpu._registers.p.d == false); + REQUIRE(snes.cpu._registers.p.i == true); + int data = snes.cpu._pop(); REQUIRE(data == 0xF1); - data = snes.cpu->_pop16(); + data = snes.cpu._pop16(); REQUIRE(data == 0x156u); - data = snes.cpu->_pop(); + data = snes.cpu._pop(); REQUIRE(data == 0x15); } TEST_CASE("COP emulated CPU][emulated", "[CPU][emulated]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cartridge->header.emulationInterrupts.cop = 0x123u; - snes.cpu->_registers.p.flags = 0x0F; - snes.cpu->_registers.pc = 0x156u; - snes.cpu->_registers.pbr = 0x15; - snes.cpu->COP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x123u); - REQUIRE(snes.cpu->_registers.pbr == 0x0); - REQUIRE(snes.cpu->_registers.p.d == false); - REQUIRE(snes.cpu->_registers.p.i == true); - REQUIRE(snes.cpu->_registers.p.x_b == false); - int data = snes.cpu->_pop(); + snes.cpu._isEmulationMode = true; + snes.cartridge.header.emulationInterrupts.cop = 0x123u; + snes.cpu._registers.p.flags = 0x0F; + snes.cpu._registers.pc = 0x156u; + snes.cpu._registers.pbr = 0x15; + snes.cpu.COP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x123u); + REQUIRE(snes.cpu._registers.pbr == 0x0); + REQUIRE(snes.cpu._registers.p.d == false); + REQUIRE(snes.cpu._registers.p.i == true); + REQUIRE(snes.cpu._registers.p.x_b == false); + int data = snes.cpu._pop(); REQUIRE(data == 0x0F); - data = snes.cpu->_pop16(); + data = snes.cpu._pop16(); REQUIRE(data == 0x156u); } TEST_CASE("COP native CPU][native", "[CPU][native]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cartridge->header.nativeInterrupts.cop = 0x123u; - snes.cpu->_registers.p.flags = 0xF1; - snes.cpu->_registers.pc = 0x156u; - snes.cpu->_registers.pbr = 0x15; - snes.cpu->COP(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.pc == 0x123u); - REQUIRE(snes.cpu->_registers.pbr == 0x0); - REQUIRE(snes.cpu->_registers.p.d == false); - REQUIRE(snes.cpu->_registers.p.i == true); - int data = snes.cpu->_pop(); + snes.cpu._isEmulationMode = false; + snes.cartridge.header.nativeInterrupts.cop = 0x123u; + snes.cpu._registers.p.flags = 0xF1; + snes.cpu._registers.pc = 0x156u; + snes.cpu._registers.pbr = 0x15; + snes.cpu.COP(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.pc == 0x123u); + REQUIRE(snes.cpu._registers.pbr == 0x0); + REQUIRE(snes.cpu._registers.p.d == false); + REQUIRE(snes.cpu._registers.p.i == true); + int data = snes.cpu._pop(); REQUIRE(data == 0xF1); - data = snes.cpu->_pop16(); + data = snes.cpu._pop16(); REQUIRE(data == 0x156u); - data = snes.cpu->_pop(); + data = snes.cpu._pop(); REQUIRE(data == 0x15); } \ No newline at end of file diff --git a/tests/CPU/testStore.cpp b/tests/CPU/testStore.cpp index fe9cbc7..85a2f7d 100644 --- a/tests/CPU/testStore.cpp +++ b/tests/CPU/testStore.cpp @@ -12,156 +12,156 @@ using namespace ComSquare; TEST_CASE("8bits STA", "[STA]") { Init() - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.a = 0x11; - snes.cpu->STA(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0]; + snes.cpu._registers.p.m = true; + snes.cpu._registers.a = 0x11; + snes.cpu.STA(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0]; REQUIRE(data == 0x11); } TEST_CASE("16bits STA", "[STA]") { Init() - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.a = 0x11AB; - snes.cpu->STA(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0] + (snes.wram->_data[1] << 8u); + snes.cpu._registers.p.m = false; + snes.cpu._registers.a = 0x11AB; + snes.cpu.STA(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0] + (snes.wram._data[1] << 8u); REQUIRE(data == 0x11AB); } TEST_CASE("8bits STX", "[STX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0x11; - snes.cpu->STX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0]; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0x11; + snes.cpu.STX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0]; REQUIRE(data == 0x11); } TEST_CASE("16bits STX", "[STX]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0x11AB; - snes.cpu->STX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0] + (snes.wram->_data[1] << 8u); + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0x11AB; + snes.cpu.STX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0] + (snes.wram._data[1] << 8u); REQUIRE(data == 0x11AB); } TEST_CASE("8bits STY", "[STY]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0x11; - snes.cpu->STY(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0]; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0x11; + snes.cpu.STY(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0]; REQUIRE(data == 0x11); } TEST_CASE("16bits STY", "[STY]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0x11AB; - snes.cpu->STY(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0] + (snes.wram->_data[1] << 8u); + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0x11AB; + snes.cpu.STY(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0] + (snes.wram._data[1] << 8u); REQUIRE(data == 0x11AB); } TEST_CASE("8bits STZ", "[STZ]") { Init() - snes.cpu->_registers.p.m = true; - snes.wram->_data[0] = 0x11; - snes.cpu->STZ(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0]; + snes.cpu._registers.p.m = true; + snes.wram._data[0] = 0x11; + snes.cpu.STZ(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0]; REQUIRE(data == 0x00); } TEST_CASE("16bits STZ", "[STZ]") { Init() - snes.cpu->_registers.p.m = false; - snes.wram->_data[0] = 0x11; - snes.wram->_data[1] = 0x11; - snes.cpu->STZ(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.wram->_data[0] + (snes.wram->_data[1] << 8u); + snes.cpu._registers.p.m = false; + snes.wram._data[0] = 0x11; + snes.wram._data[1] = 0x11; + snes.cpu.STZ(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.wram._data[0] + (snes.wram._data[1] << 8u); REQUIRE(data == 0x00); } TEST_CASE("8bits LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.wram->_data[0] = 0x01; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = true; + snes.wram._data[0] = 0x01; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x01); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("8bitsNegative LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.wram->_data[0] = 0x11; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = true; + snes.wram._data[0] = 0x11; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x11); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); } TEST_CASE("8bitsZero LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = true; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x11; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = true; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x11; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x00); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("16bits LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.wram->_data[0] = 0xAB; - snes.wram->_data[1] = 001; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = false; + snes.wram._data[0] = 0xAB; + snes.wram._data[1] = 001; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x01AB); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == false); } TEST_CASE("16bitsNegative LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.wram->_data[0] = 0xAB; - snes.wram->_data[1] = 0x11; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = false; + snes.wram._data[0] = 0xAB; + snes.wram._data[1] = 0x11; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x11AB); - REQUIRE(snes.cpu->_registers.p.z == false); - REQUIRE(snes.cpu->_registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); + REQUIRE(snes.cpu._registers.p.n == true); } TEST_CASE("16bitsZero LDX", "[LDX]") { Init() - snes.cpu->_registers.p.x_b = false; - snes.wram->_data[0] = 0x00; - snes.wram->_data[1] = 0x00; - snes.cpu->LDX(0x0, ComSquare::CPU::AddressingMode::Implied); - auto data = snes.cpu->_registers.x; + snes.cpu._registers.p.x_b = false; + snes.wram._data[0] = 0x00; + snes.wram._data[1] = 0x00; + snes.cpu.LDX(0x0, ComSquare::CPU::AddressingMode::Implied); + auto data = snes.cpu._registers.x; REQUIRE(data == 0x0000); - REQUIRE(snes.cpu->_registers.p.z == true); - REQUIRE(snes.cpu->_registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); + REQUIRE(snes.cpu._registers.p.n == false); } \ No newline at end of file diff --git a/tests/CPU/testTransfers.cpp b/tests/CPU/testTransfers.cpp index 77b3053..b60ded7 100644 --- a/tests/CPU/testTransfers.cpp +++ b/tests/CPU/testTransfers.cpp @@ -12,465 +12,465 @@ using namespace ComSquare; TEST_CASE("16bitsTo16Bits TAX", "[TAX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.x = 0xABCD; - snes.cpu->_registers.a = 0xFEDC; - snes.cpu->TAX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xFEDC); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.x = 0xABCD; + snes.cpu._registers.a = 0xFEDC; + snes.cpu.TAX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xFEDC); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("16bitsTo8Bits TAX", "[TAX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.x = 0xFEDC; - snes.cpu->_registers.a = 0xAB00; - snes.cpu->TAX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xFE00); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.m = false; + snes.cpu._registers.x = 0xFEDC; + snes.cpu._registers.a = 0xAB00; + snes.cpu.TAX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xFE00); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("8bitsTo16Bits TAX", "[TAX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.x = 0xFEDC; - snes.cpu->_registers.a = 0xAB; - snes.cpu->TAX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x00AB); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.p.m = true; + snes.cpu._registers.x = 0xFEDC; + snes.cpu._registers.a = 0xAB; + snes.cpu.TAX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x00AB); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("8bitsTo8Bits TAX", "[TAX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.x = 0xFE; - snes.cpu->_registers.a = 0xAB; - snes.cpu->TAX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xAB); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.x = 0xFE; + snes.cpu._registers.a = 0xAB; + snes.cpu.TAX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xAB); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("16bitsTo16Bits TAY", "[TAY]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.y = 0xABCD; - snes.cpu->_registers.a = 0xFEDC; - snes.cpu->TAY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xFEDC); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.y = 0xABCD; + snes.cpu._registers.a = 0xFEDC; + snes.cpu.TAY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xFEDC); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("16bitsTo8Bits TAY", "[TAY]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.y = 0xFEDC; - snes.cpu->_registers.a = 0xAB00; - snes.cpu->TAY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xFE00); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.m = false; + snes.cpu._registers.y = 0xFEDC; + snes.cpu._registers.a = 0xAB00; + snes.cpu.TAY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xFE00); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("8bitsTo16Bits TAY", "[TAY]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.y = 0xFEDC; - snes.cpu->_registers.a = 0xAB; - snes.cpu->TAY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x00AB); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.p.m = true; + snes.cpu._registers.y = 0xFEDC; + snes.cpu._registers.a = 0xAB; + snes.cpu.TAY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x00AB); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("8bitsTo8Bits TAY", "[TAY]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.y = 0xFE; - snes.cpu->_registers.a = 0xAB; - snes.cpu->TAY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xAB); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.y = 0xFE; + snes.cpu._registers.a = 0xAB; + snes.cpu.TAY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xAB); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("16bitsIndex TXS", "[TXS]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0xABCD; - snes.cpu->TXS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0xABCD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0xABCD; + snes.cpu.TXS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0xABCD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("8bitsIndex TXS", "[TXS]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0xABCD; - snes.cpu->TXS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0x00CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0xABCD; + snes.cpu.TXS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0x00CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("emulationMode TCD", "[TCD]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.d = 0x5656; - snes.cpu->_registers.a = 0xABCD; - snes.cpu->TCD(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.d == 0xABCD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.d = 0x5656; + snes.cpu._registers.a = 0xABCD; + snes.cpu.TCD(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.d == 0xABCD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero TCD", "[TCD]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.d = 0x5656; - snes.cpu->_registers.a = 0x0; - snes.cpu->TCD(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.d == 0); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.d = 0x5656; + snes.cpu._registers.a = 0x0; + snes.cpu.TCD(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.d == 0); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("emulationMode TCS", "[TCS]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.s = 0x0156; - snes.cpu->_registers.a = 0xABCD; - snes.cpu->TCS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0x01CD); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = false; + snes.cpu._registers.s = 0x0156; + snes.cpu._registers.a = 0xABCD; + snes.cpu.TCS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0x01CD); } TEST_CASE("native TCS", "[TCS]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.s = 0x0156; - snes.cpu->_registers.a = 0xABCD; - snes.cpu->TCS(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.s == 0xABCD); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = true; + snes.cpu._registers.s = 0x0156; + snes.cpu._registers.a = 0xABCD; + snes.cpu.TCS(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.s == 0xABCD); } TEST_CASE("emulationMode TDC", "[TDC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.d = 0xABCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TDC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xABCD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.d = 0xABCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TDC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xABCD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero TDC", "[TDC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.d = 0x0; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TDC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.d = 0x0; + snes.cpu._registers.a = 0x5656; + snes.cpu.TDC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("emulationMode TSC", "[TSC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.s = 0xABCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TSC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xABCD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.s = 0xABCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TSC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xABCD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("zero TSC", "[TSC]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.s = 0x0; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TSC(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == true); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.s = 0x0; + snes.cpu._registers.a = 0x5656; + snes.cpu.TSC(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == true); } TEST_CASE("emulationMode TSX", "[TSX]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.s = 0xABCD; - snes.cpu->_registers.x = 0x5656; - snes.cpu->TSX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x00CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.s = 0xABCD; + snes.cpu._registers.x = 0x5656; + snes.cpu.TSX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x00CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("native TSX", "[TSX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.s = 0x8F00; - snes.cpu->_registers.x = 0x5656; - snes.cpu->TSX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x8F00); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.s = 0x8F00; + snes.cpu._registers.x = 0x5656; + snes.cpu.TSX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x8F00); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("double8bits TXA", "[TXA]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0xABCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TXA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0xABCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TXA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("index8bits TXA", "[TXA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0x0BCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TXA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x00CD); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0x0BCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TXA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x00CD); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("accumulator8bits TXA", "[TXA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0x0BCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TXA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0x0BCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TXA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("double16bits TXA", "[TXA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0xAB0D; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TXA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xAB0D); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0xAB0D; + snes.cpu._registers.a = 0x5656; + snes.cpu.TXA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xAB0D); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("double8bits TYA", "[TYA]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0xABCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TYA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0xABCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TYA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("index8bits TYA", "[TYA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0x0BCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TYA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x00CD); - REQUIRE(snes.cpu->_registers.p.n == false); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0x0BCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TYA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x00CD); + REQUIRE(snes.cpu._registers.p.n == false); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("accumulator8bits TYA", "[TYA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = true; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0x0BCD; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TYA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = true; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0x0BCD; + snes.cpu._registers.a = 0x5656; + snes.cpu.TYA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("double16bits TYA", "[TYA]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.m = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0xAB0D; - snes.cpu->_registers.a = 0x5656; - snes.cpu->TYA(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.a == 0xAB0D); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.m = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0xAB0D; + snes.cpu._registers.a = 0x5656; + snes.cpu.TYA(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.a == 0xAB0D); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("emulationMode TXY", "[TXY]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.x = 0x0BCD; - snes.cpu->_registers.y = 0x5656; - snes.cpu->TXY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.x = 0x0BCD; + snes.cpu._registers.y = 0x5656; + snes.cpu.TXY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeMode TXY", "[TXY]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.x = 0xAB0D; - snes.cpu->_registers.y = 0x5656; - snes.cpu->TXY(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.y == 0xAB0D); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.x = 0xAB0D; + snes.cpu._registers.y = 0x5656; + snes.cpu.TXY(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.y == 0xAB0D); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("emulationMode TYX", "[TYX]") { Init() - snes.cpu->_isEmulationMode = true; - snes.cpu->_registers.p.x_b = true; - snes.cpu->_registers.y = 0x0BCD; - snes.cpu->_registers.x = 0x5656; - snes.cpu->TYX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0x56CD); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = true; + snes.cpu._registers.p.x_b = true; + snes.cpu._registers.y = 0x0BCD; + snes.cpu._registers.x = 0x5656; + snes.cpu.TYX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0x56CD); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("nativeMode TYX", "[TYX]") { Init() - snes.cpu->_isEmulationMode = false; - snes.cpu->_registers.p.x_b = false; - snes.cpu->_registers.y = 0xAB0D; - snes.cpu->_registers.x = 0x5656; - snes.cpu->TYX(0x0, ComSquare::CPU::AddressingMode::Implied); - REQUIRE(snes.cpu->_registers.x == 0xAB0D); - REQUIRE(snes.cpu->_registers.p.n == true); - REQUIRE(snes.cpu->_registers.p.z == false); + snes.cpu._isEmulationMode = false; + snes.cpu._registers.p.x_b = false; + snes.cpu._registers.y = 0xAB0D; + snes.cpu._registers.x = 0x5656; + snes.cpu.TYX(0x0, ComSquare::CPU::AddressingMode::Implied); + REQUIRE(snes.cpu._registers.x == 0xAB0D); + REQUIRE(snes.cpu._registers.p.n == true); + REQUIRE(snes.cpu._registers.p.z == false); } TEST_CASE("hardCase MVN", "[MVN]") { Init() - snes.cpu->_registers.a = 0x10; - snes.cpu->_registers.x = 0x0000; - snes.cpu->_registers.y = 0x1000; - for (int i = 0; i <= snes.cpu->_registers.a; i++) - snes.wram->_data[i] = i; + snes.cpu._registers.a = 0x10; + snes.cpu._registers.x = 0x0000; + snes.cpu._registers.y = 0x1000; + for (int i = 0; i <= snes.cpu._registers.a; i++) + snes.wram._data[i] = i; - int cycles = snes.cpu->MVN(0x2010, ComSquare::CPU::AddressingMode::Implied); + int cycles = snes.cpu.MVN(0x2010, ComSquare::CPU::AddressingMode::Implied); REQUIRE(cycles == 0x77); - REQUIRE(snes.cpu->_registers.dbr == 0x20); - REQUIRE(snes.cpu->_registers.a == 0xFFFF); - REQUIRE(snes.cpu->_registers.x == 0x0011); - REQUIRE(snes.cpu->_registers.y == 0x1011); + REQUIRE(snes.cpu._registers.dbr == 0x20); + REQUIRE(snes.cpu._registers.a == 0xFFFF); + REQUIRE(snes.cpu._registers.x == 0x0011); + REQUIRE(snes.cpu._registers.y == 0x1011); for (int i = 0; i < 0x11; i++) - REQUIRE(snes.wram->_data[i + 0x1000] == i); + REQUIRE(snes.wram._data[i + 0x1000] == i); } TEST_CASE("hardCase MVP", "[MVP]") { Init() - snes.cpu->_registers.a = 0x10; - snes.cpu->_registers.x = 0x0010; - snes.cpu->_registers.y = 0x1010; - for (int i = 0; i <= snes.cpu->_registers.a; i++) - snes.wram->_data[i] = i; + snes.cpu._registers.a = 0x10; + snes.cpu._registers.x = 0x0010; + snes.cpu._registers.y = 0x1010; + for (int i = 0; i <= snes.cpu._registers.a; i++) + snes.wram._data[i] = i; - int cycles = snes.cpu->MVP(0x2010, ComSquare::CPU::AddressingMode::Implied); + int cycles = snes.cpu.MVP(0x2010, ComSquare::CPU::AddressingMode::Implied); REQUIRE(cycles == 0x77); - REQUIRE(snes.cpu->_registers.dbr == 0x20); - REQUIRE(snes.cpu->_registers.a == 0xFFFF); - REQUIRE(snes.cpu->_registers.x == 0xFFFF); - REQUIRE(snes.cpu->_registers.y == 0x0FFF); + REQUIRE(snes.cpu._registers.dbr == 0x20); + REQUIRE(snes.cpu._registers.a == 0xFFFF); + REQUIRE(snes.cpu._registers.x == 0xFFFF); + REQUIRE(snes.cpu._registers.y == 0x0FFF); for (int i = 0; i < 0x11; i++) - REQUIRE(snes.wram->_data[i + 0x1000] == i); + REQUIRE(snes.wram._data[i + 0x1000] == i); } \ No newline at end of file diff --git a/tests/PPU/testBackground.cpp b/tests/PPU/testBackground.cpp index 7268019..325f16e 100644 --- a/tests/PPU/testBackground.cpp +++ b/tests/PPU/testBackground.cpp @@ -16,6 +16,6 @@ TEST_CASE("basicTest backgroundGetTilePixelReference", "[backgroundGetTilePixelR { Init() snes.bus.write(0x2100, 0b11111111); - REQUIRE(snes.ppu->_registers._inidisp.fblank == true); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0xF); + REQUIRE(snes.ppu._registers._inidisp.fblank == true); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0xF); } \ No newline at end of file diff --git a/tests/PPU/testPpuRead.cpp b/tests/PPU/testPpuRead.cpp index b8acb6b..4d6ea46 100644 --- a/tests/PPU/testPpuRead.cpp +++ b/tests/PPU/testPpuRead.cpp @@ -17,8 +17,8 @@ TEST_CASE("vram_data_read_full PPU_read_1", "[PPU_read_1]") snes.bus.write(0x2115, 0b10000000); snes.bus.write(0x2116, 0); snes.bus.write(0x2117, 0); - snes.ppu->vram->write(0, 0b11111111); - snes.ppu->vram->write(1, 0b11111111); + snes.ppu.vram->write(0, 0b11111111); + snes.ppu.vram->write(1, 0b11111111); snes.bus.write(0x2116, 0); snes.bus.write(0x2117, 0); @@ -33,8 +33,8 @@ TEST_CASE("vram_data_read_half PPU_read_1", "[PPU_read_1]") Init() snes.bus.write(0x2116, 0); snes.bus.write(0x2117, 0); - snes.ppu->vram->write(0, 0b01101001); - snes.ppu->vram->write(1, 0b11111111); + snes.ppu.vram->write(0, 0b01101001); + snes.ppu.vram->write(1, 0b11111111); snes.bus.write(0x2116, 0); snes.bus.write(0x2117, 0); diff --git a/tests/PPU/testPpuWrite.cpp b/tests/PPU/testPpuWrite.cpp index a3326fb..4423516 100644 --- a/tests/PPU/testPpuWrite.cpp +++ b/tests/PPU/testPpuWrite.cpp @@ -15,91 +15,91 @@ TEST_CASE("inidisp_data_full_ones PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2100, 0b11111111); - REQUIRE(snes.ppu->_registers._inidisp.fblank == true); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0xF); + REQUIRE(snes.ppu._registers._inidisp.fblank == true); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0xF); } TEST_CASE("inidisp_data_full_zeros PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2100, 0b00000000); - REQUIRE(snes.ppu->_registers._inidisp.fblank == false); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0x0); + REQUIRE(snes.ppu._registers._inidisp.fblank == false); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0x0); } TEST_CASE("inidisp_data_fBlank_on_brghtness_off PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2100, 0b10000000); - REQUIRE(snes.ppu->_registers._inidisp.fblank == true); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0x0); + REQUIRE(snes.ppu._registers._inidisp.fblank == true); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0x0); } TEST_CASE("inidisp_data_fBlank_off_brghtness_max PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2100, 0b00001111); - REQUIRE(snes.ppu->_registers._inidisp.fblank == false); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0xF); + REQUIRE(snes.ppu._registers._inidisp.fblank == false); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0xF); } TEST_CASE("inidisp_data_fBlank_off_brghtness_half PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2100, 0b00000101); - REQUIRE(snes.ppu->_registers._inidisp.fblank == false); - REQUIRE(snes.ppu->_registers._inidisp.brightness == 0x5); + REQUIRE(snes.ppu._registers._inidisp.fblank == false); + REQUIRE(snes.ppu._registers._inidisp.brightness == 0x5); } TEST_CASE("obsel_111_object_size_and_all_null PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2101, 0b11100000); - REQUIRE(snes.ppu->_registers._obsel.objectSize == 0b111); - REQUIRE(snes.ppu->_registers._obsel.nameSelect == 0b00); - REQUIRE(snes.ppu->_registers._obsel.nameBaseSelect == 0b000); + REQUIRE(snes.ppu._registers._obsel.objectSize == 0b111); + REQUIRE(snes.ppu._registers._obsel.nameSelect == 0b00); + REQUIRE(snes.ppu._registers._obsel.nameBaseSelect == 0b000); } TEST_CASE("obsel_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2101, 0b11111111); - REQUIRE(snes.ppu->_registers._obsel.objectSize == 0b111); - REQUIRE(snes.ppu->_registers._obsel.nameSelect == 0b11); - REQUIRE(snes.ppu->_registers._obsel.nameBaseSelect == 0b111); + REQUIRE(snes.ppu._registers._obsel.objectSize == 0b111); + REQUIRE(snes.ppu._registers._obsel.nameSelect == 0b11); + REQUIRE(snes.ppu._registers._obsel.nameBaseSelect == 0b111); } TEST_CASE("obsel_data_full_nameselect PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2101, 0b00011000); - REQUIRE(snes.ppu->_registers._obsel.objectSize == 0b000); - REQUIRE(snes.ppu->_registers._obsel.nameSelect == 0b11); - REQUIRE(snes.ppu->_registers._obsel.nameBaseSelect == 0b000); + REQUIRE(snes.ppu._registers._obsel.objectSize == 0b000); + REQUIRE(snes.ppu._registers._obsel.nameSelect == 0b11); + REQUIRE(snes.ppu._registers._obsel.nameBaseSelect == 0b000); } TEST_CASE("obsel_data_full_baseselect_write", "[PPU_write]") { Init() snes.bus.write(0x2101, 0b00000111); - REQUIRE(snes.ppu->_registers._obsel.objectSize == 0b000); - REQUIRE(snes.ppu->_registers._obsel.nameSelect == 0b00); - REQUIRE(snes.ppu->_registers._obsel.nameBaseSelect == 0b111); + REQUIRE(snes.ppu._registers._obsel.objectSize == 0b000); + REQUIRE(snes.ppu._registers._obsel.nameSelect == 0b00); + REQUIRE(snes.ppu._registers._obsel.nameBaseSelect == 0b111); } TEST_CASE("oamaddl_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2102, 0b11111111); - REQUIRE(snes.ppu->_registers._oamadd.oamAddress == 0b011111111); + REQUIRE(snes.ppu._registers._oamadd.oamAddress == 0b011111111); } TEST_CASE("oamaddh_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2103, 0b11111111); - REQUIRE(snes.ppu->_registers._oamadd.objPriorityActivationBit == true); - REQUIRE(snes.ppu->_registers._oamadd.oamAddress == 0b100000000); + REQUIRE(snes.ppu._registers._oamadd.objPriorityActivationBit == true); + REQUIRE(snes.ppu._registers._oamadd.oamAddress == 0b100000000); } TEST_CASE("oamaddlh_data_full PPU_write", "[PPU_write]") @@ -107,8 +107,8 @@ TEST_CASE("oamaddlh_data_full PPU_write", "[PPU_write]") Init() snes.bus.write(0x2102, 0b11111111); snes.bus.write(0x2103, 0b11111111); - REQUIRE(snes.ppu->_registers._oamadd.objPriorityActivationBit == true); - REQUIRE(snes.ppu->_registers._oamadd.oamAddress == 0b111111111); + REQUIRE(snes.ppu._registers._oamadd.objPriorityActivationBit == true); + REQUIRE(snes.ppu._registers._oamadd.oamAddress == 0b111111111); } TEST_CASE("oamaddlh_data_full_priorityBit_off PPU_write", "[PPU_write]") @@ -116,8 +116,8 @@ TEST_CASE("oamaddlh_data_full_priorityBit_off PPU_write", "[PPU_write]") Init() snes.bus.write(0x2102, 0b11111111); snes.bus.write(0x2103, 0b01111111); - REQUIRE(snes.ppu->_registers._oamadd.objPriorityActivationBit == false); - REQUIRE(snes.ppu->_registers._oamadd.oamAddress == 0b111111111); + REQUIRE(snes.ppu._registers._oamadd.objPriorityActivationBit == false); + REQUIRE(snes.ppu._registers._oamadd.oamAddress == 0b111111111); } TEST_CASE("oamaddlh_oamAdress_11_priorityBit_on PPU_write", "[PPU_write]") @@ -125,141 +125,141 @@ TEST_CASE("oamaddlh_oamAdress_11_priorityBit_on PPU_write", "[PPU_write]") Init() snes.bus.write(0x2102, 0b00001011); snes.bus.write(0x2103, 0b10011100); - REQUIRE(snes.ppu->_registers._oamadd.objPriorityActivationBit == true); - REQUIRE(snes.ppu->_registers._oamadd.oamAddress == 11); + REQUIRE(snes.ppu._registers._oamadd.objPriorityActivationBit == true); + REQUIRE(snes.ppu._registers._oamadd.oamAddress == 11); } TEST_CASE("bgmode_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2105, 0b11111111); - REQUIRE(snes.ppu->_registers._bgmode.bgMode == 7); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg1 == true); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg2 == true); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg3 == true); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg4 == true); - REQUIRE(snes.ppu->_registers._bgmode.mode1Bg3PriorityBit == true); + REQUIRE(snes.ppu._registers._bgmode.bgMode == 7); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg1 == true); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg2 == true); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg3 == true); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg4 == true); + REQUIRE(snes.ppu._registers._bgmode.mode1Bg3PriorityBit == true); } TEST_CASE("bgmode_bgmode_5_and_bg24_on PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2105, 0b10100101); - REQUIRE(snes.ppu->_registers._bgmode.bgMode == 5); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg1 == false); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg2 == true); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg3 == false); - REQUIRE(snes.ppu->_registers._bgmode.characterSizeBg4 == true); - REQUIRE(snes.ppu->_registers._bgmode.mode1Bg3PriorityBit == false); + REQUIRE(snes.ppu._registers._bgmode.bgMode == 5); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg1 == false); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg2 == true); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg3 == false); + REQUIRE(snes.ppu._registers._bgmode.characterSizeBg4 == true); + REQUIRE(snes.ppu._registers._bgmode.mode1Bg3PriorityBit == false); } TEST_CASE("mosaic_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2106, 0b11111111); - REQUIRE(snes.ppu->_registers._mosaic.affectBg1 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg2 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg3 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg4 == true); - REQUIRE(snes.ppu->_registers._mosaic.pixelSize == 0xF); + REQUIRE(snes.ppu._registers._mosaic.affectBg1 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg2 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg3 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg4 == true); + REQUIRE(snes.ppu._registers._mosaic.pixelSize == 0xF); } TEST_CASE("mosaic_affectbg23_w_1x1_size PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2106, 0b00000110); - REQUIRE(snes.ppu->_registers._mosaic.affectBg1 == false); - REQUIRE(snes.ppu->_registers._mosaic.affectBg2 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg3 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg4 == false); - REQUIRE(snes.ppu->_registers._mosaic.pixelSize == 0x0); + REQUIRE(snes.ppu._registers._mosaic.affectBg1 == false); + REQUIRE(snes.ppu._registers._mosaic.affectBg2 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg3 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg4 == false); + REQUIRE(snes.ppu._registers._mosaic.pixelSize == 0x0); } TEST_CASE("mosaic_affectbg14_w_2x2_size PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2106, 0b00101001); - REQUIRE(snes.ppu->_registers._mosaic.affectBg1 == true); - REQUIRE(snes.ppu->_registers._mosaic.affectBg2 == false); - REQUIRE(snes.ppu->_registers._mosaic.affectBg3 == false); - REQUIRE(snes.ppu->_registers._mosaic.affectBg4 == true); - REQUIRE(snes.ppu->_registers._mosaic.pixelSize == 0x2); + REQUIRE(snes.ppu._registers._mosaic.affectBg1 == true); + REQUIRE(snes.ppu._registers._mosaic.affectBg2 == false); + REQUIRE(snes.ppu._registers._mosaic.affectBg3 == false); + REQUIRE(snes.ppu._registers._mosaic.affectBg4 == true); + REQUIRE(snes.ppu._registers._mosaic.pixelSize == 0x2); } TEST_CASE("bg1sc_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2107, 0b11111111); - REQUIRE(snes.ppu->_registers._bgsc[0].tilemapAddress == 0b111111); - REQUIRE(snes.ppu->_registers._bgsc[0].tilemapHorizontalMirroring == true); - REQUIRE(snes.ppu->_registers._bgsc[0].tilemapVerticalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[0].tilemapAddress == 0b111111); + REQUIRE(snes.ppu._registers._bgsc[0].tilemapHorizontalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[0].tilemapVerticalMirroring == true); } TEST_CASE("bg2sc_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2108, 0b11111111); - REQUIRE(snes.ppu->_registers._bgsc[1].tilemapAddress == 0b111111); - REQUIRE(snes.ppu->_registers._bgsc[1].tilemapHorizontalMirroring == true); - REQUIRE(snes.ppu->_registers._bgsc[1].tilemapVerticalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[1].tilemapAddress == 0b111111); + REQUIRE(snes.ppu._registers._bgsc[1].tilemapHorizontalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[1].tilemapVerticalMirroring == true); } TEST_CASE("bg3sc_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x2109, 0b11111111); - REQUIRE(snes.ppu->_registers._bgsc[2].tilemapAddress == 0b111111); - REQUIRE(snes.ppu->_registers._bgsc[2].tilemapHorizontalMirroring == true); - REQUIRE(snes.ppu->_registers._bgsc[2].tilemapVerticalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[2].tilemapAddress == 0b111111); + REQUIRE(snes.ppu._registers._bgsc[2].tilemapHorizontalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[2].tilemapVerticalMirroring == true); } TEST_CASE("bg4sc_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210A, 0b11111111); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapAddress == 0b111111); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring == true); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapAddress == 0b111111); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapHorizontalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapVerticalMirroring == true); } TEST_CASE("bg4sc_data_null PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210A, 0b00000000); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapAddress == 0); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring == false); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring == false); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapAddress == 0); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapHorizontalMirroring == false); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapVerticalMirroring == false); } TEST_CASE("bg4sc_horizontal_off_vertical_on_random_tilemapAdress PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210A, 0b11000110); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapAddress == 0b110001); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapHorizontalMirroring == false); - REQUIRE(snes.ppu->_registers._bgsc[3].tilemapVerticalMirroring == true); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapAddress == 0b110001); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapHorizontalMirroring == false); + REQUIRE(snes.ppu._registers._bgsc[3].tilemapVerticalMirroring == true); } TEST_CASE("bg12nba_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210B, 0b11111111); - REQUIRE(snes.ppu->_registers._bgnba[0].baseAddressBg1a3 == 0b1111); - REQUIRE(snes.ppu->_registers._bgnba[0].baseAddressBg2a4 == 0b1111); + REQUIRE(snes.ppu._registers._bgnba[0].baseAddressBg1a3 == 0b1111); + REQUIRE(snes.ppu._registers._bgnba[0].baseAddressBg2a4 == 0b1111); } TEST_CASE("bg34nba_data_full PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210C, 0b11111111); - REQUIRE(snes.ppu->_registers._bgnba[1].baseAddressBg1a3 == 0b1111); - REQUIRE(snes.ppu->_registers._bgnba[1].baseAddressBg2a4 == 0b1111); + REQUIRE(snes.ppu._registers._bgnba[1].baseAddressBg1a3 == 0b1111); + REQUIRE(snes.ppu._registers._bgnba[1].baseAddressBg2a4 == 0b1111); } TEST_CASE("bg12nba_data_random_data PPU_write", "[PPU_write]") { Init() snes.bus.write(0x210B, 0b10101010); - REQUIRE(snes.ppu->_registers._bgnba[0].baseAddressBg1a3 == 0b1010); - REQUIRE(snes.ppu->_registers._bgnba[0].baseAddressBg2a4 == 0b1010); + REQUIRE(snes.ppu._registers._bgnba[0].baseAddressBg1a3 == 0b1010); + REQUIRE(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 624d861..34c2f9f 100644 --- a/tests/PPU/testPpuWriteFromVmain.cpp +++ b/tests/PPU/testPpuWriteFromVmain.cpp @@ -15,36 +15,36 @@ TEST_CASE("vmain_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2115, 0b11111111); - REQUIRE(snes.ppu->_registers._vmain.incrementMode == true); - REQUIRE(snes.ppu->_registers._vmain.addressRemapping == 0b11); - REQUIRE(snes.ppu->_registers._vmain.incrementAmount == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementMode == true); + REQUIRE(snes.ppu._registers._vmain.addressRemapping == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementAmount == 0b11); } TEST_CASE("vmain_incrementmode_off_false_else_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2115, 0b01111111); - REQUIRE(snes.ppu->_registers._vmain.incrementMode == false); - REQUIRE(snes.ppu->_registers._vmain.addressRemapping == 0b11); - REQUIRE(snes.ppu->_registers._vmain.incrementAmount == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementMode == false); + REQUIRE(snes.ppu._registers._vmain.addressRemapping == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementAmount == 0b11); } TEST_CASE("vmain_addressremaping_null_else_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2115, 0b11110011); - REQUIRE(snes.ppu->_registers._vmain.incrementMode == true); - REQUIRE(snes.ppu->_registers._vmain.addressRemapping == 0b00); - REQUIRE(snes.ppu->_registers._vmain.incrementAmount == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementMode == true); + REQUIRE(snes.ppu._registers._vmain.addressRemapping == 0b00); + REQUIRE(snes.ppu._registers._vmain.incrementAmount == 0b11); } TEST_CASE("vmain_incrementamount_null_else_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2115, 0b11111100); - REQUIRE(snes.ppu->_registers._vmain.incrementMode == true); - REQUIRE(snes.ppu->_registers._vmain.addressRemapping == 0b11); - REQUIRE(snes.ppu->_registers._vmain.incrementAmount == 0b00); + REQUIRE(snes.ppu._registers._vmain.incrementMode == true); + REQUIRE(snes.ppu._registers._vmain.addressRemapping == 0b11); + REQUIRE(snes.ppu._registers._vmain.incrementAmount == 0b00); } TEST_CASE("vmadd_full_data PPU_write_2", "[PPU_write_2]") @@ -52,7 +52,7 @@ TEST_CASE("vmadd_full_data PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x2116, 0b11111111); snes.bus.write(0x2117, 0b11111111); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0b1111111111111111); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0b1111111111111111); } TEST_CASE("vmadd_full_data_check_ram PPU_write_2", "[PPU_write_2]") @@ -63,9 +63,9 @@ TEST_CASE("vmadd_full_data_check_ram PPU_write_2", "[PPU_write_2]") snes.bus.write(0x2117, 0); snes.bus.write(0x2118, 0xFF); snes.bus.write(0x2119, 0xFF); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 3); - REQUIRE(snes.ppu->vram->read(4) == 0xFF); - REQUIRE(snes.ppu->vram->read(5) == 0xF); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 3); + REQUIRE(snes.ppu.vram->read(4) == 0xFF); + REQUIRE(snes.ppu.vram->read(5) == 0xF); } TEST_CASE("vmadd_full_high_byte_null PPU_write_2", "[PPU_write_2]") @@ -73,7 +73,7 @@ TEST_CASE("vmadd_full_high_byte_null PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x2116, 0b11111111); snes.bus.write(0x2117, 0b00000000); - REQUIRE(snes.ppu->_registers._vmadd.vmadd == 0b0000000011111111); + REQUIRE(snes.ppu._registers._vmadd.vmadd == 0b0000000011111111); } TEST_CASE("vmdata_full_data PPU_write_2", "[PPU_write_2]") @@ -81,7 +81,7 @@ TEST_CASE("vmdata_full_data PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x2118, 0b11111111); snes.bus.write(0x2119, 0b11111111); - REQUIRE(snes.ppu->_registers._vmdata.vmdata == 0b1111111111111111); + REQUIRE(snes.ppu._registers._vmdata.vmdata == 0b1111111111111111); } TEST_CASE("vmdata_full_high_byte_null PPU_write_2", "[PPU_write_2]") @@ -89,15 +89,15 @@ TEST_CASE("vmdata_full_high_byte_null PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x2118, 0b11111111); snes.bus.write(0x2119, 0b00000000); - REQUIRE(snes.ppu->_registers._vmdata.vmdata == 0b0000000011111111); + REQUIRE(snes.ppu._registers._vmdata.vmdata == 0b0000000011111111); } TEST_CASE("cgadd_full_high_byte_null PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2121, 0b11111111); - REQUIRE(snes.ppu->_registers._cgadd == 0b11111111); - REQUIRE(snes.ppu->_registers._isLowByte == true); + REQUIRE(snes.ppu._registers._cgadd == 0b11111111); + REQUIRE(snes.ppu._registers._isLowByte == true); } TEST_CASE("cgdata_data_full PPU_write_2", "[PPU_write_2]") @@ -105,190 +105,190 @@ TEST_CASE("cgdata_data_full PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x2121, 0x0); snes.bus.write(0x2122, 0b11111111); - REQUIRE(snes.ppu->_registers._cgdata.cgdatal == 0b11111111); - REQUIRE(snes.ppu->_registers._isLowByte == false); - int address = snes.ppu->_registers._cgadd; + REQUIRE(snes.ppu._registers._cgdata.cgdatal == 0b11111111); + REQUIRE(snes.ppu._registers._isLowByte == false); + int address = snes.ppu._registers._cgadd; snes.bus.write(0x2122, 0b11111000); - REQUIRE(snes.ppu->_registers._cgdata.cgdatah == 0b11111000); - REQUIRE(snes.ppu->_registers._isLowByte == true); - REQUIRE(snes.ppu->_registers._cgadd == address + 2); + REQUIRE(snes.ppu._registers._cgdata.cgdatah == 0b11111000); + REQUIRE(snes.ppu._registers._isLowByte == true); + REQUIRE(snes.ppu._registers._cgadd == address + 2); } TEST_CASE("m7sel_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x211A, 0b11111111); - REQUIRE(snes.ppu->_registers._m7sel.playingFieldSize == true); - REQUIRE(snes.ppu->_registers._m7sel.emptySpaceFill == true); - REQUIRE(snes.ppu->_registers._m7sel.horizontalMirroring == true); - REQUIRE(snes.ppu->_registers._m7sel.verticalMirroring == true); + REQUIRE(snes.ppu._registers._m7sel.playingFieldSize == true); + REQUIRE(snes.ppu._registers._m7sel.emptySpaceFill == true); + REQUIRE(snes.ppu._registers._m7sel.horizontalMirroring == true); + REQUIRE(snes.ppu._registers._m7sel.verticalMirroring == true); } TEST_CASE("m7sel_data_actual PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x211A, 0b01111101); - REQUIRE(snes.ppu->_registers._m7sel.playingFieldSize == false); - REQUIRE(snes.ppu->_registers._m7sel.emptySpaceFill == true); - REQUIRE(snes.ppu->_registers._m7sel.horizontalMirroring == true); - REQUIRE(snes.ppu->_registers._m7sel.verticalMirroring == false); + REQUIRE(snes.ppu._registers._m7sel.playingFieldSize == false); + REQUIRE(snes.ppu._registers._m7sel.emptySpaceFill == true); + REQUIRE(snes.ppu._registers._m7sel.horizontalMirroring == true); + REQUIRE(snes.ppu._registers._m7sel.verticalMirroring == false); } TEST_CASE("w12sel_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2123, 0b11111111); - REQUIRE(snes.ppu->_registers._wsel[0].window1InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[0].enableWindow1ForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[0].window2InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[0].enableWindow2ForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[0].window1InversionForBg2Bg4Color == true); - REQUIRE(snes.ppu->_registers._wsel[0].enableWindow1ForBg2Bg4Color == true); - REQUIRE(snes.ppu->_registers._wsel[0].window2InversionForBg2Bg4Color == true); - REQUIRE(snes.ppu->_registers._wsel[0].enableWindow2ForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[0].window1InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[0].enableWindow1ForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[0].window2InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[0].enableWindow2ForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[0].window1InversionForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[0].enableWindow1ForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[0].window2InversionForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[0].enableWindow2ForBg2Bg4Color == true); } TEST_CASE("w34sel_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2124, 0b10101010); - REQUIRE(snes.ppu->_registers._wsel[1].window1InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[1].enableWindow1ForBg1Bg3Obj == false); - REQUIRE(snes.ppu->_registers._wsel[1].window2InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[1].enableWindow2ForBg1Bg3Obj == false); - REQUIRE(snes.ppu->_registers._wsel[1].window1InversionForBg2Bg4Color == true); - REQUIRE(snes.ppu->_registers._wsel[1].enableWindow1ForBg2Bg4Color == false); - REQUIRE(snes.ppu->_registers._wsel[1].window2InversionForBg2Bg4Color == true); - REQUIRE(snes.ppu->_registers._wsel[1].enableWindow2ForBg2Bg4Color == false); + REQUIRE(snes.ppu._registers._wsel[1].window1InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[1].enableWindow1ForBg1Bg3Obj == false); + REQUIRE(snes.ppu._registers._wsel[1].window2InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[1].enableWindow2ForBg1Bg3Obj == false); + REQUIRE(snes.ppu._registers._wsel[1].window1InversionForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[1].enableWindow1ForBg2Bg4Color == false); + REQUIRE(snes.ppu._registers._wsel[1].window2InversionForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[1].enableWindow2ForBg2Bg4Color == false); } TEST_CASE("wobjsel_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2125, 0b10110001); - REQUIRE(snes.ppu->_registers._wsel[2].window1InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[2].enableWindow1ForBg1Bg3Obj == false); - REQUIRE(snes.ppu->_registers._wsel[2].window2InversionForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[2].enableWindow2ForBg1Bg3Obj == true); - REQUIRE(snes.ppu->_registers._wsel[2].window1InversionForBg2Bg4Color == false); - REQUIRE(snes.ppu->_registers._wsel[2].enableWindow1ForBg2Bg4Color == false); - REQUIRE(snes.ppu->_registers._wsel[2].window2InversionForBg2Bg4Color == false); - REQUIRE(snes.ppu->_registers._wsel[2].enableWindow2ForBg2Bg4Color == true); + REQUIRE(snes.ppu._registers._wsel[2].window1InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[2].enableWindow1ForBg1Bg3Obj == false); + REQUIRE(snes.ppu._registers._wsel[2].window2InversionForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[2].enableWindow2ForBg1Bg3Obj == true); + REQUIRE(snes.ppu._registers._wsel[2].window1InversionForBg2Bg4Color == false); + REQUIRE(snes.ppu._registers._wsel[2].enableWindow1ForBg2Bg4Color == false); + REQUIRE(snes.ppu._registers._wsel[2].window2InversionForBg2Bg4Color == false); + REQUIRE(snes.ppu._registers._wsel[2].enableWindow2ForBg2Bg4Color == true); } TEST_CASE("wbglog_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212A, 0b10110001); - REQUIRE(snes.ppu->_registers._wbglog.maskLogicBg1 == 0b10); - REQUIRE(snes.ppu->_registers._wbglog.maskLogicBg2 == 0b11); - REQUIRE(snes.ppu->_registers._wbglog.maskLogicBg3 == 0b00); - REQUIRE(snes.ppu->_registers._wbglog.maskLogicBg4 == 0b01); + REQUIRE(snes.ppu._registers._wbglog.maskLogicBg1 == 0b10); + REQUIRE(snes.ppu._registers._wbglog.maskLogicBg2 == 0b11); + REQUIRE(snes.ppu._registers._wbglog.maskLogicBg3 == 0b00); + REQUIRE(snes.ppu._registers._wbglog.maskLogicBg4 == 0b01); } TEST_CASE("wobjlog_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212B, 0b10110001); - REQUIRE(snes.ppu->_registers._wobjlog.maskLogicObj == 0b01); - REQUIRE(snes.ppu->_registers._wobjlog.maskLogicColor == 0b00); + REQUIRE(snes.ppu._registers._wobjlog.maskLogicObj == 0b01); + REQUIRE(snes.ppu._registers._wobjlog.maskLogicColor == 0b00); } TEST_CASE("tm_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212C, 0b10110001); - REQUIRE(snes.ppu->_registers._t[0].enableWindowDisplayBg1 == true); - REQUIRE(snes.ppu->_registers._t[0].enableWindowDisplayBg2 == false); - REQUIRE(snes.ppu->_registers._t[0].enableWindowDisplayBg3 == false); - REQUIRE(snes.ppu->_registers._t[0].enableWindowDisplayBg4 == false); - REQUIRE(snes.ppu->_registers._t[0].enableWindowDisplayObj == true); + REQUIRE(snes.ppu._registers._t[0].enableWindowDisplayBg1 == true); + REQUIRE(snes.ppu._registers._t[0].enableWindowDisplayBg2 == false); + REQUIRE(snes.ppu._registers._t[0].enableWindowDisplayBg3 == false); + REQUIRE(snes.ppu._registers._t[0].enableWindowDisplayBg4 == false); + REQUIRE(snes.ppu._registers._t[0].enableWindowDisplayObj == true); } TEST_CASE("ts_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212D, 0b10101110); - REQUIRE(snes.ppu->_registers._t[1].enableWindowDisplayBg1 == false); - REQUIRE(snes.ppu->_registers._t[1].enableWindowDisplayBg2 == true); - REQUIRE(snes.ppu->_registers._t[1].enableWindowDisplayBg3 == true); - REQUIRE(snes.ppu->_registers._t[1].enableWindowDisplayBg4 == true); - REQUIRE(snes.ppu->_registers._t[1].enableWindowDisplayObj == false); + REQUIRE(snes.ppu._registers._t[1].enableWindowDisplayBg1 == false); + REQUIRE(snes.ppu._registers._t[1].enableWindowDisplayBg2 == true); + REQUIRE(snes.ppu._registers._t[1].enableWindowDisplayBg3 == true); + REQUIRE(snes.ppu._registers._t[1].enableWindowDisplayBg4 == true); + REQUIRE(snes.ppu._registers._t[1].enableWindowDisplayObj == false); } TEST_CASE("tmw_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212E, 0b10101110); - REQUIRE(snes.ppu->_registers._tw[0].enableWindowMaskingBg1 == false); - REQUIRE(snes.ppu->_registers._tw[0].enableWindowMaskingBg2 == true); - REQUIRE(snes.ppu->_registers._tw[0].enableWindowMaskingBg3 == true); - REQUIRE(snes.ppu->_registers._tw[0].enableWindowMaskingBg4 == true); - REQUIRE(snes.ppu->_registers._tw[0].enableWindowMaskingObj == false); + REQUIRE(snes.ppu._registers._tw[0].enableWindowMaskingBg1 == false); + REQUIRE(snes.ppu._registers._tw[0].enableWindowMaskingBg2 == true); + REQUIRE(snes.ppu._registers._tw[0].enableWindowMaskingBg3 == true); + REQUIRE(snes.ppu._registers._tw[0].enableWindowMaskingBg4 == true); + REQUIRE(snes.ppu._registers._tw[0].enableWindowMaskingObj == false); } TEST_CASE("tsw_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x212F, 0b10100011); - REQUIRE(snes.ppu->_registers._tw[1].enableWindowMaskingBg1 == true); - REQUIRE(snes.ppu->_registers._tw[1].enableWindowMaskingBg2 == true); - REQUIRE(snes.ppu->_registers._tw[1].enableWindowMaskingBg3 == false); - REQUIRE(snes.ppu->_registers._tw[1].enableWindowMaskingBg4 == false); - REQUIRE(snes.ppu->_registers._tw[1].enableWindowMaskingObj == false); + REQUIRE(snes.ppu._registers._tw[1].enableWindowMaskingBg1 == true); + REQUIRE(snes.ppu._registers._tw[1].enableWindowMaskingBg2 == true); + REQUIRE(snes.ppu._registers._tw[1].enableWindowMaskingBg3 == false); + REQUIRE(snes.ppu._registers._tw[1].enableWindowMaskingBg4 == false); + REQUIRE(snes.ppu._registers._tw[1].enableWindowMaskingObj == false); } TEST_CASE("cgwsel_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2130, 0b10111001); - REQUIRE(snes.ppu->_registers._cgwsel.clipColorToBlackBeforeMath == 0b10); - REQUIRE(snes.ppu->_registers._cgwsel.preventColorMath == 0b11); - REQUIRE(snes.ppu->_registers._cgwsel.addSubscreen == false); - REQUIRE(snes.ppu->_registers._cgwsel.directColorMode == true); + REQUIRE(snes.ppu._registers._cgwsel.clipColorToBlackBeforeMath == 0b10); + REQUIRE(snes.ppu._registers._cgwsel.preventColorMath == 0b11); + REQUIRE(snes.ppu._registers._cgwsel.addSubscreen == false); + REQUIRE(snes.ppu._registers._cgwsel.directColorMode == true); } TEST_CASE("cgadsub_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2131, 0b10111001); - REQUIRE(snes.ppu->_registers._cgadsub.addSubtractSelect == true); - REQUIRE(snes.ppu->_registers._cgadsub.halfColorMath == false); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathBackdrop == true); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathObj == true); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathBg4 == true); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathBg3 == false); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathBg2 == false); - REQUIRE(snes.ppu->_registers._cgadsub.enableColorMathBg1 == true); + REQUIRE(snes.ppu._registers._cgadsub.addSubtractSelect == true); + REQUIRE(snes.ppu._registers._cgadsub.halfColorMath == false); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathBackdrop == true); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathObj == true); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathBg4 == true); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathBg3 == false); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathBg2 == false); + REQUIRE(snes.ppu._registers._cgadsub.enableColorMathBg1 == true); } TEST_CASE("coldata_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2132, 0b10111001); - REQUIRE(snes.ppu->_registers._coldata.blue == true); - REQUIRE(snes.ppu->_registers._coldata.green == false); - REQUIRE(snes.ppu->_registers._coldata.red == true); - REQUIRE(snes.ppu->_registers._coldata.colorIntensity == 0b11001); + REQUIRE(snes.ppu._registers._coldata.blue == true); + REQUIRE(snes.ppu._registers._coldata.green == false); + REQUIRE(snes.ppu._registers._coldata.red == true); + REQUIRE(snes.ppu._registers._coldata.colorIntensity == 0b11001); } TEST_CASE("setini_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x2133, 0b10111001); - REQUIRE(snes.ppu->_registers._setini.externalSync == true); - REQUIRE(snes.ppu->_registers._setini.mode7ExtBg == false); - REQUIRE(snes.ppu->_registers._setini.enablePseudoHiresMode == true); - REQUIRE(snes.ppu->_registers._setini.overscanMode == false); - REQUIRE(snes.ppu->_registers._setini.objInterlace == false); - REQUIRE(snes.ppu->_registers._setini.screenInterlace == true); + REQUIRE(snes.ppu._registers._setini.externalSync == true); + REQUIRE(snes.ppu._registers._setini.mode7ExtBg == false); + REQUIRE(snes.ppu._registers._setini.enablePseudoHiresMode == true); + REQUIRE(snes.ppu._registers._setini.overscanMode == false); + REQUIRE(snes.ppu._registers._setini.objInterlace == false); + REQUIRE(snes.ppu._registers._setini.screenInterlace == true); } TEST_CASE("m7a_data_full PPU_write_2", "[PPU_write_2]") { Init() snes.bus.write(0x211B, 0b10111001); - REQUIRE(snes.ppu->_registers._m7[0].m7l == 0b10111001); + REQUIRE(snes.ppu._registers._m7[0].m7l == 0b10111001); } TEST_CASE("m7c_data_low_and_high_byte PPU_write_2", "[PPU_write_2]") @@ -296,5 +296,5 @@ TEST_CASE("m7c_data_low_and_high_byte PPU_write_2", "[PPU_write_2]") Init() snes.bus.write(0x211D, 0b10111001); snes.bus.write(0x211D, 0b11111111); - REQUIRE(snes.ppu->_registers._m7[2].m7 == 0b1011100111111111); + REQUIRE(snes.ppu._registers._m7[2].m7 == 0b1011100111111111); } \ No newline at end of file diff --git a/tests/testMemoryBus.cpp b/tests/testMemoryBus.cpp index d36498e..6bbe4b8 100644 --- a/tests/testMemoryBus.cpp +++ b/tests/testMemoryBus.cpp @@ -5,9 +5,9 @@ #include #include #include "tests.hpp" -#include "../sources/Memory/MemoryShadow.hpp" -#include "../sources/Memory/RectangleShadow.hpp" -#include "../sources/Exceptions/InvalidAction.hpp" +#include "Memory/MemoryShadow.hpp" +#include "Memory/RectangleShadow.hpp" +#include "Exceptions/InvalidAction.hpp" using namespace ComSquare; @@ -21,242 +21,197 @@ using namespace ComSquare; TEST_CASE("GetWramStart BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - accessor = snes.bus.getAccessor(0x7E0000); - REQUIRE(accessor.get() == snes.wram.get()); + Memory::IMemory *accessor = snes.bus.getAccessor(0x7E0000); + REQUIRE(accessor == &snes.wram); } TEST_CASE("GetWramEnd BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x7FFFFF); - REQUIRE(accessor.get() == snes.wram.get()); + auto *accessor = snes.bus.getAccessor(0x7FFFFF); + REQUIRE(accessor == &snes.wram); } TEST_CASE("GetWramMirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x2F11FF)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x2F11FF)); REQUIRE(accessor != nullptr); - REQUIRE(accessor->_initial.get() == snes.wram.get()); + REQUIRE(&accessor->_initial == &snes.wram); } TEST_CASE("GetWramMirror2 BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x100000)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x100000)); REQUIRE(accessor != nullptr); - REQUIRE(accessor->_initial.get() == snes.wram.get()); + REQUIRE(&accessor->_initial == &snes.wram); } TEST_CASE("GetWramMirror3 BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x1010)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x1010)); REQUIRE(accessor != nullptr); - REQUIRE(accessor->_initial.get() == snes.wram.get()); + REQUIRE(&accessor->_initial == &snes.wram); } TEST_CASE("GetOpenBus BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor = snes.bus.getAccessor(0x897654); - REQUIRE(accessor.get() == nullptr); + auto *accessor = snes.bus.getAccessor(0x897654); + REQUIRE(accessor == nullptr); } TEST_CASE("GetSramStart BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x700000)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x700000)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.sram.get()); + REQUIRE(&accessor->_initial == &snes.sram); } TEST_CASE("GetSramEnd BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x7D7FFF)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x7D7FFF)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.sram.get()); + REQUIRE(&accessor->_initial == &snes.sram); } TEST_CASE("GetSramMirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0xF00123)); - REQUIRE(accessor.get() == snes.sram.get()); + auto *accessor = snes.bus.getAccessor(0xF00123); + REQUIRE(accessor == &snes.sram); } TEST_CASE("GetAPUStart BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x002140); - REQUIRE(accessor.get() == snes.apu.get()); + auto *accessor = snes.bus.getAccessor(0x002140); + REQUIRE(accessor == &snes.apu); } TEST_CASE("GetAPUEnd BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x002143); - REQUIRE(accessor.get() == snes.apu.get()); + auto *accessor = snes.bus.getAccessor(0x002143); + REQUIRE(accessor == &snes.apu); } TEST_CASE("GetAPUMirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0xAB2143)); - REQUIRE(accessor->_initial.get() == snes.apu.get()); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0xAB2143)); + REQUIRE(accessor); + REQUIRE(&accessor->_initial == &snes.apu); } TEST_CASE("GetAPUMirrorFirstHalf BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x052143)); - REQUIRE(accessor->_initial.get() == snes.apu.get()); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x052143)); + REQUIRE(accessor); + REQUIRE(&accessor->_initial == &snes.apu); } TEST_CASE("GetCPUStart BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x004200); - REQUIRE(accessor.get() == snes.cpu.get()); + auto *accessor = snes.bus.getAccessor(0x004200); + REQUIRE(accessor == &snes.cpu); } TEST_CASE("GetCPUEnd BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x00421F); - REQUIRE(accessor.get() == snes.cpu.get()); + auto *accessor = snes.bus.getAccessor(0x00421F); + REQUIRE(accessor == &snes.cpu); } TEST_CASE("GetPPU1Start BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x00213E); - REQUIRE(accessor.get() == snes.ppu.get()); + auto *accessor = snes.bus.getAccessor(0x00213E); + REQUIRE(accessor == &snes.ppu); } TEST_CASE("GetPPU1End BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x00213F); - REQUIRE(accessor.get() == snes.ppu.get()); + auto *accessor = snes.bus.getAccessor(0x00213F); + REQUIRE(accessor == &snes.ppu); } TEST_CASE("GetCPU BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x004212); - REQUIRE(accessor.get() == snes.cpu.get()); + auto *accessor = snes.bus.getAccessor(0x004212); + REQUIRE(accessor == &snes.cpu); } TEST_CASE("GetPPU1Mirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x80213F)); - REQUIRE(accessor->_initial.get() == snes.ppu.get()); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x80213F)); + REQUIRE(accessor); + REQUIRE(&accessor->_initial == &snes.ppu); } TEST_CASE("GetCPU2Mirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x804212)); - REQUIRE(accessor->_initial.get() == snes.cpu.get()); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x804212)); + REQUIRE(accessor); + REQUIRE(&accessor->_initial == &snes.cpu); } TEST_CASE("GetRomStart BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0x808000); - REQUIRE(accessor.get() == snes.cartridge.get()); + auto *accessor = snes.bus.getAccessor(0x808000); + REQUIRE(accessor == &snes.cartridge); } TEST_CASE("GetRomEnd BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = snes.bus.getAccessor(0xFFFFFF); - REQUIRE(accessor.get() == snes.cartridge.get()); + auto *accessor = snes.bus.getAccessor(0xFFFFFF); + REQUIRE(accessor == &snes.cartridge); } TEST_CASE("GetRomMirror BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x694200)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x694200)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.cartridge.get()); + REQUIRE(&accessor->_initial == &snes.cartridge); } TEST_CASE("GetRomMirror2 BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x01FEDC)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x01FEDC)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.cartridge.get()); + REQUIRE(&accessor->_initial == &snes.cartridge); } TEST_CASE("GetRomMirror3 BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0xDE1248)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0xDE1248)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.cartridge.get()); + REQUIRE(&accessor->_initial == &snes.cartridge); } TEST_CASE("Get0x0 BusAccessor", "[BusAccessor]") { Init() - std::shared_ptr accessor; - - accessor = std::static_pointer_cast(snes.bus.getAccessor(0x0)); + auto *accessor = dynamic_cast(snes.bus.getAccessor(0x0)); REQUIRE(accessor); - REQUIRE(accessor->_initial.get() == snes.wram.get()); + REQUIRE(&accessor->_initial == &snes.wram); } /////////////////////////// @@ -270,7 +225,7 @@ TEST_CASE("Read0x0 BusRead", "[BusRead]") Init() uint8_t data; - snes.wram->_data[0] = 123; + snes.wram._data[0] = 123; data = snes.bus.read(0x0); REQUIRE(data == 123); } @@ -310,7 +265,7 @@ TEST_CASE("ReadAPU BusRead", "[BusRead]") Init() uint8_t data; - snes.apu->_registers.port0 = 123; + snes.apu._registers.port0 = 123; data = snes.bus.read(0x002140); REQUIRE(data == 123); } @@ -320,7 +275,7 @@ TEST_CASE("ReadROM BusRead", "[BusRead]") Init() uint8_t data; - snes.cartridge->_data[5] = 123; + snes.cartridge._data[5] = 123; data = snes.bus.read(0x808005); REQUIRE(data == 123); } @@ -330,7 +285,7 @@ TEST_CASE("ReadROMStart BusRead", "[BusRead]") Init() uint8_t data; - snes.cartridge->_data[0] = 123; + snes.cartridge._data[0] = 123; data = snes.bus.read(0x808000); REQUIRE(data == 123); } @@ -340,7 +295,7 @@ TEST_CASE("ReadCPU BusRead", "[BusRead]") Init() uint8_t data; - snes.cpu->_internalRegisters.wrio = 123; + snes.cpu._internalRegisters.wrio = 123; data = snes.bus.read(0x004201); REQUIRE(data == 123); } @@ -350,7 +305,7 @@ TEST_CASE("ReadPPU BusRead", "[BusRead]") Init() uint8_t data; - snes.ppu->_registers._mpy.mpyl = 123; + snes.ppu._registers._mpy.mpyl = 123; data = snes.bus.read(0x002134); REQUIRE(data == 123); } @@ -360,7 +315,7 @@ TEST_CASE("ReadSRAM BusRead", "[BusRead]") Init() uint8_t data; - snes.sram->_data[7] = 123; + snes.sram._data[7] = 123; data = snes.bus.read(0x700007); REQUIRE(data == 123); } @@ -370,7 +325,7 @@ TEST_CASE("ReadWRAM BusRead", "[BusRead]") Init() uint8_t data; - snes.wram->_data[3] = 123; + snes.wram._data[3] = 123; data = snes.bus.read(0x7E0003); REQUIRE(data == 123); } @@ -380,7 +335,7 @@ TEST_CASE("ReadWRAM2 BusRead", "[BusRead]") Init() uint8_t data; - snes.wram->_data[0x1010] = 123; + snes.wram._data[0x1010] = 123; data = snes.bus.read(0x7E1010); REQUIRE(data == 123); } @@ -391,7 +346,7 @@ TEST_CASE("ReadWRAMMirror BusRead", "[BusRead]") Init() uint8_t data; - snes.wram->_data[0x1010] = 123; + snes.wram._data[0x1010] = 123; data = snes.bus.read(0x1010); REQUIRE(data == 123); } @@ -411,7 +366,7 @@ TEST_CASE("Write0x0 BusWrite", "[BusWrite]") } catch (std::exception &ex) { std::cout << ex.what() << std::endl; } - REQUIRE(snes.wram->_data[0] == 123); + REQUIRE(snes.wram._data[0] == 123); } @@ -420,7 +375,7 @@ TEST_CASE("WriteAPU BusWrite", "[BusWrite]") Init() snes.bus.write(0x002143, 123); - REQUIRE(snes.apu->_registers.port3 == 123); + REQUIRE(snes.apu._registers.port3 == 123); } TEST_CASE("WritePPU BusWrite", "[BusWrite]") @@ -428,7 +383,7 @@ TEST_CASE("WritePPU BusWrite", "[BusWrite]") Init() snes.bus.write(0x002106, 123); - REQUIRE(snes.ppu->_registers._mosaic.raw == 123); + REQUIRE(snes.ppu._registers._mosaic.raw == 123); } TEST_CASE("WriteCPU BusWrite", "[BusWrite]") @@ -436,7 +391,7 @@ TEST_CASE("WriteCPU BusWrite", "[BusWrite]") Init() snes.bus.write(0x00420D, 123); - REQUIRE(snes.cpu->_internalRegisters.memsel == 123); + REQUIRE(snes.cpu._internalRegisters.memsel == 123); } TEST_CASE("WriteROM BusWrite", "[BusWrite]") @@ -451,7 +406,7 @@ TEST_CASE("WriteWRAM BusWrite", "[BusWrite]") Init() snes.bus.write(0x7E0002, 123); - REQUIRE(snes.wram->_data[2] == 123); + REQUIRE(snes.wram._data[2] == 123); } TEST_CASE("WriteSRAM BusWrite", "[BusWrite]") @@ -459,5 +414,5 @@ TEST_CASE("WriteSRAM BusWrite", "[BusWrite]") Init() snes.bus.write(0x700009, 123); - REQUIRE(snes.sram->_data[9] == 123); + REQUIRE(snes.sram._data[9] == 123); } \ No newline at end of file diff --git a/tests/testRectangleMemory.cpp b/tests/testRectangleMemory.cpp index 44e1590..afdc97c 100644 --- a/tests/testRectangleMemory.cpp +++ b/tests/testRectangleMemory.cpp @@ -4,7 +4,7 @@ #include #include "tests.hpp" -#include "../sources/Memory/RectangleShadow.hpp" +#include "Memory/RectangleShadow.hpp" using namespace ComSquare; @@ -46,11 +46,11 @@ TEST_CASE("DualLineRamRead RectangleMemory", "[RectangleMemory]") TEST_CASE("HorizontalRamShadowRead RectangleMemory", "[RectangleMemory]") { - std::shared_ptr ram = std::make_shared(0xFF, Component::Rom, "Rom"); - ram->setMemoryRegion(0x00, 0xFF, 0x0000, 0x0000); + Ram::Ram ram(0xFF, Component::Rom, "Rom"); + ram.setMemoryRegion(0x00, 0xFF, 0x0000, 0x0000); Memory::RectangleShadow shadow(ram, 0x00, 0xFF, 0x8000, 0x8000); for (int i = 0x00; i < 0xFF; i++) - ram->_data[i] = i; + ram._data[i] = i; for (uint24_t i = 0x008000; i < 0xFF8000; i += 0x010000) { uint8_t v = shadow.read(shadow.getRelativeAddress(i)); REQUIRE(v == i >> 16u); @@ -58,11 +58,11 @@ TEST_CASE("HorizontalRamShadowRead RectangleMemory", "[RectangleMemory]") TEST_CASE("HorizontalRamShadowReadWithBankOffset RectangleMemory", "[RectangleMemory]") { - std::shared_ptr ram = std::make_shared(0xFF, Component::Rom, "Rom"); - ram->setMemoryRegion(0x00, 0xFF, 0x0000, 0x0000); + Ram::Ram ram(0xFF, Component::Rom, "Rom"); + ram.setMemoryRegion(0x00, 0xFF, 0x0000, 0x0000); Memory::RectangleShadow shadow(ram, 0x80, 0xFF, 0x8000, 0x8000); for (int i = 0x00; i < 0xFF; i++) - ram->_data[i] = i; + ram._data[i] = i; shadow.setBankOffset(0x80); for (uint24_t i = 0x808000; i < 0xFF8000; i += 0x010000) { uint8_t v = shadow.read(shadow.getRelativeAddress(i)); @@ -72,17 +72,17 @@ TEST_CASE("HorizontalRamShadowReadWithBankOffset RectangleMemory", "[RectangleMe TEST_CASE("ShadowOffsetCartridge RectangleMemory", "[RectangleMemory]") { - std::shared_ptr ram = std::make_shared(0x3fff80, Component::Rom, "Rom"); - ram->setMemoryRegion(0x80, 0xFF, 0x8000, 0xFFFF); + Ram::Ram ram(0x3fff80, Component::Rom, "Rom"); + ram.setMemoryRegion(0x80, 0xFF, 0x8000, 0xFFFF); Memory::RectangleShadow shadow(ram, 0xC0, 0xEF, 0x0000, 0x7FFF); for (int i = 0x00; i < 0x3fff80; i++) - ram->_data[i] = i; + ram._data[i] = i; shadow.setBankOffset(0x40); for (uint24_t i = 0xC00000; i <= 0xEF7FFF; i += 0x1) { if ((uint16_t)i > 0x7FFFu) i += 0x010000 - 0x8000; uint8_t v = shadow.read(shadow.getRelativeAddress(i)); - uint8_t r = ram->read(ram->getRelativeAddress(i + 0x8000)); + uint8_t r = ram.read(ram.getRelativeAddress(i + 0x8000)); REQUIRE(v == r); } } \ No newline at end of file diff --git a/tests/tests.hpp b/tests/tests.hpp index 2b0834e..4216c9f 100644 --- a/tests/tests.hpp +++ b/tests/tests.hpp @@ -17,14 +17,15 @@ #include "SNES.hpp" #define Init() \ - Renderer::NoRenderer norenderer(0, 0, 0); \ - SNES snes(norenderer); \ - snes.cartridge->_size = 100; \ - delete[] snes.cartridge->_data; \ - snes.cartridge->_data = new uint8_t[snes.cartridge->_size]; \ - memset(snes.cartridge->_data, 0, snes.cartridge->_size); \ - snes.cartridge->header.mappingMode = Cartridge::LoRom; \ - snes.sram->_size = 100; \ - delete[] snes.sram->_data; \ - snes.sram->_data = new uint8_t[snes.sram->_size]; \ - memset(snes.sram->_data, 0, snes.cartridge->_size); + Renderer::NoRenderer norenderer(0, 0, 0); \ + auto *snesPtr = new SNES(norenderer); \ + SNES &snes = *snesPtr; \ + snes.cartridge._size = 100; \ + delete[] snes.cartridge._data; \ + snes.cartridge._data = new uint8_t[snes.cartridge._size]; \ + memset(snes.cartridge._data, 0, snes.cartridge._size); \ + snes.cartridge.header.mappingMode = Cartridge::LoRom; \ + snes.sram._size = 100; \ + delete[] snes.sram._data; \ + snes.sram._data = new uint8_t[snes.sram._size]; \ + memset(snes.sram._data, 0, snes.cartridge._size);