1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-05-05 00:33:22 -07:00
mm/Lua/monitor misc.lua

113 lines
2.5 KiB
Lua

require "lib.setup"
require "boilerplate"
require "addrs"
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 size = addrs.checksum.addr - addrs.exit_value.addr + 4
local link = ByteMonitor('link', AL(0, size))
local ignore_fields = mm and {
addrs.exit_value,
addrs.mask_worn,
addrs.intro_completed,
addrs.anti_mash_timer,
addrs.cutscene_status,
addrs.time,
addrs.owl_id,
addrs.day_night,
addrs.time_speed,
addrs.day,
addrs.days_elapsed,
addrs.transformation,
addrs.have_tatl,
addrs.owl_save,
addrs.ZELDA3,
addrs.sot_count,
addrs.name,
addrs.max_hearts,
addrs.hearts,
addrs.magic_level,
addrs.magic,
addrs.rupees,
addrs.navi_timer,
addrs.has_normal_magic,
addrs.has_double_magic,
addrs.owls_hit,
-- addrs.tunic_boots,
addrs.sword_shield,
addrs.inventory_items,
addrs.inventory_masks,
addrs.inventory_quantities,
addrs.upgrades,
addrs.quest_items,
addrs.items_wft,
addrs.items_sht,
addrs.items_gbt,
addrs.items_stt,
addrs.keys_wft,
addrs.keys_sht,
addrs.keys_gbt,
addrs.keys_stt,
addrs.doubled_hearts,
addrs.fairies_wft,
addrs.fairies_sht,
addrs.fairies_gbt,
addrs.fairies_stt,
-- addrs.strange_string,
addrs.inventory.b_button_item,
addrs.inventory.c_left_item,
addrs.inventory.c_down_item,
addrs.inventory.c_right_item,
addrs.inventory.c_left_slot,
addrs.inventory.c_down_slot,
addrs.inventory.c_right_slot,
addrs.scene_flags_save,
addrs.scene_flags_ingame,
addrs.week_event_reg,
addrs.event_inf,
} or {
addrs.exit_value,
addrs.cutscene_status,
addrs.time,
addrs.hearts,
addrs.magic,
addrs.rupees,
addrs.navi_timer,
addrs.scene_flags_save,
addrs.inventory_items,
addrs.inventory_quantities,
addrs.event_chk_inf,
addrs.item_get_inf,
addrs.inf_table,
addrs.event_inf,
}
function link:ignore(i)
for _, v in pairs(ignore_fields) do
local size = v.type
if size == 'f' then size = 4 end
local a = v.addr - self.begin
if i >= a and i < a + size then return true end
end
end
while mm or oot do
if mm and unk_only then
unk:diff()
unk:save()
else
link:diff()
end
draw_messages()
print_deferred()
emu.frameadvance()
end