local R1u, R1s= memory.read_u8 , memory.read_s8
local R2u, R2s= memory.read_u16_le, memory.read_s16_le
local R4u, R4s= memory.read_u32_le, memory.read_s32_le
--*****************************************************************************
local function FetchAddrDomainGBA(a,method)
--*****************************************************************************
--I am furious at the design away from the bus. It used to exist! Why remove?
--I do not want to code in removing offsets to pointers every time I read one.
--This function was made because I insist on full pointers. Has only what I know.
if (a >= 0x02000000) and (a < (0x02000000+memory.getmemorydomainsize("EWRAM"))) then
return a-0x02000000, "EWRAM"
elseif (a >= 0x03000000) and (a < (0x03000000+memory.getmemorydomainsize("IWRAM"))) then
return a-0x03000000, "IWRAM"
elseif (a >= 0x08000000) and (a < (0x08000000+memory.getmemorydomainsize("ROM"))) then
return a-0x08000000, "ROM"
else
error("Unknown address " .. a,2)
end
end
local function R1U(a) return R1u(FetchAddrDomainGBA(a)) end
local function R1S(a) return R1s(FetchAddrDomainGBA(a)) end
local function R2U(a) return R2u(FetchAddrDomainGBA(a)) end
local function R2S(a) return R2s(FetchAddrDomainGBA(a)) end
local function R4U(a) return R4u(FetchAddrDomainGBA(a)) end
local function R4S(a) return R4s(FetchAddrDomainGBA(a)) end
--*****************************************************************************
local function DistCalc(x1,y1 , x2,y2)
--*****************************************************************************
--Calculates distance between two points
local x= x2-x1; x= x*x
local y= y2-y1; y= y*y
return math.sqrt(x+y)
end
--local ZZ= 0
--*****************************************************************************
local function BasicHUD()
--*****************************************************************************
--Has my general stuff.
gui.pixelText( 0, 0,string.format("%8X",R4S(0x02030740))) --X
gui.pixelText( 0, 7,string.format("%8X",R4S(0x02030748))) --Y
gui.pixelText( 0, 14,string.format("%8X",R4S(0x02030744))) --Height
gui.pixelText( 36, 0,string.format("%8X",R4S(0x020312F8))) --X
gui.pixelText( 36, 7,string.format("%8X",R4S(0x02031300))) --Y
gui.pixelText( 36, 14,string.format("%8X",R4S(0x020312FC))) --Height
local d= DistCalc(R4S(0x02030740),R4S(0x02030748),
R4S(0x020312F8),R4S(0x02031300))
gui.pixelText( 72, 0,string.format("%8X",math.floor(d)))
gui.pixelText( 0, 28,string.format("%4X",R2U(0x03007C68))) --Aim
gui.pixelText(140,140,string.format("%4d",R1S(0x03007CA8))) --Pow
gui.pixelText(160,140,string.format("%4d",R1S(0x03007C70))) --Imp
gui.pixelText(140,133,string.format("%4d",R1S(0x02031338))) --Max
gui.pixelText( 0,154,string.format("%8X",R4S(0x03001214))) --RNG
-- gui.pixelText( 80, ZZ,"Text test.#")
-- ZZ= (ZZ+1)%156
end
event.onframeend(BasicHUD)