Files
4cade/tests/lib/allgames-script.lua
T

236 lines
6.8 KiB
Lua

-- Some games need custom scripts to check for a successful launch,
-- generally because they wait for input before switching to
-- graphics mode. The game-specific function here must include all
-- commands, including the appropriate wait-for function(s).
--
-- Games not listed here use the default script, which just waits
-- for graphics mode.
replay = require("replay")
apple2 = require("apple2")
return {
["Applz"] = function()
replay.WaitForScreenContains("APPLZ")
apple2.Type(" ")
replay.WaitForScreenContains("CONTROLS")
apple2.Type(" ")
replay.WaitForGraphicsMode()
end,
["Airheart"] = function()
replay.WaitForGraphicsMode()
emu.wait(10)
end,
["Blister Ball"] = function()
apple2.Type(" 114")
replay.WaitForGraphicsMode()
end,
["Bongo's Bash"] = function()
replay.WaitForScreenContains("HIT A KEY TO CONTINUE")
apple2.Type(" ")
replay.WaitForGraphicsMode()
end,
["BurgerTime"] = function()
replay.WaitForGraphicsMode()
apple2.Type("J")
apple2.SetJoy1(127,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
apple2.SetJoy1(0,0)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
apple2.SetJoy1(255,255)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x201E, 0xB8) --egg in corner of demo
end,
["Clam Bake"] = function()
replay.WaitForScreenContains("CLAM BAKE")
apple2.Type(" ")
replay.WaitForGraphicsMode()
end,
["Helicopter Rescue"] = function()
replay.WaitForScreenContains("DO YOU WANT INSTRUCTIONS")
apple2.Type("N")
replay.WaitForScreenContains("CHOOSE A SCENE")
apple2.Type("1")
replay.WaitForGraphicsMode()
end,
["I.O. Silver"] = function()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["Jungle Hunt"] = function()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["Kaboom!"] = function()
replay.WaitForScreenContains("PRESS ANY KEY TO CONTINUE")
apple2.Type(" ")
replay.WaitForGraphicsMode()
end,
["Lemmings"] = function()
replay.WaitForScreenContains("PRESS RETURN TO CONTINUE")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Little Brick Out"] = function()
replay.WaitForScreenContains("PRESS THE SPACE BAR")
apple2.Type(" ")
replay.WaitForScreenContains("YOUR FIRST NAME")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Lethal Labyrinth"] = function()
replay.WaitForScreenContains("INITIALIZING")
end,
["Lunar Explorer"] = function()
replay.WaitForScreenContains("EYBOARD OR")
apple2.Type("K")
replay.WaitForGraphicsMode()
end,
["Mad Bomber"] = function()
replay.WaitForScreenContains("ONE PLAYER")
apple2.Type("1")
replay.WaitForGraphicsMode()
end,
["Marauder"] = function()
replay.WaitForScreenContains("PLAY COMPLETE GAME")
apple2.Type("3")
replay.WaitForGraphicsMode()
end,
["Millennium Leaper"] = function()
replay.WaitForScreenContains("RETURN TO START DEMO")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Montezuma's Revenge"] = function()
replay.WaitForScreenContains("FOR MENU")
apple2.ReturnKey()
replay.WaitForScreenContains("TO START")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Mr. Do!"] = function() --Uses Text Page 2!
replay.WaitForAddressEquals(0x83A, 0xD2) --'R'IGHTMOST
apple2.SetJoy1(255,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xCC) --'L'EFTMOST
apple2.SetJoy1(0,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xD4) --'T'OPMOST
apple2.SetJoy1(127,0)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xC2) --'B'OTTOMMOST
apple2.SetJoy1(127,255)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["Mutant (Steve Waldo)"] = function()
replay.WaitForScreenContains("FAST ACTION ARCADE GAME")
apple2.ReturnKey()
replay.WaitForScreenContains("MOVING WALLS")
apple2.ReturnKey()
replay.WaitForScreenContains("DIFFICULTY LEVELS")
apple2.ReturnKey()
replay.WaitForScreenContains("TO MOVE RIGHT")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Nibbler (B. Iverson)"] = function()
replay.WaitForScreenContains("PRESS ANY KEY TO BEGIN")
apple2.Type(" ")
replay.WaitForGraphicsMode()
end,
["Night Crawler"] = function()
replay.WaitForScreenContains("EYBOARD")
apple2.Type("K")
replay.WaitForGraphicsMode()
end,
["Night Stalker"] = function()
replay.WaitForGraphicsMode()
apple2.Type("J")
apple2.SetJoy1(127,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
apple2.SetJoy1(0,0)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
apple2.SetJoy1(255,255)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x2000, 0xF5) --demo screen
end,
["Out of This World"] = function()
replay.WaitForScreenContains("START AT CHECKPOINT 1")
apple2.TypeLine("1")
replay.WaitForGraphicsMode()
end,
["Pacman"] = function()
emu.wait(5)
apple2.Type("1")
emu.wait(5)
apple2.Type("N")
replay.WaitForGraphicsMode()
end,
["Pentapus"] = function()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["Planetoids"] = function()
replay.WaitForScreenContains("EASY")
apple2.Type("1")
replay.WaitForGraphicsMode()
end,
["Spy vs Spy 2"] = function()
replay.WaitForScreenContains("KEYBOARD")
apple2.Type("1")
replay.WaitForGraphicsMode()
end,
["Super Taxman 2"] = function()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["The Goonies"] = function() --Uses Text Page 2!
replay.WaitForAddressEquals(0x83A, 0xD2) --'R'IGHTMOST
apple2.SetJoy1(255,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xCC) --'L'EFTMOST
apple2.SetJoy1(0,127)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xD4) --'T'OPMOST
apple2.SetJoy1(127,0)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForAddressEquals(0x83A, 0xC2) --'B'OTTOMMOST
apple2.SetJoy1(127,255)
apple2.PressJoyButton1()
apple2.ReleaseJoyButton1()
replay.WaitForGraphicsMode()
end,
["Titan Cronus"] = function()
replay.WaitForScreenContains("KEYBOARD")
apple2.Type("K")
replay.WaitForGraphicsMode()
end,
["Treasure Dive"] = function()
replay.WaitForScreenContains("PRESS RETURN TO CONTINUE")
apple2.ReturnKey()
replay.WaitForGraphicsMode()
end,
["Trolls and Tribulations"] = function()
replay.WaitForGraphicsMode()
emu.wait(2)
end,
["Zoo Master"] = function()
replay.WaitForScreenContains("SOUND")
end,
}