Debugger: Lua - Remove "debug" read/write API (replaced by cpuDebug & ppuDebug enum values)
This commit is contained in:
parent
ba8540e4f2
commit
4245561034
4 changed files with 45 additions and 88 deletions
|
@ -803,9 +803,12 @@ uint8_t BaseMapper::InternalReadVRAM(uint16_t addr)
|
|||
return _vramOpenBusValue >= 0 ? _vramOpenBusValue : addr;
|
||||
}
|
||||
|
||||
uint8_t BaseMapper::DebugReadVRAM(uint16_t addr)
|
||||
uint8_t BaseMapper::DebugReadVRAM(uint16_t addr, bool disableSideEffects)
|
||||
{
|
||||
ProcessVramAccess(addr);
|
||||
if(!disableSideEffects) {
|
||||
NotifyVRAMAddressChange(addr);
|
||||
}
|
||||
return InternalReadVRAM(addr);
|
||||
}
|
||||
|
||||
|
@ -814,9 +817,13 @@ uint8_t BaseMapper::MapperReadVRAM(uint16_t addr, MemoryOperationType operationT
|
|||
return InternalReadVRAM(addr);
|
||||
}
|
||||
|
||||
void BaseMapper::InternalWriteVRAM(uint16_t addr, uint8_t value)
|
||||
void BaseMapper::DebugWriteVRAM(uint16_t addr, uint8_t value, bool disableSideEffects)
|
||||
{
|
||||
if(_chrPages[addr >> 8]) {
|
||||
ProcessVramAccess(addr);
|
||||
if(!disableSideEffects) {
|
||||
NotifyVRAMAddressChange(addr);
|
||||
}
|
||||
if(_chrPageAccessType[addr >> 8] & MemoryAccessType::Write) {
|
||||
_chrPages[addr >> 8][(uint8_t)addr] = value;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -186,11 +186,11 @@ public:
|
|||
return value;
|
||||
}
|
||||
|
||||
void InternalWriteVRAM(uint16_t addr, uint8_t value);
|
||||
void DebugWriteVRAM(uint16_t addr, uint8_t value, bool disableSideEffects = true);
|
||||
void WriteVRAM(uint16_t addr, uint8_t value);
|
||||
|
||||
__forceinline void ProcessVramAccess(uint16_t &addr);
|
||||
uint8_t DebugReadVRAM(uint16_t addr);
|
||||
uint8_t DebugReadVRAM(uint16_t addr, bool disableSideEffects = true);
|
||||
|
||||
static void InitializeRam(void* data, uint32_t length);
|
||||
|
||||
|
|
|
@ -57,12 +57,8 @@ int LuaApi::GetLibrary(lua_State *lua)
|
|||
static const luaL_Reg apilib[] = {
|
||||
{ "read", LuaApi::ReadMemory },
|
||||
{ "write", LuaApi::WriteMemory },
|
||||
{ "debugRead", LuaApi::DebugReadMemory },
|
||||
{ "debugWrite", LuaApi::DebugWriteMemory },
|
||||
{ "readWord", LuaApi::ReadMemoryWord },
|
||||
{ "writeWord", LuaApi::WriteMemoryWord },
|
||||
{ "debugReadWord", LuaApi::DebugReadMemoryWord },
|
||||
{ "debugWriteWord", LuaApi::DebugWriteMemoryWord },
|
||||
{ "revertPrgChrChanges", LuaApi::RevertPrgChrChanges },
|
||||
{ "addMemoryCallback", LuaApi::RegisterMemoryCallback },
|
||||
{ "removeMemoryCallback", LuaApi::UnregisterMemoryCallback },
|
||||
|
@ -114,6 +110,8 @@ int LuaApi::GetLibrary(lua_State *lua)
|
|||
lua_pushintvalue(chrRam, DebugMemoryType::ChrRam);
|
||||
lua_pushintvalue(workRam, DebugMemoryType::WorkRam);
|
||||
lua_pushintvalue(saveRam, DebugMemoryType::SaveRam);
|
||||
lua_pushintvalue(cpuDebug, DebugMemoryType::CpuMemory | 0x100);
|
||||
lua_pushintvalue(ppuDebug, DebugMemoryType::PpuMemory | 0x100);
|
||||
lua_settable(lua, -3);
|
||||
|
||||
lua_pushliteral(lua, "memCallbackType");
|
||||
|
@ -150,11 +148,13 @@ int LuaApi::ReadMemory(lua_State *lua)
|
|||
LuaCallHelper l(lua);
|
||||
l.ForceParamCount(3);
|
||||
bool returnSignedValue = l.ReadBool();
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int type = l.ReadInteger();
|
||||
bool disableSideEffects = (type & 0x100) == 0x100;
|
||||
DebugMemoryType memType = (DebugMemoryType)(type & 0xFF);
|
||||
int address = l.ReadInteger();
|
||||
checkminparams(2);
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
uint8_t value = _memoryDumper->GetMemoryValue(type, address, false);
|
||||
uint8_t value = _memoryDumper->GetMemoryValue(memType, address, disableSideEffects);
|
||||
l.Return(returnSignedValue ? (int8_t)value : value);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
@ -162,40 +162,15 @@ int LuaApi::ReadMemory(lua_State *lua)
|
|||
int LuaApi::WriteMemory(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int type = l.ReadInteger();
|
||||
bool disableSideEffects = (type & 0x100) == 0x100;
|
||||
DebugMemoryType memType = (DebugMemoryType)(type & 0xFF);
|
||||
int value = l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkparams();
|
||||
errorCond(value > 255 || value < -128, "value out of range");
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
_memoryDumper->SetMemoryValue(type, address, value, false, false);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
int LuaApi::DebugReadMemory(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
l.ForceParamCount(3);
|
||||
bool returnSignedValue = l.ReadBool();
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkminparams(2);
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
uint8_t value = _memoryDumper->GetMemoryValue(type, address, true);
|
||||
l.Return(returnSignedValue ? (int8_t)value : value);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
int LuaApi::DebugWriteMemory(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int value = l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkparams();
|
||||
errorCond(value > 255 || value < -128, "value out of range");
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
_memoryDumper->SetMemoryValue(type, address, value, false, true);
|
||||
_memoryDumper->SetMemoryValue(memType, address, value, false, disableSideEffects);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
|
@ -204,11 +179,13 @@ int LuaApi::ReadMemoryWord(lua_State *lua)
|
|||
LuaCallHelper l(lua);
|
||||
l.ForceParamCount(3);
|
||||
bool returnSignedValue = l.ReadBool();
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int type = l.ReadInteger();
|
||||
bool disableSideEffects = (type & 0x100) == 0x100;
|
||||
DebugMemoryType memType = (DebugMemoryType)(type & 0xFF);
|
||||
int address = l.ReadInteger();
|
||||
checkminparams(2);
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
uint16_t value = _memoryDumper->GetMemoryValueWord(type, address, false);
|
||||
uint16_t value = _memoryDumper->GetMemoryValueWord(memType, address, disableSideEffects);
|
||||
l.Return(returnSignedValue ? (int16_t)value : value);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
@ -216,40 +193,15 @@ int LuaApi::ReadMemoryWord(lua_State *lua)
|
|||
int LuaApi::WriteMemoryWord(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int type = l.ReadInteger();
|
||||
bool disableSideEffects = (type & 0x100) == 0x100;
|
||||
DebugMemoryType memType = (DebugMemoryType)(type & 0xFF);
|
||||
int value = l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkparams();
|
||||
errorCond(value > 65535 || value < -32768, "value out of range");
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
_memoryDumper->SetMemoryValueWord(type, address, value, false, false);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
int LuaApi::DebugReadMemoryWord(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
l.ForceParamCount(3);
|
||||
bool returnSignedValue = l.ReadBool();
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkminparams(2);
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
uint16_t value = _memoryDumper->GetMemoryValueWord(type, address, true);
|
||||
l.Return(returnSignedValue ? (int16_t)value : value);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
int LuaApi::DebugWriteMemoryWord(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
DebugMemoryType type = (DebugMemoryType)l.ReadInteger();
|
||||
int value = l.ReadInteger();
|
||||
int address = l.ReadInteger();
|
||||
checkparams();
|
||||
errorCond(value > 65535 || value < -32768, "value out of range");
|
||||
errorCond(address < 0, "address must be >= 0");
|
||||
_memoryDumper->SetMemoryValueWord(type, address, value, false, true);
|
||||
_memoryDumper->SetMemoryValueWord(memType, address, value, false, disableSideEffects);
|
||||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
|
|
|
@ -146,27 +146,26 @@ void MemoryDumper::SetMemoryValue(DebugMemoryType memoryType, uint32_t address,
|
|||
}
|
||||
break;
|
||||
|
||||
case DebugMemoryType::InternalRam: _memoryManager->DebugWrite(address, value, disableSideEffects); break;
|
||||
|
||||
case DebugMemoryType::PpuMemory: _mapper->DebugWriteVRAM(address, value, disableSideEffects); break;
|
||||
case DebugMemoryType::PaletteMemory: _ppu->WritePaletteRAM(address, value); break;
|
||||
case DebugMemoryType::SpriteMemory: _ppu->GetSpriteRam()[address] = value; break;
|
||||
case DebugMemoryType::SecondarySpriteMemory: _ppu->GetSecondarySpriteRam()[address] = value; break;
|
||||
|
||||
case DebugMemoryType::PpuMemory: _mapper->InternalWriteVRAM(address, value); break;
|
||||
|
||||
case DebugMemoryType::ChrRam:
|
||||
case DebugMemoryType::WorkRam:
|
||||
case DebugMemoryType::SaveRam:
|
||||
case DebugMemoryType::ChrRom:
|
||||
_mapper->SetMemoryValue(memoryType, address, value);
|
||||
break;
|
||||
|
||||
case DebugMemoryType::PrgRom:
|
||||
_mapper->SetMemoryValue(memoryType, address, value);
|
||||
if(!preventRebuildCache) {
|
||||
_disassembler->RebuildPrgRomCache(address, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case DebugMemoryType::ChrRom:
|
||||
case DebugMemoryType::ChrRam:
|
||||
case DebugMemoryType::WorkRam:
|
||||
case DebugMemoryType::SaveRam:
|
||||
_mapper->SetMemoryValue(memoryType, address, value);
|
||||
break;
|
||||
|
||||
case DebugMemoryType::InternalRam: _memoryManager->DebugWrite(address, value); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -201,20 +200,19 @@ uint8_t MemoryDumper::GetMemoryValue(DebugMemoryType memoryType, uint32_t addres
|
|||
}
|
||||
break;
|
||||
|
||||
case DebugMemoryType::InternalRam: return _memoryManager->DebugRead(address, disableSideEffects);
|
||||
|
||||
case DebugMemoryType::PpuMemory: return _mapper->DebugReadVRAM(address, disableSideEffects);
|
||||
case DebugMemoryType::PaletteMemory: return _ppu->ReadPaletteRAM(address);
|
||||
case DebugMemoryType::SpriteMemory: return _ppu->GetSpriteRam()[address];
|
||||
case DebugMemoryType::SecondarySpriteMemory: return _ppu->GetSecondarySpriteRam()[address];
|
||||
|
||||
case DebugMemoryType::PpuMemory: return _mapper->InternalReadVRAM(address);
|
||||
|
||||
case DebugMemoryType::PrgRom:
|
||||
case DebugMemoryType::ChrRom:
|
||||
case DebugMemoryType::ChrRam:
|
||||
case DebugMemoryType::WorkRam:
|
||||
case DebugMemoryType::SaveRam:
|
||||
case DebugMemoryType::PrgRom:
|
||||
case DebugMemoryType::ChrRom:
|
||||
return _mapper->GetMemoryValue(memoryType, address);
|
||||
|
||||
case DebugMemoryType::InternalRam: return _memoryManager->DebugRead(address);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue