Wolfenstein Modloader Buy me a coffeeKaffee spendieren

In plain wordsIn einfachen Worten

This is an assignment, not a result. It asks a worker to finish the page decoder for the virtual textures of Wolfenstein: The New Order, which would turn the huge world textures into readable pixels. Two pieces are still unsolved: block 0 (a three-channel color block) and the second channel of block 1. Two earlier attempts ended without result, and the brief demands measurable proof over the full test set, not one good-looking image.

  • Open part 1: block 0 decodes wrong already at the second image block; it currently works on only 1 of 4,256 pages.
  • Open part 2: in block 1, channel 0 lines up at tile edges but channel 1 does not.
  • Progress must be shown as numbers over the same set of pages and confirmed by a seam (tile edge) check.
  • A compiled JPEG XR library, calibrated against Windows, should serve as the reference instead of reimplementing it.
  • If it fails again, the worker should explain clearly why, with numbers, so the next attempt does not start from zero.

Dies ist ein Auftrag, kein Ergebnis. Er verlangt, den Kacheldecoder für die virtuellen Texturen von Wolfenstein: The New Order fertigzustellen, damit die riesigen Welttexturen zu lesbaren Pixeln werden. Zwei Teile sind noch ungelöst: Block 0 (ein dreikanaliger Farbblock) und der zweite Kanal von Block 1. Zwei frühere Versuche endeten ohne Ergebnis, und der Auftrag verlangt messbare Belege über den ganzen Testbestand statt eines einzelnen gut aussehenden Bildes.

  • Offener Teil 1: Block 0 wird schon ab dem zweiten Bildblock falsch dekodiert; er klappt derzeit nur bei 1 von 4.256 Kacheln.
  • Offener Teil 2: In Block 1 passt Kanal 0 an den Kachelrändern, Kanal 1 nicht.
  • Fortschritt muss als Zahl über denselben Kachelbestand gezeigt und durch eine Nahtprüfung an den Kachelrändern bestätigt werden.
  • Eine kompilierte JPEG-XR-Bibliothek, abgeglichen mit Windows, soll als Referenz dienen, statt sie nachzubauen.
  • Scheitert es wieder, soll der Bearbeiter mit Zahlen klar erklären, warum – damit der nächste Versuch nicht bei null anfängt.

Technical detailsTechnische Details

Der technische Teil ist auf Englisch – so, wie er im Wiki steht. Unterstrichene Begriffe haben eine Erklärung auf Deutsch.

Worker w-vtrest-a2; task vtrest (retry, attempt 3 of 3 - the previous two attempts ended when their host session died, not on technical grounds). Read .agent-cache/WORKER.md. Bus: python "%USERPROFILE%/.claude/skills/agent-cache-orchestrator/scripts/acbus.py" Four other workers run on the TNC custom-map front. Your lane is Virtual Textures and touches none of theirs.

Objective

Finish the virtual-texture page decoder for Wolfenstein: The New Order. Two things are open, and they are the last ones:

  1. Block 0 (INTERNAL_CLR_FMT = YUV_444, 3 channels) is not solved - already macroblock 1 decodes wrong.
  2. Block 1, second channel (NCOMPONENT) - channel 0 butts up correctly at the seam, channel 1 does not. Solving these turns the megatexture into readable pixels, which is what stands between this project and real surface-texture modding for part 1.

Sources / starting points

READ Virtual-Texture-Planes.md FIRST, in particular section 8 ("What Remains Open, and the Next Meaningful Step") and section 9 (9.4 "The Seam", 9.5 "The Shape"). It is a careful document: it records which hypotheses died and on what numbers, so you do not repeat them. Section 7 narrows the remaining search space; section 6 lists the hypotheses already killed arithmetically (alpha plane - no room; tiling - 0 hits over 80 pages; wrong colour format - no reading above noise for block 0). Do not resurrect those without new evidence. Per 9.1 a compiled jxrlib is already available locally and per 9.2 it is calibrated against WIC - use it as the oracle instead of reimplementing. Existing tools, yours to use: tools/vtplanes.py (has a seam mode - the seam statistic is the honest quality measure here, not eyeballing), tools/vtdecode.py, tools/vtpixel.py (yours to edit), docs/virtualtextures.md. Game data, READ ONLY: <Steam library>/steamapps/common/Wolfenstein.The.New.Order

Ownership

tools/vtpixel.py and docs/vt-planes.md (both pre-existing - extend them, keep what is already established, do not rewrite the document's history of failed hypotheses away). Scratch artifacts under re_probes/vtrest/ if you need them.

Forbidden / do not touch

No writes to the game install. Do not touch files owned by others: tools/probe_cmdtable.py, tools/probe_idclhash.py, tools/probe_saveverify.py, re_probes/cmdtable/, re_probes/idclhash/, re_probes/saveverify/, re_probes/map_alias_v3/, re_probes/custom_save_candidates/, tools/build_*.py, tools/verify_*.py, wolfsdk/*, config.json, any other docs/* file than Virtual-Texture-Planes.md. No pip install, no new dependency.

Hard constraints

Python 3.11, stdlib plus what the repository already uses. Keep the existing self-test working. Corpus runs must stay reproducible from the command line.

Acceptance criteria

  • Measurable improvement stated in the document's own terms: block 0 currently lands 1x over 4256 pages, block 1 channel 0 lands but channel 1 does not. Any claim of progress must be a number over the same corpus, not one good page.
  • The seam check (tools/vtplanes.py seam) must corroborate it. Section 9.4 shows the seam catching a wrong channel that otherwise looked fine - so a decode that improves a landing count but not the seam is not a solution.
  • docs/vt-planes.md updated with what changed, including the numbers that support it and any hypothesis that died on the way.

Verification expectations

Every important assurance needs a counterexample check. The document's own standard is high - keep it. A decoder that produces a plausible image is not evidence; matching the jxrlib/WIC oracle bit-for-bit, or a seam statistic that cannot be explained by chance, is. State sample sizes.

Failure honesty

Two attempts already ended without result. If block 0 does not yield, the most valuable deliverable is a sharpened statement of WHY, with the numbers, so the next attempt does not start from zero. Say which hypotheses you killed and how. Do not claim a partial decode as a solution.

Coordination / deliverable

Checkpoint at milestones. A bus fact only if you establish something another worker would need - this lane is largely self-contained, so expect few. Report in the document itself; a short summary at finish is enough.