mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-19 12:15:31 +02:00
G2 support
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
-- Gold GBC palettes: one screenshot of New Bark Town per time of day, plus
|
||||
-- one of Elm's lab (PALETTE_DAY, so it must NOT go dark at night).
|
||||
--
|
||||
-- POKEPORT_GAME=gold POKEPORT_DRIVER=tests/drivers/gold_palette_shots.lua love .
|
||||
--
|
||||
-- Palettes are the one part of the Gen 2 port a test cannot assert -- "is the
|
||||
-- roof the right blue at 6am" only a human can answer -- so this driver's job
|
||||
-- is to put those four frames on disk side by side.
|
||||
local U = require("tests.drivers.util")
|
||||
|
||||
return function(game)
|
||||
local out = os.getenv("POKEPORT_SHOT_DIR") or "/tmp/gold-palettes"
|
||||
|
||||
local function world()
|
||||
return game.world
|
||||
end
|
||||
|
||||
local function rebake(hour)
|
||||
local w = world()
|
||||
w.clockHour = hour
|
||||
-- Force the re-resolve the once-a-second poll would eventually do.
|
||||
w.paletteClock = 0
|
||||
if w:applyPalettes() then
|
||||
w.mapImages = {}
|
||||
w.mapImage = w:imageFor(w.map.id)
|
||||
w:rebuildNeighbors()
|
||||
end
|
||||
return w.daytime
|
||||
end
|
||||
|
||||
U.wait(45)
|
||||
assert(world() and world().map, "gold world did not boot")
|
||||
-- A New Game starts in the bedroom now (SPAWN_HOME); step outside, which is
|
||||
-- where the time-of-day palettes are worth looking at.
|
||||
if world().map.id ~= "NEW_BARK_TOWN" then
|
||||
world():setMap("NEW_BARK_TOWN", 13, 6, "down")
|
||||
U.wait(15)
|
||||
end
|
||||
assert(world().map.id == "NEW_BARK_TOWN",
|
||||
"boot map " .. tostring(world().map.id))
|
||||
|
||||
if not world().palettes then
|
||||
print("[driver] SKIP no palettes.lua in this cache -- re-import Gold")
|
||||
return
|
||||
end
|
||||
|
||||
for _, entry in ipairs({
|
||||
{ hour = 6, name = "morn" },
|
||||
{ hour = 13, name = "day" },
|
||||
{ hour = 21, name = "nite" },
|
||||
}) do
|
||||
local daytime = rebake(entry.hour)
|
||||
U.wait(4)
|
||||
U.shot(game, ("%s/newbark-%s.png"):format(out, entry.name))
|
||||
print(("[driver] %s (hour %d) -> %s"):format(entry.name, entry.hour, daytime))
|
||||
assert(daytime == entry.name:upper(),
|
||||
("hour %d resolved to %s"):format(entry.hour, tostring(daytime)))
|
||||
end
|
||||
|
||||
-- Elm's lab is PALETTE_DAY: walking in at 9pm must still be lit like day.
|
||||
rebake(21)
|
||||
world():setMap("ELMS_LAB", 4, 6, "up")
|
||||
U.wait(10)
|
||||
assert(world().daytime == "DAY",
|
||||
"ELMS_LAB at 21:00 should stay PALETTE_DAY, got "
|
||||
.. tostring(world().daytime))
|
||||
U.shot(game, out .. "/elmslab-night-is-day.png")
|
||||
|
||||
print("[driver] PASS gold palette shots in " .. out)
|
||||
end
|
||||
Reference in New Issue
Block a user