Repository navigation
Conversation
This was referenced Oct 22, 2026
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.
Cyberpunk 2077 2.5 still uses bundle version 14, but its full script cache has a seventh table descriptor. The old reader starts the string data at the old header boundary. This patch reads the extended header and follows the stored table offsets so full 2.5 bundles can be compiled.
The extra table has one 12-byte linkage row per definition, including index zero. The reader checks the row count, file bounds and CRC. An unchanged extended bundle is preserved byte for byte; after an edit, a full bundle gets regenerated zero linkage rows with updated counts, offsets and checksums. Legacy bundles keep their original layout.
Related to #202: this approach retains the extended layout in the output. Rows with external-resolution bit 0 set are rejected explicitly because they need a precompiled-base resolver. Other nonzero producer fields are not fully understood, so this does not claim general patch-bundle support.
Two related changes are needed in the compilation path:
Checks
On this format-only branch, 6229 local Windows tests passed, along with all-target Clippy and stable formatting:
The synthetic tests cover unchanged byte preservation, definition growth, legacy writing, invalid counts/bounds/CRC and external-linkage rejection. They build extended input from the existing upstream fixture; no new game cache or decompiled game source is included.
Independent DLL checks compiled legacy and pristine 2.5 inputs with error popups disabled. Official REDmod SCC produced LoadAndSave output and reported a functional match for 2.5 outputs, including class, field, method, wrap and replace probes. LoadAndSave returned
0xFFFFFFFFdespite reporting completion, so acceptance was checked using the produced file and a successfulcompareBlobs, not its exit code alone.A minimal game smoke test used the combined DEV2 build with RED4ext 1.30.0 and a local Auto Continue 1.1.2 test build. Startup compilation, save loading, automatic final confirmation and a rendered world were observed. This was not an in-game test of this standalone PR or the exact public ZIP, and it does not establish full-collection or cross-platform compatibility.
scc-lib-testswas excluded because libclang is unavailable. Stable rustfmt ignores the repository's nightly-only options; those options were not validated locally. No hosted CI was requested or run from this submission.The rest of the work
The other changes are available separately so they can be reviewed independently:
0.5.x.0.5.x. It remains a draft pending libclang/platform checks.The Windows package is an experimental replacement while upstream compatibility work is reviewed. It is installed instead of the official compiler, not as a second dependency. The original MIT licence and credits are retained; users are directed back to a supported upstream release when it includes the required fixes.