Resolved the "colours look odd" channel-order/sRGB question for k_8_8_8_8 (T8aD 2D UI textures) with no emulator run: - sRGB: Canary's Vulkan host-format table maps plain k_8_8_8_8 to R8G8B8A8_UNORM and contains no R8G8B8A8_SRGB anywhere — gamma is a separate explicit EDRAM path. So these are raw linear bytes; apply no sRGB/gamma decode. - Channel order: measured 789 real disc textures — byte0 is the opaque alpha (==0xFF-dominant) in 97% — so on-disk is ARGB. Cross-checked against xenia-rs decode_k8888_tiled, the Canary-validated M1/M2 path, which nets the same [A,R,G,B]->[R,G,B,A]. sylpheed-formats is correct. Promotes the k8888 entry HYPOTHESIS -> CONFIRMED; INDEX updated. XPR2 skybox tiling + viewer display-gamma remain separate open items. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
RE knowledge index
Confidence: ✅ CONFIRMED · 🟡 PROBABLE · ❔ HYPOTHESIS. See README.
Formats we've already reversed are, for now, documented by their parser + disc round-trip
tests (the executable spec) rather than a prose file — the "Spec" column points there.
Promote to a prose structures/…md file when a format needs behavioural notes beyond layout.
Data structures / formats
| Format | Conf. | Spec (parser + tests) | 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) |
| T8aD 2D texture | 🟡 | sylpheed-formats/src/t8ad.rs |
~85% decode; colours ✅ CONFIRMED (k8888); ~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 |
| IXUD subtitle | 🟡 | sylpheed-formats/src/ixud.rs |
timed cues; movie↔track link unknown (dynamic item) |
| Fonts (ttf/otf/ttc) | ✅ | sylpheed-formats/src/font.rs |
standard OpenType, parsed via ttf-parser |
Functions / code paths
None documented yet — populated during the dynamic-RE phase.
| Function | Conf. | Reimpl. | Summary |
|---|---|---|---|
| — | — | — | — |