From 2c00be2522565c11d0b723140a6e76761bd43cf3 Mon Sep 17 00:00:00 2001 From: ConHuevosGuey Date: Mon, 20 Jul 2015 07:20:38 -0500 Subject: [PATCH] Splatterhouse 2 (JP) collision viewer. --- output/Lua/Genesis/Splatterhouse 2 (JP).lua | 68 +++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 output/Lua/Genesis/Splatterhouse 2 (JP).lua diff --git a/output/Lua/Genesis/Splatterhouse 2 (JP).lua b/output/Lua/Genesis/Splatterhouse 2 (JP).lua new file mode 100644 index 0000000000..71c0f23879 --- /dev/null +++ b/output/Lua/Genesis/Splatterhouse 2 (JP).lua @@ -0,0 +1,68 @@ +--Splatterhouse 2 (JP) Collision box viewer v1.0 +--Author Pasky +--For use with Bizhawk + + +local cx = 0 +local player = false +local attack = false + +local function camera() + cx = mainmemory.read_u16_be(0x9E) +end + +local function drawAxis(x1,y1,x2,y2) + local x = ((x2 - x1) / 2) + x1 + local y = ((y2 - y1) / 2) + y1 + local xrad = (x2 - x1) / 2 + local yrad = (y2 - y1) / 2 + gui.drawLine(x-xrad,y,x+xrad,y) + gui.drawLine(x,y-yrad,x,y+yrad) +end + +local function touch_collision() + + local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) + local e = {0,0,0,0} + local p = {0,0,0,0} + + for i = 0,3,1 do + e[i] = mainmemory.read_s16_be(A6 - 0x0A - (i * 2)) + p[i] = mainmemory.read_s16_be(A6 - 0x02 - (i * 2)) + end + gui.drawBox(e[0]-cx,e[2],e[1]-cx,e[3],0xFFFF0000,0x40FF0000) + if player == false then + gui.drawBox(p[0]-cx,p[2],p[1]-cx,p[3],0xFF0000FF,0x400000FF) + if mainmemory.read_u16_be(0xEA) > 0 then + drawAxis(p[0]-cx,p[2],p[1]-cx,p[3]) + end + player = true + end +end + +local function attack_collision() + local A6 = bit.band(emu.getregister("M68K A6"),0xFFFF) + local a = {0,0,0,0} + for i = 0,3,1 do + a[i] = mainmemory.read_s16_be(A6 - 0x1A - (i * 2)) + end + if attack == false then + gui.drawBox(a[0]-cx,a[2],a[1]-cx,a[3],0xFFFFFFFF,0x40FFFFFF) + attack = true + end + +end + +local function reset() + player = false + attack = false +end + +event.onmemoryexecute(touch_collision,0x014508) +event.onmemoryexecute(attack_collision,0x0143E0) + +while true do + camera() + emu.frameadvance() + reset() +end \ No newline at end of file