Files
gen1recomp/tests/engine/game3_emerald_row_test.lua
T
bryanthaboi 6774889505 Add Pokemon Ruby and Sapphire
Ruby and Sapphire 1.0/1.1/1.2 import, play, save, convert and link. Gen 3 shaders, braille, weather and reflection parity, link room players, RS custom carts and launcher support, Gen 3 link fixes for Emerald and FireRed/LeafGreen.
2026-10-05 05:07:42 -04:00

49 lines
2.3 KiB
Lua

package.path = "./?.lua;./?/init.lua;" .. package.path
local T = require("tests.harness")
local check, eq = T.check, T.eq
local GameVersion = require("src.core.GameVersion")
local SHA = "f3ae088181bf583e55daf962a92bb46f4f1d07b7"
eq(GameVersion.forSha1(SHA), "emerald", "the Emerald sha1 resolves to emerald")
eq(GameVersion.ORDER[#GameVersion.ORDER], "emerald", "emerald is the last ORDER entry")
for i, id in ipairs({ "red", "blue", "yellow", "gold", "silver", "crystal", "firered", "leafgreen" }) do
eq(GameVersion.ORDER[i], id, "ORDER keeps " .. id .. " at index " .. i)
end
eq(GameVersion.generation("emerald"), 3, "emerald is generation 3")
eq(GameVersion.engine("emerald"), "game3", "emerald runs the game3 engine")
eq(GameVersion.layout("emerald"), "rse", "emerald uses the rse layout")
eq(GameVersion.layout("firered"), "frlg", "firered uses the frlg layout")
eq(GameVersion.layout("leafgreen"), "frlg", "leafgreen uses the frlg layout")
eq(GameVersion.layout("red"), nil, "gen 1 has no gba layout")
-- pokeemerald/include/constants/global.h:10
eq(GameVersion.gameCode("emerald"), 3, "VERSION_EMERALD")
eq(GameVersion.gameCode("firered"), 4, "VERSION_FIRE_RED")
eq(GameVersion.gameCode("leafgreen"), 5, "VERSION_LEAF_GREEN")
eq(GameVersion.gameCode("gold"), nil, "gen 2 has no gba game code")
eq(GameVersion.cartShape("emerald"), "gba", "emerald is a gba cart")
eq(GameVersion.cachePrefix("emerald"), "emerald/", "emerald cache prefix")
eq(GameVersion.saveSuffix("emerald"), "_emerald", "emerald save suffix")
check(GameVersion.acceptsSha1("emerald", SHA), "emerald accepts its one revision")
eq(#GameVersion.revisions("emerald"), 1, "emerald has one revision")
eq(GameVersion.info("emerald").manifest, "tools/rom_manifest_emerald.json", "emerald manifest path")
local f = io.open("tools/rom_manifest_emerald.json", "rb")
check(f ~= nil, "emerald manifest stub exists")
if f then
local body = f:read("*a")
f:close()
check(body:find(SHA, 1, true) ~= nil, "emerald manifest carries the sha1")
end
local label = io.open(GameVersion.info("emerald").cartLabel, "rb")
check(label ~= nil, "emerald label art exists")
if label then label:close() end
local ok, ModProfile = pcall(require, "src.mods.ModProfile")
if ok and type(ModProfile) == "table" then
check(true, "ModProfile loads with the emerald row")
end
T.finish("game3_emerald_row_test")