Fix ADV chrome one-shot blending
This commit is contained in:
@@ -792,6 +792,16 @@ The port now carries current and target separately and samples them from the uni
|
||||
target. Mode 0 retains the established CG/tint/fill behavior; mode 1 now uses native alpha opacity plus RGB
|
||||
modulation. `draw-string 0x204`/`0x7a` remains a separate dependency.
|
||||
|
||||
**ADV chrome correction (2026-07-11).** Mode 0 cannot be classified from the final packed color alone.
|
||||
Static `0x203(mode=0, alpha=0, rgb=white)` remains the established opaque/no-tint CG initializer, but a
|
||||
mode-0 object whose current/target channel was armed by `0x202` consumes that sampled ARGB as opacity plus
|
||||
multiplicative RGB modulation, including after target commit. SC0000 proves the distinction with SYSTEM4's
|
||||
SO001 surface: backing object `0xd2f0` ramps `0x00000000 <-> 0xff000000`, while control-strip object
|
||||
`0xd2f1` ramps `0x00ffffff <-> 0xffffffff`. Treating alpha as tint strength made the visible controls solid
|
||||
white and the hidden backing expose SO001's raw white crop. Preserving one-shot provenance makes white an
|
||||
identity modulation for the yellow controls and alpha zero fully transparent. A matching windowed capture
|
||||
and user manual check confirmed both endpoints.
|
||||
|
||||
### SC0000 anim/transform/spritesheet cluster — op→field map (2026-07-08)
|
||||
|
||||
Reversed for the animation cluster slice (spec `docs/superpowers/specs/2026-07-08-sc0000-anim-transform-cluster-design.md`).
|
||||
|
||||
@@ -1239,3 +1239,20 @@ also pass with all of `extracted/` physically moved aside. The real-scene trace
|
||||
the existing test bootstrap still finds root script fixtures through `Paths.Scripts()` under `extracted/`,
|
||||
and changing that unrelated bootstrap was outside this movie slice. Final validation: engine **132/132**,
|
||||
Godot build with zero warnings, threaded `SELFTEST OK`, and opcode-map lint clean.
|
||||
|
||||
### Phase A — SC0000 textbox/control-strip one-shot blend correction DONE (2026-07-11)
|
||||
|
||||
The lower white panel noted after movie publication and the white-outline controls had one shared cause,
|
||||
not a movie or AGF-alpha fault. SYSTEM4's inherited SO001 surface is cropped by ADV backing object `0xd2f0`
|
||||
and control-strip object `0xd2f1`; both use a mode-0 `0x202` one-shot color transition. The port discarded
|
||||
that one-shot provenance after sampling and interpreted the packed alpha as static tint strength. As a
|
||||
result, full-strength white replaced the controls' yellow pixels, while zero strength exposed the raw
|
||||
mostly-white backing crop instead of hiding it.
|
||||
|
||||
`GfxState` now distinguishes static mode-0 `0x203` state from mode-0 color state which has passed through
|
||||
`0x202`. The latter retains ARGB-opacity plus multiplicative-RGB semantics after target commit. This keeps
|
||||
the established `0x00ffffff` static CG initializer opaque, preserves yellow under white identity modulation,
|
||||
and makes a committed alpha-zero ADV crop transparent. Focused model/raster tests cover the committed
|
||||
endpoint, identity modulation, and zero-opacity output. Validation: engine **134/134**, Godot build with
|
||||
zero warnings, matching windowed capture, and user manual confirmation that the box disappears fully and
|
||||
the controls retain their normal color while visible.
|
||||
|
||||
Reference in New Issue
Block a user