Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Luascript for Bizhawk 1.11.7
- -- by mugg1991 9th Oct 2016
- -- Spartan X (J).gb
- ObjectNameTable = {
- [-1]=" Unknown",
- [0]=" Thug",
- [1]=" Asian",
- [2]=" ChainThug",
- [3]=" Lv1 Boss",
- [4]=" SmokeTop",
- [5]="SmokeBottm",
- [6]="SmokeRight",
- [7]=" SmokeLeft",
- [8]=" Spike Bag",
- [9]=" Barrel",
- [10]=" Lv2 Boss",
- [11]=" Lava ball",
- [12]=" Lv3 Boss",
- [13]=" Lv4 Boss",
- [14]=" Lv5 Boss",
- [15]=" Shuriken",
- [67]=" Lv1 Boss",
- [128]=" Bomb",
- [129]=" Bomb",
- [130]=" Drink",
- [131]=" Drink",
- [132]=" Heart",
- [133]=" Heart",
- [134]=" Heart",
- [135]=" Heart",
- [136]=" 1-Up",
- [137]=" 1-Up",
- [138]=" 1-Up",
- [139]=" 1-Up",
- [140]=" 1-Up",
- [141]=" 1-Up",
- [142]=" 1-Up",
- [143]=" 1-Up"
- }
- ItemDropTable = {
- [0]=3,
- [1]=20,
- [2]=50,
- [3]=90,
- [4]=4,
- [5]=8,
- [6]=16
- }
- memory.usememorydomain("System Bus")
- function text(x, y, text, col1, col2)
- if col2==nil then col2=0x00000000 end
- gui.pixelText(x, y, text,col1,col2)
- end
- function box(x,y,x2,y2,col1,col2)
- gui.drawBox(x,y,x2,y2,col1,col2)
- end
- function line(x,y,x2,y2,col)
- gui.drawLine(x,y,x2,y2,col)
- end
- function pixel(x,y,col)
- gui.drawPixel(x,y,col)
- end
- function img(x,y,path)
- gui.drawImage(path,x,y)
- end
- local drawFramecountAndInput = function(x,y)
- if movie.mode()=="PLAY" then
- text(x-6, y,emu.framecount().."/"..movie.length(),0xFFFFFFFF)
- else
- text(x-6, y,emu.framecount(),0xFFFFFFFF)
- end
- text(x-6, y+8,emu.lagcount(),0xFFF08080)
- if emu.islagged() then
- text(x+8, y+8,"*",0xFFF08080)
- end
- local inputtable = {}
- if movie.mode()=="INACTIVE" then
- inputtable = joypad.getimmediate()
- elseif movie.mode()=="PLAY" or movie.mode()=="RECORD" then
- inputtable = movie.getinput(emu.framecount()-1)
- end
- local buttons = {["Up"]="^", ["Down"]="v", ["Left"]="<", ["Right"]=">", ["Select"]="s", ["Start"]="S", ["A"]="A", ["B"]="B", ["L"]="L", ["R"]="R", ["Power"]=""}
- local s = ""
- for k,v in pairs(inputtable) do
- if v==true then
- s=s..buttons[k]
- end
- end
- text(x+20,y+8,s,0xFFffffff)
- end
- event.onexit(function()
- client.SetGameExtraPadding(0,0,0,0)
- client.SetClientExtraPadding(0,0,0,0)
- end)
- client.SetGameExtraPadding(142,0,0,0)
- while true do
- --all this about string formatting is to a) cut long float number short, b) to keep "," instead of "."
- playerxsubstring= tonumber(string.sub(memory.read_u8(0xc703)/255,3,5))
- playerysubstring= tonumber(string.sub(memory.read_u8(0xc705)/255,3,5))
- if playerxsubstring==nil then playerxsubstring="000" end
- if playerysubstring==nil then playerysubstring="000" end
- playerx= memory.read_u8(0xc704) .. "," .. string.format("%03d",playerxsubstring)
- playery= memory.read_u8(0xc706) .. "," .. string.format("%03d",playerysubstring)
- playerhp= memory.read_u8(0xc717)
- level= memory.read_u8(0xffbb)+1
- leveltime= tonumber(memory.read_u8(0xc73f) .. memory.read_u8(0xc73e) .. memory.read_u8(0xc73d) .. memory.read_u8(0xc73c))
- -- background gradient
- for s=1,18,1 do
- col=0x80606060 - s*0x07000000
- box(-5+4*s,-1,4*s,160,0x00000000,col)
- end
- -- framecount, lag, input
- drawFramecountAndInput(87,2)
- -- stuff
- text(8,2,"Lv t",0xFFD0A020)
- text(20,2,level,0xFFA0A0A0)
- text(50,2,leveltime,0xFFA0A0A0)
- for z=0,6,2 do
- text(8,10+z*4,string.format("%03d",memory.read_u8(0xc200+z)) .. " ".. string.format("%03d",memory.read_u8(0xc201+z)),0xFFA0A0A0)
- end
- -- item drop display
- for g=0,6,1 do
- text(46+g*14,32,string.format("%02d",ItemDropTable[g]-memory.read_u8(0xd00a+g)),0xFFA0A0A0)
- end
- text(46,23,"B",0xFFD0A020)
- text(60,23,"hp",0xFFD0A020)
- text(74,23,"H",0xFFD0A020)
- text(87,23,"1up",0xFFD0A020)
- text(103,23,"hp",0xFFD0A020)
- text(117,23,"B",0xFFD0A020)
- text(131,23,"H",0xFFD0A020)
- if level==1 or level==2 then
- box(44,22,55,40,0x00000000,0xB0000000)
- box(100,22,140,40,0x00000000,0xB0000000)
- elseif level==3 then
- box(100,22,140,40,0x00000000,0xB0000000)
- elseif level==4 or level==5 or level==6 then
- box(44,22,100,40,0x00000000,0xB0000000)
- else
- box(44,22,140,40,0x00000000,0xB0000000)
- end
- box(41,21,140,41,0xFF503030)
- box(40,20,141,42,0x40503030)
- -- enemy display
- text(50,46,"X Y HP",0xFF606060)
- text(2,54," Player",0xFF606060)
- text(50,54,playerx,0xFFA0A0A0)
- text(86,54,playery,0xFFA0A0A0)
- text(122,54,playerhp,0xFFA0A0A0)
- objectCounter=0
- if leveltime~=0 then
- for n=0,7,1 do
- enemystate= memory.read_u8(0xc0e0-n*32)
- if enemystate ~= 0xFF then
- objectCounter=objectCounter+1
- --all this about string formatting is to a) cut long float number short, b) to keep "," instead of "."
- enemyxsubstring= tonumber(string.sub(memory.read_u8(0xc0ea-n*32)/255,3,5))
- enemyysubstring= tonumber(string.sub(memory.read_u8(0xc0eb-n*32)/255,3,5))
- if enemyxsubstring==nil then enemyxsubstring="000" end
- if enemyysubstring==nil then enemyysubstring="000" end
- enemyx= memory.read_u8(0xc0e2-n*32)
- enemyy= memory.read_u8(0xc0e3-n*32)
- enemyxstring= enemyx .. "," .. string.format("%03d",enemyxsubstring)
- enemyystring= enemyy .. "," .. string.format("%03d",enemyysubstring)
- enemytype= memory.read_u8(0xc0e1-n*32)
- enemyhp= memory.read_u8(0xc0e9-n*32)
- --enemyxspeed= memory.read_u8(0xc0ed-n*32)
- --enemyyspeed= memory.read_u8(0xc0ef-n*32)
- if ObjectNameTable[enemytype]==nil then
- enemytype=-1
- end
- text(2,54+objectCounter*8,ObjectNameTable[enemytype],0xFF606060)
- text(50,54+objectCounter*8,enemyxstring,0xFFA0A0A0)
- text(86,54+objectCounter*8,enemyystring,0xFFA0A0A0)
- text(122,54+objectCounter*8,enemyhp,0xFFA0A0A0)
- --draw hitboxes
- --[[
- right= memory.read_u8(0xc0e4-n*32)
- down= memory.read_u8(0xc0e5-n*32)
- left= memory.read_u8(0xc0e6-n*32)
- up= memory.read_u8(0xc0e7-n*32)
- enemyy=enemyy-16
- enemyx=enemyx-24
- line(142+enemyx,enemyy,142+enemyx+right,enemyy,0xFFFF0000)
- line(142+enemyx,enemyy,142+enemyx-left,enemyy,0xFFFF0000)
- line(142+enemyx,enemyy,142+enemyx,enemyy-up,0xFFFF0000)
- line(142+enemyx,enemyy,142+enemyx,enemyy+down,0xFFFF0000)
- --]]
- end
- end
- end
- text(8,66+objectCounter*8,"Actors: "..objectCounter,0xFFD0A020)
- box(4,43,136,76+objectCounter*8,0xFF005050)
- for p=0,4,1 do
- line(0+p,43,0+p,76+objectCounter*8,0xFF005050)
- line(137+p,43,137+p,76+objectCounter*8,0xFF005050)
- end
- emu.frameadvance()
- end
Advertisement
Add Comment
Please, Sign In to add comment