mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-25 23:11:15 +02:00
69c7ee89b5
Seed Mt Moon Super Nerd dialogue (#1743), play item-use heal jingles (#1635), use white fades for fly/teleport warps (#1644), add a Yellow-only Advanced palette overlay (#1639), parse Yellow Super Rod data including Safari Dragonair (#1074), and apply title rOBP0 when baking Pikachu eye OAM so pupils stay black with white glints.
52 lines
2.3 KiB
Lua
52 lines
2.3 KiB
Lua
package.path = "./?.lua;./?/init.lua;" .. package.path
|
|
local S = require("tests.harness").suite("yellow title palette")
|
|
local check, eq = S.check, S.eq
|
|
|
|
local GameVersion = require("src.core.GameVersion")
|
|
local PaletteFX = require("src.render.PaletteFX")
|
|
local TitleState = require("src.ui.TitleState")
|
|
|
|
GameVersion.set("yellow")
|
|
local prevMode = PaletteFX.mode
|
|
|
|
-- Test 1: SGB mode
|
|
PaletteFX.setMode("gbc")
|
|
local mewmonSgb = PaletteFX.pal(nil, "MEWMON")
|
|
check(mewmonSgb ~= nil, "MEWMON palette exists in SGB mode on Yellow")
|
|
-- In Yellow SGB SuperPalettes: MEWMON color 1 is Yellow {255, 247, 181}, color 2 is Red {222, 132, 132}
|
|
eq(mewmonSgb[1][1], 255, "SGB: Color 0 is white R=255")
|
|
eq(mewmonSgb[2][1], 255, "SGB: Color 1 is yellow R=255")
|
|
eq(mewmonSgb[3][1], 222, "SGB: Color 2 is red R=222")
|
|
|
|
-- Test 2: ADVANCED mode (redpp)
|
|
PaletteFX.setMode("redpp")
|
|
local mewmonAdv = PaletteFX.pal(nil, "MEWMON")
|
|
check(mewmonAdv ~= nil, "MEWMON palette exists in ADVANCED mode on Yellow")
|
|
-- Must NOT be Red++'s Mew purple {115, 33, 165}! It must be Yellow's Pikachu
|
|
-- CGBBase yellow {255,255,0}, not washed SuperPalette cream {255,255,156}.
|
|
eq(mewmonAdv[1][1], 255, "ADVANCED: Color 0 is white R=255 (Pikachu eye sclera)")
|
|
eq(mewmonAdv[2][1], 255, "ADVANCED: Color 1 is yellow R=255 (Pikachu body)")
|
|
eq(mewmonAdv[2][2], 255, "ADVANCED: Color 1 is saturated yellow G=255")
|
|
eq(mewmonAdv[2][3], 0, "ADVANCED: Color 1 is pure yellow B=0 (not washed cream)")
|
|
check(mewmonAdv[3][3] < 150, "ADVANCED: Color 2 is not purple (B < 150, red cheeks)")
|
|
|
|
-- Test 3: OG YELLOW mode (ogred on Yellow)
|
|
PaletteFX.setMode("ogred")
|
|
local mewmonOg = PaletteFX.pal(nil, "MEWMON")
|
|
check(mewmonOg ~= nil, "MEWMON palette exists in OG YELLOW mode")
|
|
eq(mewmonOg[1][1], 255, "OG YELLOW: Color 0 is white")
|
|
eq(mewmonOg[2][1], 255, "OG YELLOW: Color 1 is yellow")
|
|
|
|
-- Test 4: TitleState sgbPalettes
|
|
local fakeGame = { data = { palettes = PaletteFX.yellowPack() } }
|
|
local ts = { yellowLayout = true }
|
|
local zones = TitleState.sgbPalettes(ts, fakeGame)
|
|
check(zones ~= nil and #zones >= 3, "TitleState produces zones for Yellow")
|
|
eq(zones[1].colors, PaletteFX.pal(fakeGame.data, "LOGO2"), "Zone 1 uses LOGO2")
|
|
eq(zones[2].colors, PaletteFX.pal(fakeGame.data, "MEWMON"), "Zone 2 uses MEWMON (Pikachu yellow/red)")
|
|
|
|
PaletteFX.setMode(prevMode)
|
|
GameVersion.set("red")
|
|
|
|
S.finish()
|