Add AVI-HeadsUpDisplay lua script which is a script that allows the input display & frame counter to be captured into AVIs
This commit is contained in:
parent
c99ab3e42c
commit
b5487e4acd
|
@ -0,0 +1,233 @@
|
||||||
|
--Input and frame counter display by andymac (by feos' request)
|
||||||
|
--Useful for recording input onto avi, or if you just don't want the
|
||||||
|
--display getting in the way of your movie!
|
||||||
|
--Simply drag and drop the input display or frame counter
|
||||||
|
--Middle click to disable a display
|
||||||
|
--Numpad 1-5 to enable displays.
|
||||||
|
|
||||||
|
print("Input, frame & lag counter display by andymac (by feos' request).",
|
||||||
|
"\r\nUseful for recording input & these counters onto avi.",
|
||||||
|
"\r\nSimply drag and drop the input display or frame counter.",
|
||||||
|
"\r\nMiddle click to disable a display.",
|
||||||
|
"\r\nNumpad 1-4 to enable input displays.",
|
||||||
|
"\r\nNumpad 5 to enable conters display.")
|
||||||
|
|
||||||
|
function drawpad(padnum,cx,cy) -- draws a gamepad on the screen
|
||||||
|
|
||||||
|
gui.transparency (0) --draws backround box
|
||||||
|
gui.drawbox (cx - 3,cy - 3,cx + 28,cy + 6,"blue")
|
||||||
|
gui.transparency (0)
|
||||||
|
|
||||||
|
gui.drawbox (cx,cy,cx + 3,cy + 3,"black") --centre square
|
||||||
|
|
||||||
|
controller = joypad.read(padnum)
|
||||||
|
|
||||||
|
if (padnum == 1) then
|
||||||
|
colour = "red" --changes colour of gamepads
|
||||||
|
elseif (padnum == 2) then
|
||||||
|
colour = "yellow"
|
||||||
|
elseif (padnum == 3) then
|
||||||
|
colour = "green"
|
||||||
|
elseif (padnum == 4) then
|
||||||
|
colour = "orange"
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.A) then
|
||||||
|
gui.drawbox (cx + 25,cy,cx + 28,cy + 3,colour) --other buttons
|
||||||
|
else
|
||||||
|
gui.drawbox (cx + 25,cy,cx + 28,cy + 3,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.B) then
|
||||||
|
gui.drawbox (cx + 20,cy,cx + 23,cy + 3,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx + 20,cy,cx + 23,cy + 3,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.start) then
|
||||||
|
gui.drawbox (cx + 14,cy + 1,cx + 18,cy + 2,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx + 14,cy + 1,cx + 18,cy + 2,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.select) then
|
||||||
|
gui.drawbox (cx + 8,cy + 1,cx + 12,cy + 2,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx + 8,cy + 1,cx + 12,cy + 2,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.up) then
|
||||||
|
gui.drawbox (cx,cy - 3,cx + 3,cy,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx,cy - 3,cx + 3,cy,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.down) then
|
||||||
|
gui.drawbox (cx,cy + 3,cx + 3,cy + 6,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx,cy + 3,cx + 3,cy + 6,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.left) then
|
||||||
|
gui.drawbox (cx - 3,cy,cx,cy + 3,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx - 3,cy,cx,cy + 3,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (controller.right) then
|
||||||
|
gui.drawbox (cx + 3,cy,cx + 6,cy + 3,colour)
|
||||||
|
else
|
||||||
|
gui.drawbox (cx + 3,cy,cx + 6,cy + 3,"black")
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function mouseover(boxx, boxy) --checks if mouseover
|
||||||
|
|
||||||
|
if keys.xmouse >= ( boxx - 5 ) and keys.xmouse <= ( boxx + 30 ) then
|
||||||
|
|
||||||
|
if keys.ymouse >= ( boxy -3 ) and keys.ymouse <= ( boxy + 21 ) then
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function inrange(upper, lower, testval)
|
||||||
|
|
||||||
|
if testval >= upper then return upper
|
||||||
|
|
||||||
|
elseif testval <= lower then return lower
|
||||||
|
|
||||||
|
else return testval
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function everything()
|
||||||
|
|
||||||
|
keys = input.get()
|
||||||
|
|
||||||
|
if (text == 1) then
|
||||||
|
|
||||||
|
if (FCEU.lagged()) then --flash lagcounter red if lagged, otherwise green.
|
||||||
|
gui.text (ex,ey + 9,FCEU.lagcount(), "red")
|
||||||
|
else
|
||||||
|
gui.text (ex,ey + 9,FCEU.lagcount(), "green")
|
||||||
|
end
|
||||||
|
|
||||||
|
if (movie.mode() == "finished" or movie.mode() == nil) then
|
||||||
|
gui.text (ex,ey,movie.framecount(), "red")
|
||||||
|
else
|
||||||
|
gui.text (ex,ey,movie.framecount())
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if keys["numpad5"] then text = 1 end --enable 1-4 and text using and numpad 1-5
|
||||||
|
if keys["numpad1"] then pad1 = 1 end
|
||||||
|
if keys["numpad2"] then pad2 = 1 end
|
||||||
|
if keys["numpad3"] then pad3 = 1 end
|
||||||
|
if keys["numpad4"] then pad4 = 1 end
|
||||||
|
|
||||||
|
|
||||||
|
xmouse = inrange(240, 16, keys.xmouse) --limits x and y mouse position to be on screen
|
||||||
|
|
||||||
|
ymouse = inrange(225, 11, keys.ymouse) --so we can't drag items off the screen.
|
||||||
|
|
||||||
|
xmouse2 = inrange(241, 10, keys.xmouse)
|
||||||
|
|
||||||
|
ymouse2 = inrange(223, 16, keys.ymouse)
|
||||||
|
|
||||||
|
if keys.xmouse >= ( ex - 10 ) and keys.xmouse <= ( ex + 40 ) then -- test if mouse is over text
|
||||||
|
|
||||||
|
if keys.ymouse >= ( ey ) and keys.ymouse <= ( ey + 40 ) then
|
||||||
|
|
||||||
|
motext = true
|
||||||
|
else
|
||||||
|
motext = false
|
||||||
|
end
|
||||||
|
else motext = false
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if mouseover(pad1x, pad1y) then -- checks if clicked, or middle clicked
|
||||||
|
|
||||||
|
if keys["leftclick"] then
|
||||||
|
pad1x = xmouse - 13
|
||||||
|
pad1y = ymouse - 8
|
||||||
|
elseif keys["middleclick"] then
|
||||||
|
pad1 = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif mouseover(pad2x, pad2y) then
|
||||||
|
|
||||||
|
if keys["leftclick"] then
|
||||||
|
pad2x = xmouse - 13
|
||||||
|
pad2y = ymouse - 8
|
||||||
|
elseif keys["middleclick"] then
|
||||||
|
pad2 = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif mouseover(pad3x, pad3y) then
|
||||||
|
|
||||||
|
if keys["leftclick"] then
|
||||||
|
pad3x = xmouse - 13
|
||||||
|
pad3y = ymouse - 8
|
||||||
|
elseif keys["middleclick"] then
|
||||||
|
pad3 = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif mouseover(pad4x, pad4y) then
|
||||||
|
|
||||||
|
if keys["leftclick"] then
|
||||||
|
pad4x = xmouse - 13
|
||||||
|
pad4y = ymouse - 8
|
||||||
|
elseif keys["middleclick"] then
|
||||||
|
pad4 = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif motext then
|
||||||
|
if keys["leftclick"] then
|
||||||
|
ex = xmouse2 - 10
|
||||||
|
ey = ymouse2 - 16
|
||||||
|
elseif keys["middleclick"] then
|
||||||
|
text = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if (pad1 == 1) then drawpad(1,pad1x, pad1y) end --draw pads
|
||||||
|
if (pad2 == 1) then drawpad(2,pad2x, pad2y) end
|
||||||
|
if (pad3 == 1) then drawpad(3,pad3x, pad3y) end
|
||||||
|
if (pad4 == 1) then drawpad(4,pad4x, pad4y) end
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
while (true) do
|
||||||
|
|
||||||
|
pad1x = 10
|
||||||
|
pad1y = 200
|
||||||
|
pad2x = 60
|
||||||
|
pad2y = 200
|
||||||
|
pad3x = 110
|
||||||
|
pad3y = 200
|
||||||
|
pad4x = 160
|
||||||
|
pad4y = 200
|
||||||
|
ex = 200
|
||||||
|
ey = 200
|
||||||
|
pad1 = 1
|
||||||
|
pad2 = 0
|
||||||
|
pad3 = 0
|
||||||
|
pad4 = 0
|
||||||
|
text = 1
|
||||||
|
|
||||||
|
while (true) do
|
||||||
|
|
||||||
|
gui.register(everything)
|
||||||
|
FCEU.frameadvance()
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue