mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 08:21:02 +02:00
67 lines
1.9 KiB
Lua
67 lines
1.9 KiB
Lua
-- ..(engine/movie/title.asm ln 28)
|
|
-- ..(engine/movie/title2.asm ln 13)
|
|
-- POKEPORT_DRIVER=tests/drivers/title_cycle_test.lua POKEPORT_TOUCH=0 SHOT_DIR=/tmp/shots love .
|
|
return function(game)
|
|
local U = dofile("tests/drivers/util.lua")
|
|
local DIR = os.getenv("SHOT_DIR") or "/tmp/shots"
|
|
local shot = 0
|
|
local function grab(tag)
|
|
shot = shot + 1
|
|
U.shot(game, ("%s/title_%02d_%s.png"):format(DIR, shot, tag))
|
|
end
|
|
|
|
U.wait(30)
|
|
grab("copyright")
|
|
-- ..(engine/movie/splash.asm ln 230)
|
|
local movie = game.stack:top()
|
|
while movie.phase ~= 2 or movie.timer < 70 do U.wait(1) end
|
|
grab("star_topbar")
|
|
while movie.timer < 88 do U.wait(1) end
|
|
grab("star_middle")
|
|
while movie.timer < 100 do U.wait(1) end
|
|
grab("star_lowbar")
|
|
while movie.timer < 130 do U.wait(1) end
|
|
grab("gamefreak")
|
|
|
|
U.tap(game, "start")
|
|
U.wait(2)
|
|
local title = game.stack:top()
|
|
U.log("top is", tostring(title and title.screenId))
|
|
if not (title and title.scrollPhase) then
|
|
U.log("no TitleState on top; nothing below can run")
|
|
while true do coroutine.yield() end
|
|
end
|
|
|
|
grab("drop_early")
|
|
U.wait(14)
|
|
grab("drop_late")
|
|
while title.phase == "drop" do U.wait(1) end
|
|
grab("settle")
|
|
while title.phase == "settle" do U.wait(1) end
|
|
grab("ribbon_start")
|
|
U.wait(10)
|
|
U.shot(game, DIR .. "/title_ribbon_mid.png")
|
|
while title.phase ~= "loop" do U.wait(1) end
|
|
grab("landed")
|
|
|
|
title.cycleIndex = 1
|
|
title.scrollPhase, title.scrollFrame, title.timer = "hold", 1, 0
|
|
title.monOffset = 0
|
|
while title.scrollPhase == "hold" do U.wait(1) end
|
|
grab("out_a")
|
|
U.wait(6)
|
|
grab("out_b")
|
|
while title.scrollPhase == "out" do U.wait(1) end
|
|
U.log("after the scroll out the phase is", title.scrollPhase)
|
|
for _ = 1, 5 do
|
|
grab("ball")
|
|
U.wait(1)
|
|
end
|
|
while title.scrollPhase == "ball" do U.wait(1) end
|
|
grab("in")
|
|
U.wait(30)
|
|
grab("next_mon")
|
|
U.log("captured", DIR)
|
|
while true do coroutine.yield() end
|
|
end
|