mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
Debugger: PCE - Added psgchannel/vdcreg to expression tokens (+ fixed other tokens not working due to wrong case)
This commit is contained in:
parent
59944daeec
commit
186f181030
3 changed files with 18 additions and 4 deletions
|
@ -1,6 +1,8 @@
|
|||
#include "pch.h"
|
||||
#include "Debugger/ExpressionEvaluator.h"
|
||||
#include "PCE/PceTypes.h"
|
||||
#include "PCE/PceConsole.h"
|
||||
#include "PCE/PcePsg.h"
|
||||
#include "PCE/Debugger/PceDebugger.h"
|
||||
|
||||
unordered_map<string, int64_t>& ExpressionEvaluator::GetPceTokens()
|
||||
|
@ -26,10 +28,12 @@ unordered_map<string, int64_t>& ExpressionEvaluator::GetPceTokens()
|
|||
{ "psmemory", EvalValues::RegPS_Memory },
|
||||
{ "psoverflow", EvalValues::RegPS_Overflow },
|
||||
{ "psnegative", EvalValues::RegPS_Negative },
|
||||
{ "vramTransferDone", EvalValues::PceVramTransferDone },
|
||||
{ "satbTransferDone", EvalValues::PceSatbTransferDone },
|
||||
{ "scanlineDetected", EvalValues::PceScanlineDetected },
|
||||
{ "irqVdc2", EvalValues::PceIrqVdc2 },
|
||||
{ "vramtransferdone", EvalValues::PceVramTransferDone },
|
||||
{ "satbtransferdone", EvalValues::PceSatbTransferDone },
|
||||
{ "scanlinedetected", EvalValues::PceScanlineDetected },
|
||||
{ "irqvdc2", EvalValues::PceIrqVdc2 },
|
||||
{ "psgchannel", EvalValues::PceSelectedPsgChannel },
|
||||
{ "vdcreg", EvalValues::PceSelectedVdcRegister }
|
||||
};
|
||||
|
||||
return supportedTokens;
|
||||
|
@ -43,6 +47,10 @@ int64_t ExpressionEvaluator::GetPceTokenValue(int64_t token, EvalResultType& res
|
|||
return ppu;
|
||||
};
|
||||
|
||||
auto psg = [this]() -> PcePsgState& {
|
||||
return ((PceDebugger*)_cpuDebugger)->GetConsole()->GetPsg()->GetState();
|
||||
};
|
||||
|
||||
PceCpuState& s = (PceCpuState&)((PceDebugger*)_cpuDebugger)->GetState();
|
||||
switch(token) {
|
||||
case EvalValues::RegA: return s.A;
|
||||
|
@ -65,6 +73,8 @@ int64_t ExpressionEvaluator::GetPceTokenValue(int64_t token, EvalResultType& res
|
|||
case EvalValues::PceVramTransferDone: return ReturnBool(ppu().Vdc.VramTransferDone, resultType);
|
||||
case EvalValues::PceSatbTransferDone: return ReturnBool(ppu().Vdc.SatbTransferDone, resultType);
|
||||
case EvalValues::PceScanlineDetected: return ReturnBool(ppu().Vdc.ScanlineDetected, resultType);
|
||||
case EvalValues::PceSelectedPsgChannel: return psg().ChannelSelect;
|
||||
case EvalValues::PceSelectedVdcRegister: return ppu().Vdc.CurrentReg;
|
||||
|
||||
case EvalValues::RegPS_Carry: return ReturnBool(s.PS & PceCpuFlags::Carry, resultType);
|
||||
case EvalValues::RegPS_Zero: return ReturnBool(s.PS & PceCpuFlags::Zero, resultType);
|
||||
|
|
|
@ -147,6 +147,8 @@ enum EvalValues : int64_t
|
|||
PceSatbTransferDone,
|
||||
PceScanlineDetected,
|
||||
PceIrqVdc2,
|
||||
PceSelectedPsgChannel,
|
||||
PceSelectedVdcRegister,
|
||||
|
||||
FirstLabelIndex,
|
||||
};
|
||||
|
|
|
@ -96,6 +96,8 @@ public:
|
|||
IAssembler* GetAssembler() override;
|
||||
BaseEventManager* GetEventManager() override;
|
||||
|
||||
PceConsole* GetConsole() { return _console; }
|
||||
|
||||
BaseState& GetState() override;
|
||||
void GetPpuState(BaseState& state) override;
|
||||
void SetPpuState(BaseState& state) override;
|
||||
|
|
Loading…
Add table
Reference in a new issue