OpenUAStudio Retail Indexed Viewer v2.0.0
Version 2.0.0 replaces the viewer's approximate treatment of important indexed
effects with a source-derived reconstruction designed for faithful Urban
Assault and Metropolis Dawn asset inspection.
Highlights
- Adds the Textured - Retail indexed (reconstructed) rendering path.
- Preserves palette indices through model rendering and resolves the final
display through the matching local palette. - Uses the local game's
SHADERMPandTRACYRMPtables with recorded source
hashes and fail-closed profile resolution. - Reconstructs source material dispatch, constant-brightness conversion,
whole-face culling, opaque occlusion, and transparent publish-depth/LIFO
replay. - Improves the Taerkasten Hauptstation lightning without conflating it with
ordinary RGB additive blending. - Preserves the Zeppelin's clear-TRACY propellers separately from the
Mnosjetz's flat-TRACY propellers.
Flat/LUM-TRACY destination selector
Snapshot Studio now exposes two clearly separated policies:
- Live framebuffer - retail is the canonical default. Each effect texel
reads the destination palette index actually present beneath it. - Force palette row - diagnostic exposes all 256 destination rows for table
analysis. Forced output is labeled noncanonical in the UI, suggested
filename, effective renderer identity, and export manifests.
Export integrity and provenance
- Exact indexed export refuses incomplete or ambiguous source profiles instead
of silently saving an OpenUA preview fallback. - Batch manifests distinguish requested and effective renderer/destination
policies and record palette, remap-table, and index-buffer hashes. Skip existingrefuses populated output whose priorrun_info.jsoncannot
prove the same renderer and destination profile.- PNG promotion is atomic, retained older files remain explicitly unverified,
and ZIP creation follows the manifest whitelist. - Installed game data remains a read-only local input and is not included in
this release.
Validation
- Focused indexed/TRACY/canonical/UI gate: 77/77 passed.
- Python compilation: 12/12 touched Python files passed.
git diff --check: passed.- Full headless discovery: 457 run / 442 passed / 8 failed / 6 errors / 1
skipped, exactly matching the established pre-release baseline. The
remaining failures and errors are inherited, unrelated editor and window
contract cases; the skip is the unavailableUA_RC1Set1 corpus.
Upstream collaboration
This is an unofficial, GPL-3.0-licensed fork. The original OpenUAStudio creator
and current upstream maintainers are explicitly welcome to reuse, adapt,
cherry-pick, or merge any part of this work under the repository's license. If
they would like these changes proposed back to upstream main, they are also
welcome to request an upstream pull request from this fork; we will gladly
prepare one for their review. This invitation does not imply upstream
endorsement or automatic acceptance—the upstream maintainers retain complete
control over their project and merge decisions.
Reconstruction boundary
This is a source-derived retail indexed-color reconstruction, not a claim of
cycle-accurate emulation. The documented remaining limits primarily concern
instruction-identical fixed-point whole-polygon span walking, depth-map cluster
stepping, and general distant-world depth fade. See
RETAIL_INDEXED_RENDERER.md
for the full fidelity boundary and reproducible validation commands.
See the complete
CHANGELOG.md
for the detailed v2.0.0 change record.