mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
46 lines
No EOL
1.7 KiB
Lua
46 lines
No EOL
1.7 KiB
Lua
--This is an example Lua (https://www.lua.org) script to give a general idea of how to build scripts
|
|
--Press F5 or click the Run button to execute it
|
|
--Type "emu." to show a list of all available API function
|
|
|
|
function printInfo()
|
|
--Get the emulation state
|
|
state = emu.getState()
|
|
|
|
--Get the mouse's state (x, y, left, right, middle)
|
|
mouseState = emu.getMouseState()
|
|
|
|
--Select colors based on whether the left button is held down
|
|
if mouseState.left == true then
|
|
buffer = emu.getScreenBuffer()
|
|
for i = 1, #buffer do
|
|
buffer[i] = buffer[i] & 0xFFFF
|
|
end
|
|
emu.setScreenBuffer(buffer)
|
|
|
|
bgColor = 0x30FF6020
|
|
fgColor = 0x304040FF
|
|
else
|
|
bgColor = 0x302060FF
|
|
fgColor = 0x30FF4040
|
|
end
|
|
|
|
--Draw some rectangles and print some text
|
|
emu.drawRectangle(8, 8, 128, 24, bgColor, true, 1)
|
|
emu.drawRectangle(8, 8, 128, 24, fgColor, false, 1)
|
|
emu.drawString(12, 12, "Frame: " .. state["frameCount"], 0xFFFFFF, 0xFF000000)
|
|
emu.drawString(12, 21, "Clock: " .. state["masterClock"], 0xFFFFFF, 0xFF000000)
|
|
|
|
emu.drawRectangle(8, 218, 193, 11, bgColor, true, 1)
|
|
emu.drawRectangle(8, 218, 193, 11, fgColor, false, 1)
|
|
emu.drawString(11, 220, "Hold left mouse button to switch colors", 0xFFFFFF, 0xFF000000)
|
|
|
|
--Draw a block behind the mouse cursor - leaves a trail when moving the mouse
|
|
emu.drawRectangle(mouseState.x - 2, mouseState.y - 2, 5, 5, 0xAF00FF90, true, 20)
|
|
emu.drawRectangle(mouseState.x - 2, mouseState.y - 2, 5, 5, 0xAF000000, false, 20)
|
|
end
|
|
|
|
--Register some code (printInfo function) that will be run at the end of each frame
|
|
emu.addEventCallback(printInfo, emu.eventType.endFrame);
|
|
|
|
--Display a startup message
|
|
emu.displayMessage("Script", "Example Lua script loaded.") |