From a93eaf582fb4b765f0e0fc844183e61baa3bc028 Mon Sep 17 00:00:00 2001 From: patchzyy <64382339+patchzyy@users.noreply.github.com> Date: Sun, 18 Oct 2026 14:14:50 +0200 Subject: [PATCH] Sky Station crash (#303) --- aurora-main/lib/gx/shader.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/aurora-main/lib/gx/shader.cpp b/aurora-main/lib/gx/shader.cpp index 5bbdc4d..15025fe 100644 --- a/aurora-main/lib/gx/shader.cpp +++ b/aurora-main/lib/gx/shader.cpp @@ -174,6 +174,12 @@ static std::string color_arg_reg(GXTevColorArg arg, size_t stageIdx, const Shade case GX_CC_KONST: { switch (stage.kcSel) { DEFAULT_FATAL("invalid kcSel {}", underlying(stage.kcSel)); + // Unsourced encodings evaluate to zero in hardware. + case static_cast(0x08): + case static_cast(0x09): + case static_cast(0x0A): + case static_cast(0x0B): + return "vec3f(0.0)"; case GX_TEV_KCSEL_8_8: return "vec3f(1.0)"; case GX_TEV_KCSEL_7_8: @@ -275,6 +281,16 @@ static std::string alpha_arg_reg(GXTevAlphaArg arg, size_t stageIdx, const Shade case GX_CA_KONST: { switch (stage.kaSel) { DEFAULT_FATAL("invalid kaSel {}", underlying(stage.kaSel)); + // Unsourced encodings evaluate to zero in hardware. + case static_cast(0x08): + case static_cast(0x09): + case static_cast(0x0A): + case static_cast(0x0B): + case static_cast(0x0C): + case static_cast(0x0D): + case static_cast(0x0E): + case static_cast(0x0F): + return "0.0"; case GX_TEV_KASEL_8_8: return "1.0"; case GX_TEV_KASEL_7_8: