mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
Debugger: Lua - Added getCdlData API
This commit is contained in:
parent
04062de085
commit
355ca16074
5 changed files with 42 additions and 0 deletions
|
@ -6,6 +6,7 @@
|
|||
#include "Debugger/MemoryDumper.h"
|
||||
#include "Debugger/ScriptingContext.h"
|
||||
#include "Debugger/MemoryAccessCounter.h"
|
||||
#include "Debugger/CdlManager.h"
|
||||
#include "Debugger/LabelManager.h"
|
||||
#include "Shared/SystemActionManager.h"
|
||||
#include "Shared/Video/DebugHud.h"
|
||||
|
@ -141,6 +142,8 @@ int LuaApi::GetLibrary(lua_State *lua)
|
|||
{ "getAccessCounters", LuaApi::GetAccessCounters },
|
||||
{ "resetAccessCounters", LuaApi::ResetAccessCounters },
|
||||
|
||||
{ "getCdlData", LuaApi::GetCdlData},
|
||||
|
||||
{ "addCheat", LuaApi::AddCheat },
|
||||
{ "clearCheats", LuaApi::ClearCheats },
|
||||
|
||||
|
@ -949,6 +952,31 @@ int LuaApi::ResetAccessCounters(lua_State *lua)
|
|||
return l.ReturnCount();
|
||||
}
|
||||
|
||||
int LuaApi::GetCdlData(lua_State* lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
MemoryType memoryType = (MemoryType)l.ReadInteger();
|
||||
checkEnum(MemoryType, memoryType, "Invalid memory type");
|
||||
checkparams();
|
||||
|
||||
if(!_debugger->GetCdlManager()->GetCodeDataLogger(memoryType)) {
|
||||
error("This memory type does not support CDL data (only some ROM memory types support it)");
|
||||
}
|
||||
|
||||
uint32_t size = _memoryDumper->GetMemorySize(memoryType);
|
||||
vector<uint8_t> cdlData;
|
||||
cdlData.resize(size, {});
|
||||
_debugger->GetCdlManager()->GetCdlData(0, size, memoryType, cdlData.data());
|
||||
|
||||
lua_newtable(lua);
|
||||
for(uint32_t i = 0; i < size; i++) {
|
||||
lua_pushinteger(lua, cdlData[i]);
|
||||
lua_rawseti(lua, -2, i);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int LuaApi::GetScriptDataFolder(lua_State *lua)
|
||||
{
|
||||
LuaCallHelper l(lua);
|
||||
|
|
|
@ -90,6 +90,8 @@ public:
|
|||
static int GetAccessCounters(lua_State *lua);
|
||||
static int ResetAccessCounters(lua_State *lua);
|
||||
|
||||
static int GetCdlData(lua_State* lua);
|
||||
|
||||
private:
|
||||
static FrameInfo InternalGetScreenSize();
|
||||
|
||||
|
|
|
@ -143,6 +143,16 @@
|
|||
],
|
||||
"returnValue": { "type": "Array", "description": "Array of ints" }
|
||||
},
|
||||
{
|
||||
"name": "getCdlData",
|
||||
"category": "Miscellaneous",
|
||||
"subcategory": "Cdl",
|
||||
"description": "Returns the current state of the CDL (code/data log) for the specified memory type. This can only be used for (some) ROM memory types.",
|
||||
"parameters": [
|
||||
{ "name": "memoryType", "type": "Enum", "enumName": "memType", "description": "Memory type" }
|
||||
],
|
||||
"returnValue": { "type": "Array", "description": "Array of bytes" }
|
||||
},
|
||||
{
|
||||
"name": "getDrawSurfaceSize",
|
||||
"category": "Drawing",
|
||||
|
|
|
@ -315,6 +315,7 @@ namespace Mesen.Debugger.Utilities
|
|||
public enum DocEntrySubcategory
|
||||
{
|
||||
AccessCounters,
|
||||
Cdl,
|
||||
Cheats,
|
||||
SaveStates,
|
||||
Others
|
||||
|
|
|
@ -3022,6 +3022,7 @@ E
|
|||
</Enum>
|
||||
<Enum ID="DocEntrySubcategory">
|
||||
<Value ID="AccessCounters">Access Counters</Value>
|
||||
<Value ID="Cdl">Code/Data Log</Value>
|
||||
<Value ID="Cheats">Cheats</Value>
|
||||
<Value ID="SaveStates">Save States</Value>
|
||||
<Value ID="Others">Others</Value>
|
||||
|
|
Loading…
Add table
Reference in a new issue