diff options
author | 2018-08-27 20:43:33 -0500 | |
---|---|---|
committer | 2018-08-27 20:43:33 -0500 | |
commit | 9f12058484b71d21abceffa147aa89f72f19774b (patch) | |
tree | 673c76f61330ab93480e300a3d7bdd2c53e66d6a /plugins | |
parent | 6be0b400ae28c4d7022226cfcc76260b116927db (diff) |
plugins/cheat[find]: fix memshares (nw)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/cheat/init.lua | 14 | ||||
-rw-r--r-- | plugins/cheatfind/init.lua | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/plugins/cheat/init.lua b/plugins/cheat/init.lua index 9495cfc689b..0f9f4a99e1e 100644 --- a/plugins/cheat/init.lua +++ b/plugins/cheat/init.lua @@ -37,6 +37,10 @@ -- "varname": "tag", -- ... -- }, +-- "share": { +-- "varname": "tag", +-- ... +-- }, -- "script": { -- "on|off|run|change": "script", -- ... @@ -481,6 +485,16 @@ function cheat.startplugin() cheat.cheat_env[name] = emu.item(ram.items["0/m_pointer"]) end end + if cheat.share then + for name, tag in pairs(cheat.share) do + local share = manager:machine():memory().shares[tag] + if not share then + cheat_error(cheat, "missing share " .. share) + return + end + cheat.cheat_env[name] = share + end + end local param = cheat.parameter if not param then return diff --git a/plugins/cheatfind/init.lua b/plugins/cheatfind/init.lua index 2b7c1bb2db7..27290f6fe93 100644 --- a/plugins/cheatfind/init.lua +++ b/plugins/cheatfind/init.lua @@ -713,6 +713,9 @@ function cheatfind.startplugin() if getmetatable(dev.space).__name:match("device_t") then cheat.ram = { ram = dev.tag } cheat.script.run = "ram:write(" .. match.addr .. "," .. match.newval .. ")" + elseif getmetatable(dev.space).__name:match("memory_share") then + cheat.share = { share = dev.tag } + cheat.script.run = "share:write_" .. wid .. "(" .. match.addr .. "," .. match.newval .. ")" else cheat.space = { cpu = { tag = dev.tag, type = dev.sname } } cheat.script.run = "cpu:write_" .. wid .. "(" .. match.addr .. "," .. match.newval .. ")" |