mirror of
https://github.com/a2-4am/4cade.git
synced 2026-10-24 10:02:31 +00:00
236 lines
6.8 KiB
Lua
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,
|
|
}
|