Gamingsonic-06segarenderingshadersdecompilationxbox-360
Sonic '06's Cut Lighting and Shadows Are Still in the Game Files, Switched Off, and Its Most-Used Shader Has No Shadows or Point Lights
Isaac Marovitz, digging through Sonic '06 for the Marathon Recompiled PC port, found eight Billboard shader tiers on the disc, with most of the game drawn by Billboard02, and stages that feed eight or more point lights into a two-light slot.

Castle Town is the level Marovitz uses as the before picture. Crisis City in the 2006 Sonic game has “reflections, particle effects, dramatic lighting,” and Castle Town, he writes, “just makes me sad.” Beta footage shows a Castle Town with proper lighting and shadows, and Kingdom Valley with full bump maps. Building Marathon Recompiled meant taking the game’s rendering apart, and the missing pieces turned out to be on the disc the whole time.
Most of the game is drawn with two shader families, Terrain and Billboard (the name is misleading; “Billboard is not actually billboard-ed”), each in variants numbered 00 to 07, where a higher number means more features. Billboard07 has per-pixel lighting, cascaded shadow maps, point lights and two-texture blending. The most-used shader in the whole game is Billboard02: vertex lighting, no shadows, no point lights. “If you’re wondering why so many things look so dull, this is why,” he writes. Swapping in a better tier isn’t a switch, though. The variants take different inputs, and his attempts so far mostly broke things, including a Castle Town on Billboard07 where shadows land on the buildings wrong.
The point lights are the sadder cut, in his words. The shader declares room for two, g_PointLights[2], per object. Kingdom Valley stays inside that. “Flame Core and Dusty Desert utterly blow the limit out of the water, attempting to render 8+ lights per object,” and the lights “fight” for priority, popping on and off. A last-minute optimization meant to hand lights to nearby objects broke too, so point lights “rarely work at all in vanilla, even in stages that respect the limit.” The recomp patches out most of that broken check, but the two-light ceiling stays.
Shadows got trimmed the same way. The game supports four shadow cascades, but twn_a and some test levels drop to three for terrain and two for objects, and multiplayer runs reduced cascades everywhere. Planar reflections render at a quarter of the framebuffer’s resolution, which he calls “easily patched,” but multiplayer swaps them for flat cubemaps because its Lua render script, render_gamemode_multi.lua, has no RenderReflection() call at all. Marovitz says he hasn’t yet found the shader edits that would get the game “to that beta footage goodness.”
There’s a familiar shape to this. A game ships under deadline, the expensive things get switched off in the order they cost frames, and the switches stay in the build because removing them would take time nobody had. Twenty years later someone porting it to PC reads the shader table and finds the higher tiers sitting there. The part the post can’t answer yet is the one fans care about most: whether Castle Town on a better shader looks like the beta, or whether the missing normal and bump map references in its .xno files mean the art was never hooked up at all.