Skip to content

v1.4: independent FH6 decoder M1-3 + M4 controlled FLS validation - #41

Draft
Datamining00 wants to merge 108 commits into
v1.4-baseline-warning-renderfrom
v1.4-independent-clivery-decoder
Draft

v1.4: independent FH6 decoder M1-3 + M4 controlled FLS validation#41
Datamining00 wants to merge 108 commits into
v1.4-baseline-warning-renderfrom
v1.4-independent-clivery-decoder

Conversation

@Datamining00

@Datamining00 Datamining00 commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Scope

Independent, read-only FH6 C_livery / C_group decoder work through M1-M4 plus a bounded M4d handoff into the existing FH6 Assistant preview renderer.

The independent decoder remains isolated from FLS implementation code and from KFPS runtime dependencies. The current native shape renderer / vehicle projection stack is retained; only renderer placement input is replaced when independent semantics are fully proven.

M1-M3

Implemented and validated:

  • strict C_livery container/header/body framing and 11 positional section counters
  • standalone C_group -> Scene Tree
  • full 11-section C_livery -> Scene Tree
  • no arbitrary scan recovery, no global +18 assumption, no global layer reversal

Real game samples:

  • Car 3761: 8569 / 8569 leaves
  • Car 2997: 9086 / 9086 leaves

M4 semantic foundation

Implemented:

  • structural DFS flattening without source_offset sorting
  • effective conformal Group-transform composition
  • reflection-aware transform canonicalization
  • 0x60 mask ancestry
  • direct-sibling 01 02 trailing mask state, including chromatic predecessor
  • terminal direct-Shape mask state
  • direct-Shape skew propagation
  • BGRA stored vector colors -> semantic RGBA
  • neutral semantic comparator
  • FLS .3so gzip/JSON black-box oracle bridge
  • FLS v3 vector-scene semantic adapter using only fields observed in user-produced artifacts

Controlled FLS pair 5

Pinned artifacts:

  • .3so: be05f4ed0b53ce94b47f0dc2d0675d2b2202e579af4a77655b2ff5d8676b8175
  • project JSON: b7dbd2bb95bba76bea4638068b9c8baa1729673c629f36d72d527afc6bd55fdd
  • C_livery: 564181e1657e7485281036e3b80492f2bce8183f88a9c24be044185c17003b9c
  • inflated C_livery: e77e0cd7ea5e9528011ce034c73f00aa8c051dadc75baf0d21b55f7b8cb06167
  • Car ID 2017; 10 vector leaves

Confirmed:

  • chromatic direct-sibling 01 02 mask targets the immediately preceding direct Shape independent of color
  • direct Shape skew (2.3 -> 2.299999952316284)
  • Shape color alpha serialization (164) while separate FLS node opacity remains 1.0
  • BGRA storage semantics calibrated by primary-color screenshot
  • flat direct-sibling paint order: stored earlier sibling first, later sibling on top

Not established by pair 5:

  • completed-Group mask-boundary state
  • non-unit node opacity

Controlled FLS pair 6 — side UI oracle

Pinned artifacts:

  • .3so: 14092c91233dc6f50405486038ecd49377fbd14f3730549f97ef61e27ace1078
  • project JSON: 47eb35affee966238b2d2631946a8c9297dd4fcd4cb2b2c184088f881897e562
  • C_livery: 4b757a4c8f536a8b9f52854e3b64df711247726854c4bc38fa9d2b18e6bd82f3
  • Car ID 1124; counts [0,0,0,1,1,0,0,0,0,0,0]

Confirmed FLS UI convention:

FLS UI Right <-> serialized/internal Left (slot 3)
FLS UI Left  <-> serialized/internal Right (slot 4)

This is UI-facing only. The independent decoder keeps slot 3 = Left, slot 4 = Right; no binary section swap is applied.

M4d renderer handoff

Implemented on the feature branch:

C_livery
  -> independent decode_clivery_file()
  -> independent flatten_livery_scene()
  -> exact-vector render adapter
  -> existing native FH6 shape renderer
  -> existing exact vehicle projection

Acceptance is fail-closed. Direct independent renderer use requires:

  • all 11 sections present in canonical serialized order
  • every section complete
  • exact declared/flattened leaf-count equality
  • continuous structural DFS traversal indices
  • vector-only type words inside the validated independent domain

source_offset is provenance only and is never used as general z-order.

Raster / unresolved semantics

Independent raster/logo semantics are not yet black-box validated. High-bit raster/logo-like records therefore do not enter the independent vector renderer bridge. They trigger an explicit pinned-legacy preview fallback with a diagnostic warning.

The legacy fallback remains read-only and also retains the bounded flat-section chromatic 01 02 mask correction.

Car 2997 renderer-input consequence

Historical pinned/local preview input was 9085 total / 2988 Left, while the independently validated scene is 9086 total / 2989 Left. The new direct vector bridge supplies the independently validated scene to the renderer when its acceptance contract succeeds, eliminating that old parser-input discrepancy by construction.

This is not yet visual sign-off for the original person-obscuring Left-side polygon. Final confirmation still requires rendering the original problem sample locally with the user's FH6 vehicle assets.

Cache boundary

Preview cache namespaces are bumped when the independent bridge is installed, so PNGs generated by the previous parser path are not reused as evidence for the new renderer input.

CI

Code-changing Windows run 32487492718 at head 897966448d72391d611ffbe6d7e6dab50850689c completed successfully:

  • independent decoder/oracle: 72 tests, OK (skipped=8)
  • standalone C_group parser: 14 tests, OK
  • real game-livery opt-ins: 2 tests, OK (skipped=2)
  • full FH6 Assistant suite: 257 tests, OK (skipped=10)

Both jobs succeeded.

Independence boundary

No FLS implementation source, control flow, binary, DLL, or library is copied, ported, vendored, imported, or linked. FLS public documentation and user-produced black-box artifacts are validation inputs only.

The independent decoder does not import KFPS. KFPS remains only in the pre-existing preview renderer / explicit fallback path.

Remaining M4 evidence gaps

Still requires purpose-built or local evidence for:

  • original Car-2997 visual re-render/sign-off on the new bridge
  • a serialized reflected Group frame
  • non-zero Group rotation combined with a serialized reflected Group frame
  • Group skew / general affine Group transforms
  • mask state crossing a completed Group boundary
  • standalone colored C_group channel semantics
  • independent raster/logo semantics
  • non-unit FLS node opacity
  • nested Group/mask final renderer draw-order semantics

PR remains Draft and unmerged. No automatic merge requested.

@Datamining00 Datamining00 changed the title v1.4: independent C_livery decoder Milestone 1 v1.4: independent FH6 decoder Milestones 1-2 Aug 20, 2026
@Datamining00 Datamining00 changed the title v1.4: independent FH6 decoder Milestones 1-2 v1.4: independent FH6 decoder Milestones 1-3 Aug 21, 2026
@Datamining00 Datamining00 changed the title v1.4: independent FH6 decoder Milestones 1-3 v1.4: independent FH6 decoder M1-3 + M4 semantic foundation Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant