Repository navigation
Ship the Wine builtins Metro 2033 Redux and Ori and the Will of the Wisps need - #178
Merged
Merged
Conversation
Five stock Wine builtins (ARM64EC, built from the wine submodule at madeira-lgpl and stripped with --strip-debug like every shipped builtin) were missing from the DLL farm: - msvcr110.dll, msvcp110.dll, d3dx11_43.dll: Metro 2033 Redux never ran a single instruction. The loader logged "import_dll Library MSVCP110.dll ... not found" and "loader_init ... failed, status c0000135" (its PhysX modules import msvcr110 too); the x86_64-vcruntime overlay carries only the VC++ 2015+ runtime (*140.dll). With the three builtins the loader got through on the device (2026-09-27). - cryptsp.dll: Xal.Unity in Ori and the Will of the Wisps delay-loads cryptsp.dll!SystemFunction032 (Wine moved SystemFunction006..041 from advapi32 to cryptsp). The unresolved stub raised 0x80000100, nothing handled it and the game process ended on a black screen right after the first level load. With the builtin the game ran on (device, 2026-10-02). - xaudio2_7.dll: the prefix template registers CLSID_XAudio2 (2.7) at system32\xaudio2_7.dll, which did not exist; added with the Metro 2033 Redux set. These are the exact files that ran on the device. The farm is an Xcode folder reference and the sysx64 farm links every file in it, so nothing else needs registering. Signed-off-by: spitefulowl <spitefulowll@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
There was no script for any Wine PE module except ntdll, so the builtins in app/Madeira/arm64ec-windows could not be rebuilt from the submodule in a documented way, and build-ntdll.sh's header said other modules need no strip, while every shipped builtin is --strip-debug'ged. build/wine-pe/build-modules.sh [module...] builds the modules' DLL targets (dlls/<m>/arm64ec-windows/<m>.dll, which is also the right way for winegstreamer) in wine/build-arm64ec with the same first-run configure as build-ntdll.sh, strips them with --strip-debug and installs them into app/Madeira/arm64ec-windows (DEST overrides). Without arguments it rebuilds the five builtins added for games in the previous commit (cryptsp, d3dx11_43, msvcp110, msvcr110, xaudio2_7); the tracked modules a change touches (kernelbase, shell32, xinput1_x, ...) are passed by name. It refuses ntdll (padded by its own script), prefers Homebrew's bison when installed (tools/wrc needs bison 3, macOS ships 2.3) and creates the stdole2.tlb aarch64-windows link that widl needs for shell32 when it is missing. docs/BUILDING.md and build-ntdll.sh's header describe it. Tested on the development machine against a wine/build-arm64ec tree: argument handling (--help, ntdll refused, paths and unknown modules rejected), then the default list: all five DLLs come out at exactly the sizes of the committed ones and differ from them only in PE timestamps (and, in msvcr110, in import hints). Signed-off-by: spitefulowl <spitefulowll@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
willfaust
added a commit
that referenced
this pull request
Oct 4, 2026
wine/dlls has d3d10core, d3d11, dxgi, d3d12, d3d12core and xtajit64 directories too; building one would silently replace DXMT's, madeira-d3d12's or FEX's DLL in arm64ec-windows with Wine's (#178). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
willfaust
added a commit
that referenced
this pull request
Oct 4, 2026
Wine and FEX runtime fixes, DXMT texture and memory fixes, audio, the swap tier and library launch options (#178-#187 and willfaust/wine#22-#24, willfaust/FEX#11-#12, willfaust/dxmt#16-#17). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
willfaust
added a commit
that referenced
this pull request
Oct 4, 2026
What landed from #163 (bahacan16): - its system32\wbem link for 64-bit sessions (8b32056, authored by bahacan16); - the 18 modules of its list it found missing on device in GTA V Enhanced (828be77), built with build/wine-pe/build-modules.sh from #178, which does #163's stdole2.tlb link too. Not taken: build/wine-pe/build-extra-dlls.sh (#178's build-modules.sh is the farm's script; it strips with --strip-debug and does not pad, which only ntdll needs) and the other ~90 modules of its list, which are added per game as logs show them missing. This merge only adds the pull request's commit as a parent (the ours strategy changes no files), so GitHub shows it as merged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
spitefulowl
added a commit
to spitefulowl/Madeira
that referenced
this pull request
Oct 4, 2026
Integration branch of the spitefulowl fork, never for upstream: the topic branches not merged upstream yet, on bbbf8d0 (upstream main after it merged the pull requests willfaust#178-willfaust#184, willfaust#186 and willfaust#187): - controllers-and-keyboard - display-resolution - misc-app-fixes-later - build-and-bundle .gitmodules points at the spitefulowl forks (branch staging) and the gitlinks at their staging heads: wine 47fa28e18b8, FEX 7d3b59477a8; dxmt and madeira-dock stay at upstream main's pins (dxmt has no unmerged topic branch left). dxmt-correctness-memory-later is empty now: dxmt#16 carries its pin, and ml1222 is parked in the dxmt fork branch experiment/dxmt-shader-ir. Signed-off-by: spitefulowl <spitefulowll@gmail.com> Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Why
Five stock Wine builtins were missing from the
arm64ec-windowsDLL farm:import_dll Library MSVCP110.dll ... not foundandloader_init ... failed, status c0000135; its PhysX modules import msvcr110 too. The x86_64-vcruntime overlay carries only the VC++ 2015+ runtime (*140.dll).cryptsp.dll!SystemFunction032, because Wine moved SystemFunction006..041 from advapi32 to cryptsp. The unresolved stub raised 0x80000100, nothing handled it, and the game ended on a black screen right after the first level load.system32\xaudio2_7.dll, which did not exist.Changes
--strip-debuglike every shipped builtin. These are new files only; no tracked binary changes. The farm is a folder reference, so nothing else needs registering.build/wine-pe/build-modules.sh [module...]. There was no script for any Wine PE module except ntdll.wine/build-arm64ecwith the same first-run configure asbuild-ntdll.sh, strips them and installs them intoapp/Madeira/arm64ec-windows.stdole2.tlblink that widl needs for shell32.docs/BUILDING.mdandbuild-ntdll.sh's header describe it.Testing
build-modules.shon the development machine: argument handling (--help, ntdll refused, paths and unknown modules rejected), then the default list. All five DLLs come out at exactly the committed sizes and differ from them only in PE timestamps (and, in msvcr110, in import hints).🤖 Generated with Claude Code