mirror of
https://github.com/notwa/mm
synced 2024-11-04 22:39:02 -08:00
misc monitor for oot
This commit is contained in:
parent
abb05dc67e
commit
86173f3014
2 changed files with 30 additions and 8 deletions
|
@ -125,6 +125,7 @@ return {
|
|||
event_chk_inf = AL(0xED4, 0x1C),
|
||||
item_get_inf = AL(0xEF0, 0x8),
|
||||
inf_table = AL(0xEF8, 0x3C),
|
||||
checksum = AL(0x1352, 2),
|
||||
event_inf = AL(0x13FA, 0x8),
|
||||
magic_max = AL(0x13F4, 2),
|
||||
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
require = require "depend"
|
||||
require "boilerplate"
|
||||
require "addrs.init"
|
||||
require "messages"
|
||||
require "classes"
|
||||
|
||||
-- no effect on OoT
|
||||
local unk_only = false
|
||||
|
||||
local unk = ByteMonitor('unk', AL(0xF6, 0x37A))
|
||||
unk.byvalue = true
|
||||
unk:load('data/_unk.lua')
|
||||
|
||||
local link = ByteMonitor('link', AL(0,0x100C))
|
||||
local ignore_fields = {
|
||||
local size = addrs.checksum.addr - addrs.exit_value.addr + 4
|
||||
local link = ByteMonitor('link', AL(0, size))
|
||||
local ignore_fields = mm and {
|
||||
"exit_value",
|
||||
"mask_worn",
|
||||
"cutscene_status",
|
||||
|
@ -26,20 +29,38 @@ local ignore_fields = {
|
|||
"inventory_items",
|
||||
"inventory_masks",
|
||||
"inventory_quantities",
|
||||
} or {
|
||||
"exit_value",
|
||||
"cutscene_status",
|
||||
"time",
|
||||
"hearts",
|
||||
"magic",
|
||||
"rupees",
|
||||
"navi_timer",
|
||||
"scene_flags_save",
|
||||
"inventory_items",
|
||||
"inventory_quantities",
|
||||
"event_chk_inf",
|
||||
"item_get_inf",
|
||||
"inf_table",
|
||||
"event_inf",
|
||||
}
|
||||
|
||||
function link:ignore(i)
|
||||
for _, k in ipairs(ignore_fields) do
|
||||
local size = addrs[k].type
|
||||
local v = addrs[k]
|
||||
if not v then
|
||||
error('unknown addr: '..tostring(k), 1)
|
||||
end
|
||||
local size = v.type
|
||||
if size == 'f' then size = 4 end
|
||||
local a = addrs[k].addr - self.begin
|
||||
local b = a + size
|
||||
if i >= a and i < b then return true end
|
||||
local a = v.addr - self.begin
|
||||
if i >= a and i < a + size then return true end
|
||||
end
|
||||
end
|
||||
|
||||
while mm do
|
||||
if unk_only then
|
||||
while mm or oot do
|
||||
if mm and unk_only then
|
||||
unk:diff()
|
||||
unk:save()
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue