Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Mario
- local mariox = 0x94
- local marioy = 0x96
- local mtype = 0x19
- local marioside = 0x76
- --Camera
- local camx = 0x1A
- local camy = 0x1C
- --Object Addresses
- local exbase = 0xE4
- local eybase = 0xD8
- local pagexbase = 0x14E0
- local pageybase = 0x14D4
- local otype = 0x9E
- local boxpointer = 0x1662
- local xoffbase = 0x03b56c
- local yoffbase = 0x03b5e4
- local xradbase = 0x03b5a8
- local yradbase = 0x03b620
- local oactive = 0x14C8
- --Invulnerable objects (ghost rings etc...)
- local inv_ybase = 0x1E02
- local inv_xbase = 0x1E16
- local inv_ypage = 0x1E2A
- local inv_xpage = 0x1E3E
- local itype = 0x1892
- --Ghost snake
- local ghosn_type = 0x17F0
- local ghosn_xbase = 0x1808
- local ghosn_xpage = 0x18EA
- local ghosn_ybase = 0x17FC
- local ghosn_ypage = 0x1814
- --Ghost ship ghosts
- local ghosh_type = 0x1892
- local ghosh_xbase = 0x1E16
- local ghosh_xpage = 0x1E3E
- local ghosh_ybase = 0x1E02
- local ghosh_ypage = 0x1E2A
- --Projectiles
- local pxbase = 0x171F
- local pybase = 0x1715
- local pxpage = 0x1733
- local pypage = 0x1729
- local projtype = 0x170B
- local function mario()
- local x
- local y
- local yoffpoint = 0x03b65c
- local yradpoint = 0x03b660
- local i = 0
- x = memory.readword(mariox) - memory.readword(camx)
- y = memory.readword(marioy) - memory.readword(camy)
- if memory.readbyte(mtype) == 0 or memory.readbyte(0x73) ~= 0 then
- i = 1
- end
- if memory.readbyte(0x01187a) ~= 0 then
- i = i + 2
- end
- local xoff = 0x02
- local xrad = 0x0C
- local yoff = memory.readbyte(yoffpoint+i)
- local yrad = memory.readbyte(yradpoint+i)
- local star = 0x011490
- local invuln = 0x11497
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,"#0000FF30","#0000FFFF")
- end
- local function projectiles()
- local x
- local y
- local xoff
- local yoff
- local xrad
- local yrad
- local oend = 10
- local pid
- for i = 0,oend,1 do
- pid = memory.readbyte(projtype + i)
- if pid ~= 0 and pid ~= 0x12 then
- x = memory.readbyte(pxbase+i) + (memory.readbyte(pxpage+i) * 256) - memory.readword(camx)
- y = memory.readbyte(pybase+i) + (memory.readbyte(pypage+i) * 256) - memory.readword(camy)
- xoff = memory.readbytesigned(0x02a4e7+pid)
- yoff = memory.readbytesigned(0x02a4f3+pid)
- xrad = memory.readbyte(0x02a4ff+pid)
- yrad = memory.readbyte(0x02a50b+pid)
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,"#00000050","#000000FF")
- end
- end
- end
- local function objects()
- local oend = 20
- local x = 0
- local y = 0
- local boxid
- local xoff
- local yoff
- local xrad
- local yrad
- local fill
- local outl
- local objtype
- for i = 0,oend,1 do
- if memory.readbyte(oactive + i) == 8 or memory.readbyte(oactive + i) == 9 or memory.readbyte(oactive +i) == 0xA then
- objtype = memory.readbyte(otype + i)
- boxid = bit.band(memory.readbyte(boxpointer+i),0x3F)
- x = memory.readbyte(exbase + i) + (memory.readbyte(pagexbase + i) * 256) - memory.readword(camx)
- y = memory.readbyte(eybase + i) + (memory.readbyte(pageybase + i) * 256) - memory.readword(camy)
- xoff = memory.readbytesigned(xoffbase + boxid)
- yoff = memory.readbytesigned(yoffbase + boxid)
- xrad = memory.readbyte(xradbase + boxid)
- yrad = memory.readbyte(yradbase + boxid)
- --Yoshi
- if objtype == 0x35 then
- outl = "#00FF37FF"
- fill = "#00FF3730"
- -- Power pickups
- elseif objtype >= 0x74 and objtype <= 0x81 then
- outl = "#00F2FFFF"
- fill = "#00F2FF30"
- else
- outl = "#FF0000FF"
- fill = "#FF000030"
- end
- if objtype == 0x29 then
- xoff = -1 * 0x08
- xrad = 0x10
- yoff = 0x08
- if memory.readbyte(0x1602 + i) == 0x69 then
- yoff = yoff + 0x0A
- end
- end
- --gui.text(x,y-5,string.format("%X",exbase + i)) -- Debug
- --gui.text(x,y-5,string.format("%X",objtype)) -- Debug
- --gui.text(x,y-5,xoff .. "/" .. xrad .. " " .. yoff .. "/" .. yrad) -- Debug
- --gui.text(x,y-5,string.format("%X",memory.readbyte(oactive + i))) -- Debug
- if objtype ~= 0x8C then
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,fill,outl)
- end
- end
- end
- end
- local function invulns()
- local oend = 20
- local page = 0
- local boxid
- local x
- local y
- local xoff
- local yoff
- local xrad
- local yrad
- --Ghost rings/Ghost house
- for i = 0,oend,1 do
- if memory.readbyte(itype + i) == 0x04 or memory.readbyte(itype + i) == 0x03 then
- x = memory.readbyte(inv_xbase + i) + (memory.readbyte(inv_xpage + i) * 256) - memory.readword(camx)
- y = memory.readbyte(inv_ybase + i) + (memory.readbyte(inv_ypage + i) * 256) - memory.readword(camy)
- xoff = 2
- xrad = 12
- yoff = 3
- yrad = 10
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,"#FFFF0030","#FFFF00FF")
- end
- end
- --Sunken ship ghosts
- for i = 0,oend,1 do
- if memory.readbyte(ghosh_type +i) ~= 0 then
- x = memory.readbyte(ghosh_xbase + i) + (memory.readbyte(ghosh_xpage +i) * 256) - memory.readword(camx)
- y = memory.readbyte(ghosh_ybase + i) + (memory.readbyte(ghosh_ypage +i) * 256) - memory.readword(camy)
- xoff = 2
- xrad = 12
- yoff = 3
- yrad = 10
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,"#FFFF0030","#FFFF00FF")
- end
- end
- --Ghost Snake
- oend = 12
- for i = 0,oend,1 do
- if memory.readbyte(ghosn_type+i) ~= 0 then
- x = memory.readbyte(ghosn_xbase + i) + (memory.readbyte(ghosn_xpage +i) * 256) - memory.readword(camx)
- y = memory.readbyte(ghosn_ybase + i) + (memory.readbyte(ghosn_ypage +i) * 256) - memory.readword(camy)
- xoff = 2
- xrad = 12
- yoff = 3
- yrad = 10
- gui.box(x+xoff,y+yoff,x+xoff+xrad,y+yoff+yrad,"#FFFF0030","#FFFF00FF")
- end
- end
- end
- gui.register(function()
- mario()
- objects()
- invulns()
- projectiles()
- end)
Advertisement
Add Comment
Please, Sign In to add comment