Mesen-SX/Core/DebugUtilities.h

103 lines
2.4 KiB
C
Raw Normal View History

#pragma once
#include "stdafx.h"
#include "DebugTypes.h"
class DebugUtilities
{
public:
static SnesMemoryType GetCpuMemoryType(CpuType type)
{
switch(type) {
case CpuType::Cpu: return SnesMemoryType::CpuMemory;
case CpuType::Spc: return SnesMemoryType::SpcMemory;
2020-02-23 21:50:55 -05:00
case CpuType::NecDsp: return SnesMemoryType::NecDspMemory;
case CpuType::Sa1: return SnesMemoryType::Sa1Memory;
2019-07-30 22:34:52 -04:00
case CpuType::Gsu: return SnesMemoryType::GsuMemory;
2020-02-24 22:00:52 -05:00
case CpuType::Cx4: return SnesMemoryType::Cx4Memory;
case CpuType::Gameboy: return SnesMemoryType::GameboyMemory;
}
throw std::runtime_error("Invalid CPU type");
}
2019-07-30 22:34:52 -04:00
2020-02-11 22:01:06 -05:00
static CpuType ToCpuType(SnesMemoryType type)
{
switch(type) {
case SnesMemoryType::SpcMemory:
case SnesMemoryType::SpcRam:
case SnesMemoryType::SpcRom:
return CpuType::Spc;
case SnesMemoryType::GsuMemory:
case SnesMemoryType::GsuWorkRam:
return CpuType::Gsu;
case SnesMemoryType::Sa1InternalRam:
case SnesMemoryType::Sa1Memory:
return CpuType::Sa1;
case SnesMemoryType::DspDataRam:
case SnesMemoryType::DspDataRom:
case SnesMemoryType::DspProgramRom:
return CpuType::NecDsp;
2020-02-24 22:00:52 -05:00
case SnesMemoryType::Cx4DataRam:
case SnesMemoryType::Cx4Memory:
return CpuType::Cx4;
case SnesMemoryType::GbPrgRom:
case SnesMemoryType::GbWorkRam:
case SnesMemoryType::GbCartRam:
case SnesMemoryType::GbHighRam:
case SnesMemoryType::GbBootRom:
case SnesMemoryType::GbVideoRam:
case SnesMemoryType::GbSpriteRam:
case SnesMemoryType::GameboyMemory:
return CpuType::Gameboy;
2020-02-24 22:00:52 -05:00
2020-02-11 22:01:06 -05:00
default:
return CpuType::Cpu;
}
throw std::runtime_error("Invalid CPU type");
}
2019-07-30 22:34:52 -04:00
static constexpr SnesMemoryType GetLastCpuMemoryType()
{
return SnesMemoryType::GameboyMemory;
2019-07-30 22:34:52 -04:00
}
static bool IsPpuMemory(SnesMemoryType memType)
{
switch(memType) {
case SnesMemoryType::VideoRam:
case SnesMemoryType::SpriteRam:
case SnesMemoryType::CGRam:
case SnesMemoryType::GbVideoRam:
case SnesMemoryType::GbSpriteRam:
return true;
default:
return false;
}
}
static bool IsRomMemory(SnesMemoryType memType)
{
switch(memType) {
case SnesMemoryType::PrgRom:
case SnesMemoryType::GbPrgRom:
case SnesMemoryType::GbBootRom:
case SnesMemoryType::SaveRam: //Include save ram here to avoid uninit memory read warnings on save ram
return true;
default:
return false;
}
}
2019-07-30 22:34:52 -04:00
static constexpr CpuType GetLastCpuType()
{
return CpuType::Gameboy;
2019-07-30 22:34:52 -04:00
}
};