Once you know the address you want to understand how it changes, you can use this lua code to see which PC it changes at
Download print_disasm.luaLanguage: lua
local function print_disasm()
local pc = emu.getregister("PC") -- or whatever the PC register is called for that core, check using emu.getregisters()
local dis = emu.disassemble(pc).disasm -- not all cores have this, so you can just print the PC
print(string.format("%X: %s", pc, dis))
end
event.onmemorywrite(
print_disasm,
0 -- or whatever your address is
)
Depending on the core you may get the PC right before your address is written, but it would still be easy to find in the tracelog for the frame it changes at. And in the tracelog you can go up and see how the value affecting it is changing. You don't have memory view there, but you have affected addresses printed out anyway.
I feel you'd be better of just implementing proper breakpoints, then debugger would instantly jump to the location your address is changed on. The problem with the current hawk is that debugger is a tool and tools don't update midframe unless it's a hook like in lua. But you seem to have solved that part.
https://tasvideos.org/Bizhawk/LuaFunctions