v1.4: KFPS 3.1.31 with minimal section-boundary compatibility - #40
Draft
Datamining00 wants to merge 3 commits into
Draft
v1.4: KFPS 3.1.31 with minimal section-boundary compatibility#40Datamining00 wants to merge 3 commits into
Datamining00 wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal
Test the minimal hybrid indicated by the real-data differential reports:
Differential evidence
Livery_2997_20260817150058 — legacy better
Clean 3.1.31 keeps the Top and Left counts nominally complete but advances populated section ownership too late. It then under-decodes:
The patched 3.1.27 report explicitly preserves an immediate next-section placement at body offset
0x184fe. The current decoder instead starts Left later, and later raw placements are consequently attributed to earlier sections.Livery_3761_20260818134954 — 3.1.31 better
Clean 3.1.31 exactly matches every declared section count (8569 total). The patched legacy decoder produces 8561 layers and misses 8 Left placements. Around Top offsets
95628..95851, 3.1.31 recognizes eight placements that legacy omits, and the following shared Top layers receive the 3.1.31 group transform. The eight later placements around96640..96863are consequently assigned to Left instead of being consumed by Top.This shows that the 3.1.31 group/occupancy/transform model must be retained, while the populated-section boundary advance still needs the proven compatibility rule for the 2997 layout.
Runtime policy
This branch therefore does not re-enable the old parser stack. It installs only
apply_livery_section_boundary_fix_patch()after the 3.1.31 clean baseline. The following remain disabled:Unknown
0x0100continues to be rejected as a native shape by KFPS 3.1.31 itself.Validation
32393927765— success82,644,728104b10e77f0d15e34e399dd5787f152f48ea09bc2f50c34fe9cd5548662ac65407a134ab794fce1eed1b916bf910c2d4a98c97aa4002654415052ad874c82ae4Real-data acceptance test
Recheck both contrasting liveries with this single build:
Livery_3761/ Fluorite — Left must keep the 3.1.31-corrected composition and the black occluding structure must not return.Livery_2997— the sections that regressed on clean 3.1.31 must render correctly again.shape word 0x0100should still open without treating 0x0100 as a native shape.Draft test only. Do not merge before these visual checks.