mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-06-09 20:59:06 +00:00
Merge branch 'master' of https://github.com/AnonymusRaccoon/ComSquare
This commit is contained in:
+8
-51
@@ -14,30 +14,14 @@ namespace ComSquare::APU
|
|||||||
uint8_t APU::read(uint24_t addr)
|
uint8_t APU::read(uint24_t addr)
|
||||||
{
|
{
|
||||||
switch (addr) {
|
switch (addr) {
|
||||||
case 0xF0:
|
case 0x00:
|
||||||
return this->_registers.unknown;
|
|
||||||
case 0xF2:
|
|
||||||
return this->_registers.dspregAddr;
|
|
||||||
case 0xF3:
|
|
||||||
return this->_registers.dspregData;
|
|
||||||
case 0xF4:
|
|
||||||
return this->_registers.port0;
|
return this->_registers.port0;
|
||||||
case 0xF5:
|
case 0x01:
|
||||||
return this->_registers.port1;
|
return this->_registers.port1;
|
||||||
case 0xF6:
|
case 0x02:
|
||||||
return this->_registers.port2;
|
return this->_registers.port2;
|
||||||
case 0xF7:
|
case 0x03:
|
||||||
return this->_registers.port3;
|
return this->_registers.port3;
|
||||||
case 0xF8:
|
|
||||||
return this->_registers.regmem1;
|
|
||||||
case 0xF9:
|
|
||||||
return this->_registers.regmem2;
|
|
||||||
case 0xFD:
|
|
||||||
return this->_registers.counter0;
|
|
||||||
case 0xFE:
|
|
||||||
return this->_registers.counter1;
|
|
||||||
case 0xFF:
|
|
||||||
return this->_registers.counter2;
|
|
||||||
default:
|
default:
|
||||||
throw InvalidAddress("APU Registers read", addr);
|
throw InvalidAddress("APU Registers read", addr);
|
||||||
}
|
}
|
||||||
@@ -46,45 +30,18 @@ namespace ComSquare::APU
|
|||||||
void APU::write(uint24_t addr, uint8_t data)
|
void APU::write(uint24_t addr, uint8_t data)
|
||||||
{
|
{
|
||||||
switch (addr) {
|
switch (addr) {
|
||||||
case 0xF0:
|
case 0x00:
|
||||||
this->_registers.unknown = data;
|
|
||||||
break;
|
|
||||||
case 0xF1:
|
|
||||||
this->_registers.ctrlreg = data;
|
|
||||||
break;
|
|
||||||
case 0xF2:
|
|
||||||
this->_registers.dspregAddr = data;
|
|
||||||
break;
|
|
||||||
case 0xF3:
|
|
||||||
this->_registers.dspregData = data;
|
|
||||||
break;
|
|
||||||
case 0xF4:
|
|
||||||
this->_registers.port0 = data;
|
this->_registers.port0 = data;
|
||||||
break;
|
break;
|
||||||
case 0xF5:
|
case 0x01:
|
||||||
this->_registers.port1 = data;
|
this->_registers.port1 = data;
|
||||||
break;
|
break;
|
||||||
case 0xF6:
|
case 0x02:
|
||||||
this->_registers.port2 = data;
|
this->_registers.port2 = data;
|
||||||
break;
|
break;
|
||||||
case 0xF7:
|
case 0x03:
|
||||||
this->_registers.port3 = data;
|
this->_registers.port3 = data;
|
||||||
break;
|
break;
|
||||||
case 0xF8:
|
|
||||||
this->_registers.regmem1 = data;
|
|
||||||
break;
|
|
||||||
case 0xF9:
|
|
||||||
this->_registers.regmem2 = data;
|
|
||||||
break;
|
|
||||||
case 0xFA:
|
|
||||||
this->_registers.timer0 = data;
|
|
||||||
break;
|
|
||||||
case 0xFB:
|
|
||||||
this->_registers.timer1 = data;
|
|
||||||
break;
|
|
||||||
case 0xFC:
|
|
||||||
this->_registers.timer2 = data;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
throw InvalidAddress("APU Registers write", addr);
|
throw InvalidAddress("APU Registers write", addr);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include <criterion/criterion.h>
|
#include <criterion/criterion.h>
|
||||||
|
#include <criterion/redirect.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "communism.hpp"
|
#include "communism.hpp"
|
||||||
#include "../sources/Memory/MemoryBus.hpp"
|
#include "../sources/Memory/MemoryBus.hpp"
|
||||||
@@ -26,8 +27,6 @@ std::pair<Memory::MemoryBus, SNES> Init()
|
|||||||
snes.cartridge->header.mappingMode = Cartridge::LoRom;
|
snes.cartridge->header.mappingMode = Cartridge::LoRom;
|
||||||
snes.sram->_size = 10;
|
snes.sram->_size = 10;
|
||||||
snes.sram->_data = new uint8_t[snes.cartridge->_size];
|
snes.sram->_data = new uint8_t[snes.cartridge->_size];
|
||||||
snes.wram->_size = 10;
|
|
||||||
snes.wram->_data = new uint8_t[snes.cartridge->_size];
|
|
||||||
bus.mapComponents(snes);
|
bus.mapComponents(snes);
|
||||||
return std::make_pair(bus, snes);
|
return std::make_pair(bus, snes);
|
||||||
}
|
}
|
||||||
@@ -251,7 +250,7 @@ Test(BusAccessor, GetRomMirror3)
|
|||||||
// //
|
// //
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
|
|
||||||
Test(BusRead, ReadOutside)
|
Test(BusRead, ReadOutside, .init = cr_redirect_stdout)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
uint8_t data;
|
uint8_t data;
|
||||||
@@ -261,7 +260,7 @@ Test(BusRead, ReadOutside)
|
|||||||
cr_assert_eq(data, 123);
|
cr_assert_eq(data, 123);
|
||||||
}
|
}
|
||||||
|
|
||||||
Test(BusRead, ReadOutside2)
|
Test(BusRead, ReadOutside2, .init = cr_redirect_stdout)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
uint8_t data;
|
uint8_t data;
|
||||||
@@ -271,7 +270,7 @@ Test(BusRead, ReadOutside2)
|
|||||||
cr_assert_eq(data, 123);
|
cr_assert_eq(data, 123);
|
||||||
}
|
}
|
||||||
|
|
||||||
Test(BusRead, ReadOutside3)
|
Test(BusRead, ReadOutside3, .init = cr_redirect_stdout)
|
||||||
{
|
{
|
||||||
auto pair = Init();
|
auto pair = Init();
|
||||||
uint8_t data;
|
uint8_t data;
|
||||||
|
|||||||
Reference in New Issue
Block a user