BizHawk/Assets/Lua/NES/Vice Project Doom.lua

55 lines
1.6 KiB
Lua

--Vice Project Doom Collision Box Viewer
--Author Pasky13
local camx
local function hex(val)
val = string.format("%X",val)
return val
end
memory.usememorydomain("PRG ROM")
local function camera()
camx = mainmemory.read_u8(0xB) + (mainmemory.read_u8(0xC) * 256)
end
local function player()
local x = mainmemory.read_u8(0x1F0) + (mainmemory.read_u8(0x200) * 256) - camx
local y = mainmemory.read_u8(0x210)
local offset = mainmemory.read_u8(0x2A0) * 4
local yoff = memory.read_s8(0x1C4C0 + offset + 1)
local yrad = memory.read_u8(0x1C4C0 + offset + 3)
local xoff = memory.read_s8(0x1C4C0 + offset)
local xrad = memory.read_u8(0x1C4C0 + offset + 2)
gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFF0000FF,0x350000FF)
end
local function enemies()
local active = 0x161
local base = 0x1F1
for i = 0,15,1 do
if mainmemory.read_u8(active + i) ~= 0 then
local offset = mainmemory.read_u8(0x2A1 + i) * 4
local x = mainmemory.read_u8(0x1F1 + i) + (mainmemory.read_u8(0x201 + i) * 256) -camx
local y = mainmemory.read_u8(0x211 + i)
local yoff = memory.read_s8(0x1C4C0 + offset + 1)
local yrad = memory.read_u8(0x1C4C0 + offset + 3)
local xoff = memory.read_s8(0x1C4C0 + offset)
local xrad = memory.read_u8(0x1C4C0 + offset + 2)
if i == 1 or i == 2 then -- Player's weapon
gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFFFFFFFF,0x35FFFFFF)
else
gui.drawBox(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad, 0xFFFF0000,0x35FF0000)
end
end
end
end
while true do
camera()
player()
enemies()
emu.frameadvance()
end