Repository navigation
build-macos: published b1/b2 corrupt Genshin's asset reads (toolchain); configure against an installed engine - #2
Open
pharmacykitty wants to merge 1 commit into
Open
pharmacykitty wants to merge 1 commit into
pharmacykitty wants to merge 1 commit into
Conversation
…figure that builds against an installed engine The b1 and b2 engines corrupt data Genshin reads during a scene load (asr_003 BlobSignature mismatches, Unity "CAB is corrupted" / mismatched serialization, then a stuck loading screen or c0000005). Files on disk are intact, Wine's file I/O reads them correctly, and the renderer, presenter, GPU identity, AVX, launcher and unlocker make no difference. The same b2 commit built locally with Xcode 27.0 (ld-1328.2) and installed over a copy of the published engine ran 2 h 10 min and 21 scene loads clean; the published .so files were linked with ld 27037.1 against the same SDK. The README records the finding and the evidence so the toolchain can be pinned. configure-from-engine.sh configures a tree without deps/: Homebrew's headers, the engine's own x86_64 dylibs for linking and sonames, and the sonames pinned explicitly, since configure misreads @rpath install names and otherwise writes a soname with otool's "(compatibility version …)" text into config.h, which leaves secur32 without schannel. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
What
build-macos/README.md: records that the published b1 and b2 engines corrupt the data Genshin reads during scene loads, the evidence that it is the build and not the source, and how to configure against an installed engine.build-macos/configure-from-engine.sh: configures a tree with Homebrew's headers and an installed engine's own x86_64 dylibs, sonames pinned to what the engine's unix halves dlopen.Symptom
During a teleport or the login scene:
HK4EUpload: error asr_003: BlobSignature not match [...blocks/00/<blk>@<offset>]by the dozen (spanning ~600 KB of one block), or Unity'sThe file 'CAB-…' is corrupted!/Position out of bounds/Mismatched serialization, then an endless loading screen orc0000005in GenshinImpact.exe (onceTrying to allocate 18446744073676197384B, a negative length from the garbage).Ruled out, each by test
Game files (every failing
.blkmatches the server md5), Wine's file I/O (14,700 overlapped + unbuffered + mapped reads per block, byte-compared, clean on b1 and on Yaagl's wine-11.0), AVX advertising, the fps unlocker, the presenter and upscaler, the GPU identity, D3DMetal vs DXMT (both corrupt on b2), the launcher bundle, memory (RSS flat 4–6 GB for hours), msync lost wakes (sweep = 0).The matrix
wine steam.exe GenshinImpact.exescript, DXMTLocal build: M4 Max, Xcode 27.0 27A5194q (Apple clang 21.0.0,
ld-1328.2),configure-from-engine.shrecipe (x86_64 only, SDL on, no gstreamer), installed over an APFS clone of the published b2 keeping its arm64 wineserver, loader, DXMT/D3DMetal payloads,winegstreamer.soandwinemetal.so.Published
x86_64-unix/*.so:LC_BUILD_VERSIONsdk 27.0, toolld 27037.1. Local: sdk 27.0,ld 1328.2. Both chained fixups; neither contains AVX code. So: toolchain, a flag that differs from the README recipe, or the i386+x86_64 build. A rebuild of b2 with Xcode 27.0's linker, or x86_64-only, checked through a few Genshin teleports, would tell which.Also seen
renderer dxmtthroughWINEDLLPATH_PREPENDdied at startup on the 1.0/1.1-beta app with b1 (c0000005 in kernel32 ~12 s); b2's loader change presumably covers it, untested here.🤖 Generated with Claude Code