By the way, if you're wondering how I made the input display part of the encode (the left sidebar with the line-art paddle controller graphic), I generated the input display with a Lua script in BizHawk:
local joystick_posy=550
local fire_posy=300
local controller={}
gui.clearGraphics("emucore")
gui.clearGraphics("client")
gui.use_surface("client")
function circlebyradius(cx, cy, radius, col1, col2)
gui.drawEllipse(cx-radius, cy-radius, 2*radius, 2*radius, col1, col2)
end
gui.drawBox(0,0,256,224,0xFF000000,0xFF000000,"emucore")
while true do
console.clear()
gui.drawBox(0,0,256,700, nil, 0xFF000040)
gui.drawBox(20,220,256-20,700-20)
gui.drawLine(123,220,123,0)
gui.drawLine(133,220,133,0)
circlebyradius(128,joystick_posy,80, nil, 0xFF000060)
local prev_value=controller.Paddle
local prev_fire=controller.Fire
if not prev_value then
prev_value=80
prev_fire=nil
end
controller=joypad.getwithmovie(1)
local pangle=(math.pi/180 * (180.5+(prev_value-80)*160/80))
local angle=(math.pi/180 * (180.5+(controller.Paddle-80)*160/80))
gui.drawLine(128,joystick_posy,128-80*math.sin(pangle),joystick_posy+80*math.cos(pangle), 0x40FFFFFF)
gui.drawLine(128,joystick_posy,128-80*math.sin(angle),joystick_posy+80*math.cos(angle))
gui.drawBox(127,joystick_posy+3,129,joystick_posy+77,0x8000FF00,0x8000FF00)
if controller.Fire then
circlebyradius(128,fire_posy,30, 0xFFFF0000, 0xFFFF0000)
elseif prev_fire then
circlebyradius(128,fire_posy,30, 0xFFFF0000, 0x70FF0000)
else
circlebyradius(128,fire_posy,30, 0xFFFF0000, 0x20FF0000)
end
emu.frameadvance()
end
Then (separately from a normal encode of the TAS) record AVI with the options "Capture OSD" and "Capture Lua" enabled and do some editing with something like AviSynth. I didn't explore all the Lua gui options so there might be a better way to set this up.