Path: blob/master/Assets/Lua/Genesis/Splatterhouse 2 (JPN).lua
2 views
--Splatterhouse 2 (JPN) Collision box viewer v1.01--Author Pasky2--For use with Bizhawk345local cx = 06local player = false7local attack = false8local weapon = false9local function camera()10cx = mainmemory.read_u16_be(0x9E)11end1213local function drawAxis(x1,y1,x2,y2)14local x = ((x2 - x1) / 2) + x115local y = ((y2 - y1) / 2) + y116local xrad = (x2 - x1) / 217local yrad = (y2 - y1) / 218gui.drawLine(x-xrad,y,x+xrad,y)19gui.drawLine(x,y-yrad,x,y+yrad)20end2122local function touch_collision()2324local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF)25local e = {0,0,0,0}26local p = {0,0,0,0}2728for i = 0,3,1 do29e[i] = mainmemory.read_s16_be(A6 - 0x0A - (i * 2))30p[i] = mainmemory.read_s16_be(A6 - 0x02 - (i * 2))31end32gui.drawBox(e[0]-cx,e[2],e[1]-cx,e[3],0xFFFF0000,0x40FF0000)33if player == false then34gui.drawBox(p[0]-cx,p[2],p[1]-cx,p[3],0xFF0000FF,0x400000FF)35if mainmemory.read_u16_be(0xEA) > 0 then36drawAxis(p[0]-cx,p[2],p[1]-cx,p[3])37end38player = true39end40end4142local function attack_collision()43local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF)44local a = {0,0,0,0}45for i = 0,3,1 do46a[i] = mainmemory.read_s16_be(A6 - 0x1A - (i * 2))47end48if attack == false then49gui.drawBox(a[0]-cx,a[2],a[1]-cx,a[3],0xFFFFFFFF,0x40FFFFFF)50attack = true51end52end5354local function weapon_collision()55local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF)56local w = {0,0,0,0}57for i = 0,3,1 do58w[i] = mainmemory.read_s16_be(A6 - 0x12 - (i * 2))59end60if weapon == false then61gui.drawBox(w[0]-cx,w[2],w[1]-cx,w[3],0xFFFFFFFF,0x40FFFFFF)62weapon = true63end64end6566local function reset()67player = false68attack = false69weapon = false70end7172event.onmemoryexecute(touch_collision,0x14508)73event.onmemoryexecute(attack_collision,0x143E0)74event.onmemoryexecute(weapon_collision,0x1420A)7576while true do77camera()78emu.frameadvance()79reset()80end8182