Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/Assets/Lua/PCE/Neutopia.lua
2 views
1
-- Neutopia (USA) Collision Box Viewer v1.0
2
-- Author: Pasky (6/22/2015)
3
-- For use with Bizhawk
4
5
memory.usememorydomain("System Bus")
6
7
local function player()
8
local hp = mainmemory.read_u8(0x14c5)
9
local x = mainmemory.read_u8(0x1063)
10
local h = mainmemory.read_u8(0x112F)
11
local y = mainmemory.read_u8(0x10C9) - 0xA - h
12
local xrad = 0x6
13
local yrad = 0xC
14
gui.drawText(1,1,"HP: " .. hp,0xFFFFFFFF,10,"Arial")
15
gui.drawBox(x+xrad,y+yrad,x-xrad,y-yrad,0xFF0000FF,0x400000FF)
16
17
end
18
19
local function enemy()
20
local XREG = emu.getregister("X")
21
local YREG = emu.getregister("Y")
22
local hp = mainmemory.read_u8(0x14C5 + XREG) + 1
23
local x = mainmemory.read_u8(0x1063 + XREG)
24
local h = mainmemory.read_u8(0x112F + XREG)
25
local y = mainmemory.read_u8(0x10C9 + XREG) - h
26
local xoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG)
27
local xrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG - 1)
28
local yoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG + 2)
29
local yrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG + 1)
30
gui.drawText(x+xoff-xrad,y+yrad+yoff+4,"HP: " .. hp,0xFFFFFFFF,8,"Arial")
31
gui.drawBox(x+xrad,y+yoff+yrad,x-xrad,y+yoff-yrad,0xFFFF0000,0x40FF0000)
32
end
33
34
local function attack()
35
local XREG = emu.getregister("X")
36
local YREG = emu.getregister("Y")
37
local x = mainmemory.read_u8(0x1063)
38
local h = mainmemory.read_u8(0x112F)
39
local y = mainmemory.read_u8(0x10C9) - h
40
local xoff = memory.read_s8(0xD453 + YREG)
41
local yoff = memory.read_s8(0xD45B + YREG)
42
local xrad = mainmemory.read_u8(0x15BE)
43
local yrad = mainmemory.read_u8(0x15BF)
44
gui.drawBox(x+xoff+xrad,y+yoff+yrad,x+xoff-xrad,y+yoff-yrad,0xFFFFFFFF,0x40FFFFFF)
45
end
46
47
local function subweapon()
48
local XREG = emu.getregister("X")
49
local YREG = emu.getregister("Y")
50
local x = mainmemory.read_u8(0x1063 + XREG)
51
local h = mainmemory.read_u8(0x112F + XREG)
52
local y = mainmemory.read_u8(0x10C9 + XREG) - h
53
local xoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG - 1)
54
local yoff = memory.read_s8(mainmemory.read_u16_le(0x0018) + YREG + 1)
55
local yrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG)
56
local xrad = memory.read_u8(mainmemory.read_u16_le(0x0018) + YREG - 2)
57
gui.drawBox(x+xoff+xrad,y+yoff+yrad,x+xoff-xrad,y+yoff-yrad,0xFFFFFFFF,0x40FFFFFF)
58
end
59
60
event.onmemoryexecute(attack,0x00D430)
61
event.onmemoryexecute(enemy,0x00D48F)
62
event.onmemoryexecute(subweapon,0x00D88E)
63
while true do
64
player()
65
emu.frameadvance()
66
end
67