mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
62 lines
No EOL
1.3 KiB
C++
62 lines
No EOL
1.3 KiB
C++
#include "pch.h"
|
|
#include "SNES/Debugger/DummySnesCpu.h"
|
|
|
|
#define DUMMYCPU
|
|
#define SnesCpu DummySnesCpu
|
|
#include "SNES/SnesCpu.cpp"
|
|
#undef SnesCpu
|
|
#undef DUMMYCPU
|
|
|
|
|
|
DummySnesCpu::DummySnesCpu(SnesConsole* console, CpuType type)
|
|
{
|
|
_console = console;
|
|
_memoryMappings = type == CpuType::Snes ? console->GetMemoryManager()->GetMemoryMappings() : console->GetCartridge()->GetSa1()->GetMemoryMappings();
|
|
_dmaController = nullptr;
|
|
_memoryManager = nullptr;
|
|
}
|
|
|
|
uint8_t DummySnesCpu::Read(uint32_t addr, MemoryOperationType type)
|
|
{
|
|
uint8_t value = _memoryMappings->Peek(addr);
|
|
LogMemoryOperation(addr, value, type);
|
|
return value;
|
|
}
|
|
|
|
void DummySnesCpu::Write(uint32_t addr, uint8_t value, MemoryOperationType type)
|
|
{
|
|
LogMemoryOperation(addr, value, type);
|
|
}
|
|
|
|
void DummySnesCpu::SetDummyState(SnesCpuState& state)
|
|
{
|
|
_state = state;
|
|
_state.StopState = SnesCpuStopState::Running;
|
|
_memOpCounter = 0;
|
|
}
|
|
|
|
uint32_t DummySnesCpu::GetOperationCount()
|
|
{
|
|
return _memOpCounter;
|
|
}
|
|
|
|
void DummySnesCpu::LogMemoryOperation(uint32_t addr, uint8_t value, MemoryOperationType type)
|
|
{
|
|
_memOperations[_memOpCounter] = {
|
|
addr,
|
|
(int32_t)value,
|
|
type,
|
|
MemoryType::SnesMemory
|
|
};
|
|
_memOpCounter++;
|
|
}
|
|
|
|
MemoryOperationInfo DummySnesCpu::GetOperationInfo(uint32_t index)
|
|
{
|
|
return _memOperations[index];
|
|
}
|
|
|
|
int32_t DummySnesCpu::GetLastOperand()
|
|
{
|
|
return _operand;
|
|
} |