re: XPR2 channel order confirmed against the running game -- the second "dynamic unknown" closed
INDEX carried XPR2 as "colours unverified (dynamic item)". The failure mode that matters is a swapped red/blue channel: invisible on greys, invisible without ground truth, and it poisons every asset silently. Method: pick an asset that is strongly asymmetric in hue and has known in-game appearance. DeltaSaber_T.xpr (1024x1024 Dxt1, 11 mips) decodes to white/grey panels with orange-rust accents; the game renders the same hull in the ARSENAL scene. decoded texture : 1073 warm px, 0 cool, median saturated hue 23.3 deg in-game render : 916 warm px, 124 cool, median saturated hue 9.3 deg Both orange/red; a red<->blue swap would put the texture at ~200 deg. The cool pixels are the blue UI behind the model and the 14 deg offset is the hangar's red key light -- neither can move a hue by 180. Stated as a bounded result, not "colours are correct": a hue-family comparison cannot see a gamma/sRGB error, premultiplied alpha, or a per-channel scale, so exact fidelity stays open and needs a flat unlit known-value surface. Cubemap face ordering untouched. BG_Earth.xpr (A8R8G8B8 cubemap face) decoding to a coherent nebula is corroboration for the de-tile step, not proof. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -13,7 +13,7 @@ Promote to a prose `structures/…md` file when a format needs behavioural notes
|
||||
| IPFB `.pak` archive | ✅ | `sylpheed-formats/src/pak.rs` + `tests/pak_idxd_disc.rs` | header + 12-byte TOC, Z1/zlib payloads |
|
||||
| name-hash (TOC keys) | ✅ | `sylpheed-formats/src/hash.rs` | Barrett-reduction hash; recovers original paths |
|
||||
| IDXD object/table | ✅ | `sylpheed-formats/src/idxd.rs` | self-describing; ship/weapon stats verified vs known values |
|
||||
| XPR2 texture + cubemap | 🟡 | `sylpheed-formats/src/texture.rs` | de-tile + A8R8G8B8; **colours unverified** (dynamic item) |
|
||||
| XPR2 texture + cubemap | 🟡/✅ | `sylpheed-formats/src/texture.rs` + [colour check](xpr2-colour-check.md) | de-tile + A8R8G8B8 and DXT1. **Channel order ✅ confirmed against the running game**: the Delta Saber's decoded atlas is orange-dominant (median saturated hue 23.3°, *zero* cool pixels) and the game renders the same hull at 9.3° — a red↔blue swap would sit at ≈200°. Exact fidelity (gamma/sRGB curve, premultiplied alpha, per-channel scale) is 🟡 untested, since a hue comparison cannot see it; cubemap face ordering ❔ |
|
||||
| T8aD 2D texture | 🟡 | `sylpheed-formats/src/t8ad.rs` | ~85% decode; **colours ✅ CONFIRMED** ([k8888](structures/texture-color-k8888.md)); ~15% variants deferred |
|
||||
| RATC bundle | 🟡 | `sylpheed-formats/src/ratc.rs` | child listing confirmed; one level deep |
|
||||
| LSTA sprite list | 🟡 | `sylpheed-formats/src/lsta.rs` | inline T8aD frames |
|
||||
|
||||
Reference in New Issue
Block a user