No noted Some potential improvement I can think of. One thought was the fact walking off a field edge while on the overworld affects address 0x
0095 by -4 (north), +1 (east), +4 (south), or -1 (west). This requires an open path to the field edge, which typically is walled off in dungeons. Air magic has a "warp back 1 floor" spell that preserves your current X,Y position, leading to some interesting areas, but I can't theorize a useful area to do this in.
Regardless, the bottom floor of the final area has a value of 0x8B, with the floor before it being 0x8A. Though I doubt we can abuse a map edge even with warp magic handy, it would be nice if we found a detour around the king & queen without need of picking up that sword. Just some potential improvement I might look into eventually.
It's about time I produced a script that shows a basic map. Now you can see exactly where I'm running around instead of seeing this silly blur. Feel free to view the
published run using it.
Wasn't sure where to put the map. I don't think anyone cares about seeing the character's face anyway.
Download DM.luaLanguage: lua
local R1u= memory.readbyte
local Li= gui.line
local Px= gui.pixel
local And= bit.band
--*****************************************************************************
local function Fn()
--*****************************************************************************
gui.box(14,129,96,211,"black","black")
for x= 0, 15 do
local L= 15 + 5*x
for y= 0, 15 do
local T= 130 + 5*y
local B= R1u(0x0600 + x + y*16)
if And(B,0x0F) == 0x0F then Px(L+2,T+2,"white") end
if And(B,0x11) == 0x11 then Li(L ,T ,L+4,T ,"green")
elseif And(B,0x01) ~= 0 then Li(L ,T ,L+4,T ,"white") end
if And(B,0x22) == 0x22 then Li(L+4,T ,L+4,T+4,"green")
elseif And(B,0x02) ~= 0 then Li(L+4,T ,L+4,T+4,"white") end
if And(B,0x44) == 0x44 then Li(L ,T+4,L+4,T+4,"green")
elseif And(B,0x04) ~= 0 then Li(L ,T+4,L+4,T+4,"white") end
if And(B,0x88) == 0x88 then Li(L ,T ,L ,T+4,"green")
elseif And(B,0x08) ~= 0 then Li(L ,T ,L ,T+4,"white") end
B= R1u(0x0700 + x + y*16)
if B ~= 0 then
local C= "red"
if B == 0x10 then C= "green"
elseif B == 0x80 then C= 0x0080FFFF end
gui.box(L+1,T+1,L+3,T+3,C,C)
end
end
end
end
gui.register(Fn)