console.clear(); local location="(not set)"; local flag=false; function check() local pot={ bit.rshift(bit.band(memory.read_u16_be(0x410FA6),0x0F00),0x8), bit.rshift(bit.band(memory.read_u16_be(0x410FA6),0x00F0),0x4), bit.band(memory.read_u16_be(0x410FA6),0x000F), } -- Link not holding pot anymore. if(memory.read_u32_be(0x3FFDB0+0x124)==0x00000000)then -- 0xX2XX -- 0xX3XX -- 0xX6XX -- 0xX7XX if(pot[1]==0x2 or pot[1]==0x3 or pot[1]==0x6 or pot[1]==0x7)then -- 0xXX15 -- 0xXX65 -- 0xXX2D -- 0xXX4B -- 0xXX80 if( ((pot[2]==0x1 or pot[2]==0x6) and pot[3]==0x5) or (pot[2]==0x2 and pot[3]==0xD) or (pot[2]==0x4 and pot[3]==0xB) or (pot[2]==0x8 and pot[3]==0x0))then location="Goht Trial"; return true; -- 0xXX01 elseif(pot[2]==0x0 and pot[3]==0x1)then location="Pirate's Fortress"; return true; end end end return false; end -- Reset on loading savestate. function reset() if(flag)then flag=false; end end while true do event.onloadstate(reset); if(check() and flag==false)then gui.addmessage(location); gui.addmessage(""); flag=true; end emu.frameadvance(); end