Added X2 and X3 collision script viewers.
This commit is contained in:
parent
b6fd5c6b5f
commit
a59ff337d7
|
@ -0,0 +1,130 @@
|
|||
--Author Pasky13
|
||||
|
||||
---------------
|
||||
----GLOBALS----
|
||||
---------------
|
||||
local pbase = 0x9D8
|
||||
local px = pbase +0x5
|
||||
local py = pbase +0x8
|
||||
local cx = 0x7E1E5D
|
||||
local cy = 0x7E1E60
|
||||
local xm
|
||||
local ym
|
||||
|
||||
---------------
|
||||
----TOGGLES----
|
||||
---------------
|
||||
local draw_megaman = true
|
||||
local draw_enemies = true
|
||||
local draw_hpvalues = true
|
||||
local draw_projectiles = true
|
||||
|
||||
memory.usememorydomain("CARTROM")
|
||||
|
||||
local function megaman()
|
||||
|
||||
local camx = mainmemory.read_u16_le(cx)
|
||||
local camy = mainmemory.read_u16_le(cy)
|
||||
local x = mainmemory.read_u16_le(px) - camx
|
||||
local y = mainmemory.read_u16_le(py) - camy
|
||||
local facing = mainmemory.read_u8(pbase + 0x11)
|
||||
local boxpointer = mainmemory.read_u16_le(pbase + 0x20) + 0x28000
|
||||
local xoff = memory.read_s8(boxpointer + 0)
|
||||
local yoff = memory.read_s8(boxpointer + 1)
|
||||
local xrad = memory.read_u8(boxpointer + 2)
|
||||
local yrad = memory.read_u8(boxpointer + 3)
|
||||
|
||||
if facing > 0x45 then
|
||||
xoff = xoff * -1
|
||||
end
|
||||
|
||||
gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFF0000FF,0x400000FF)
|
||||
end
|
||||
|
||||
local function enemies()
|
||||
|
||||
local x
|
||||
local xoff
|
||||
local xrad
|
||||
local y
|
||||
local yoff
|
||||
local yrad
|
||||
local camx = mainmemory.read_u16_le(cx)
|
||||
local camy = mainmemory.read_u16_le(cy)
|
||||
local base
|
||||
local boxpointer
|
||||
local facing
|
||||
local fill
|
||||
local outl
|
||||
local start = 0xD18
|
||||
local oend = 31
|
||||
|
||||
for i = 0, oend,1 do
|
||||
|
||||
base = start + (i * 0x40)
|
||||
|
||||
if i == 0 then
|
||||
base = start
|
||||
end
|
||||
|
||||
if mainmemory.read_u8(base) ~= 0 and mainmemory.read_u8(base + 0x27) ~= 128 then
|
||||
|
||||
if i > 14 and i < 25 then
|
||||
if draw_projectiles == true then
|
||||
fill = 0x40FFFFFF
|
||||
outl = 0xFFFFFFFF
|
||||
else
|
||||
fill = 0x00000000
|
||||
outl = 0x00000000
|
||||
end
|
||||
else
|
||||
fill = 0x40FF0000
|
||||
outl = 0xFFFF0000
|
||||
end
|
||||
|
||||
if i > 24 then
|
||||
fill = 0x40FFFF00
|
||||
outl = 0xFFFFFF00
|
||||
end
|
||||
|
||||
facing = mainmemory.read_u8(base + 0x11)
|
||||
x = mainmemory.read_u16_le(base + 5) - camx
|
||||
y = mainmemory.read_u16_le(base + 8) - camy
|
||||
boxpointer = mainmemory.read_u16_le(base +0x20) + 0x28000
|
||||
xoff = memory.read_s8(boxpointer + 0)
|
||||
yoff = memory.read_s8(boxpointer + 1)
|
||||
xrad = memory.read_u8(boxpointer + 2)
|
||||
yrad = memory.read_u8(boxpointer + 3)
|
||||
|
||||
if facing > 0x45 then
|
||||
xoff = xoff * -1
|
||||
end
|
||||
|
||||
|
||||
--gui.text(x,y,string.format("%X",base)) -- Debug
|
||||
gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,outl, fill)
|
||||
|
||||
if draw_hpvalues == true and mainmemory.read_u8(base+0x27) > 0 and mainmemory.read_u8(base+0x27) ~= 128 then
|
||||
if i < 15 or i > 20 then
|
||||
gui.text((x-5) * xm,(y-5) * ym,"HP: " .. mainmemory.read_u8(base+0x27))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function scaler()
|
||||
xm = client.screenwidth() / 256
|
||||
ym = client.screenheight() / 224
|
||||
end
|
||||
|
||||
while true do
|
||||
scaler()
|
||||
if draw_megaman == true then
|
||||
megaman()
|
||||
end
|
||||
if draw_enemies == true then
|
||||
enemies()
|
||||
end
|
||||
emu.frameadvance()
|
||||
end
|
|
@ -0,0 +1,135 @@
|
|||
--Author Pasky13
|
||||
|
||||
-- Some bogus boxes may appear
|
||||
-- because background objects are
|
||||
-- sometimes used where enemy structures
|
||||
-- are present in memory.
|
||||
|
||||
---------------
|
||||
----GLOBALS----
|
||||
---------------
|
||||
local pbase = 0x9D8
|
||||
local px = pbase +0x5
|
||||
local py = pbase +0x8
|
||||
local cx = 0x7E1E5D
|
||||
local cy = 0x7E1E60
|
||||
local xm
|
||||
local ym
|
||||
|
||||
---------------
|
||||
----TOGGLES----
|
||||
---------------
|
||||
local draw_megaman = true
|
||||
local draw_enemies = true
|
||||
local draw_hpvalues = true
|
||||
local draw_projectiles = true
|
||||
|
||||
memory.usememorydomain("CARTROM")
|
||||
|
||||
local function megaman()
|
||||
|
||||
local camx = mainmemory.read_u16_le(cx)
|
||||
local camy = mainmemory.read_u16_le(cy)
|
||||
local x = mainmemory.read_u16_le(px) - camx
|
||||
local y = mainmemory.read_u16_le(py) - camy
|
||||
local facing = mainmemory.read_u8(pbase + 0x11)
|
||||
local boxpointer = mainmemory.read_u16_le(pbase + 0x20) + 0x28000
|
||||
local xoff = memory.read_s8(boxpointer + 0)
|
||||
local yoff = memory.read_s8(boxpointer + 1)
|
||||
local xrad = memory.read_u8(boxpointer + 2)
|
||||
local yrad = memory.read_u8(boxpointer + 3)
|
||||
|
||||
if facing > 0x45 then
|
||||
xoff = xoff * -1
|
||||
end
|
||||
|
||||
gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,0xFF0000FF,0x400000FF)
|
||||
end
|
||||
|
||||
local function enemies()
|
||||
|
||||
local x
|
||||
local xoff
|
||||
local xrad
|
||||
local y
|
||||
local yoff
|
||||
local yrad
|
||||
local camx = mainmemory.read_u16_le(cx)
|
||||
local camy = mainmemory.read_u16_le(cy)
|
||||
local base
|
||||
local boxpointer
|
||||
local facing
|
||||
local fill
|
||||
local outl
|
||||
local start = 0xD18
|
||||
local oend = 31
|
||||
|
||||
for i = 0, oend,1 do
|
||||
|
||||
base = start + (i * 0x40)
|
||||
|
||||
if i == 0 then
|
||||
base = start
|
||||
end
|
||||
|
||||
if mainmemory.read_u8(base) ~= 0 and mainmemory.read_u8(base + 0x27) ~= 128 then
|
||||
|
||||
if i > 14 and i < 25 then
|
||||
if draw_projectiles == true then
|
||||
fill = 0x40FFFFFF
|
||||
outl = 0xFFFFFFFF
|
||||
else
|
||||
fill = 0x00000000
|
||||
outl = 0x00000000
|
||||
end
|
||||
else
|
||||
fill = 0x40FF0000
|
||||
outl = 0xFFFF0000
|
||||
end
|
||||
|
||||
if i > 23 then
|
||||
fill = 0x40FFFF00
|
||||
outl = 0xFFFFFF00
|
||||
end
|
||||
|
||||
facing = mainmemory.read_u8(base + 0x11)
|
||||
x = mainmemory.read_u16_le(base + 5) - camx
|
||||
y = mainmemory.read_u16_le(base + 8) - camy
|
||||
boxpointer = mainmemory.read_u16_le(base +0x20) + 0x28000
|
||||
xoff = memory.read_s8(boxpointer + 0)
|
||||
yoff = memory.read_s8(boxpointer + 1)
|
||||
xrad = memory.read_u8(boxpointer + 2)
|
||||
yrad = memory.read_u8(boxpointer + 3)
|
||||
|
||||
if facing > 0x45 then
|
||||
xoff = xoff * -1
|
||||
end
|
||||
|
||||
|
||||
--gui.text(x,y,string.format("%X",base)) -- Debug
|
||||
gui.drawBox(x + xoff +xrad,y + yoff + yrad, x + xoff - xrad, y + yoff - yrad,outl, fill)
|
||||
|
||||
if draw_hpvalues == true and mainmemory.read_u8(base+0x27) > 0 and mainmemory.read_u8(base+0x27) ~= 128 then
|
||||
if i < 15 or i > 20 then
|
||||
gui.text((x-5) * xm,(y-5) * ym,"HP: " .. mainmemory.read_u8(base+0x27))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function scaler()
|
||||
xm = client.screenwidth() / 256
|
||||
ym = client.screenheight() / 224
|
||||
end
|
||||
|
||||
while true do
|
||||
scaler()
|
||||
if draw_megaman == true then
|
||||
megaman()
|
||||
end
|
||||
if draw_enemies == true then
|
||||
enemies()
|
||||
end
|
||||
emu.frameadvance()
|
||||
end
|
Loading…
Reference in New Issue