Repository navigation
Swap tier donor pool, D3D12 pipeline archives, performance overlay and engine fixes - #516
Merged
Merged
Conversation
…ig Picture and engine fixes The work from 2026-10-25 to 10-28 (8 GB and 12 GB iPhones), on wave 5's main. Every behaviour change has a madeira.cfg or env switch. - Swap tier: the MadeiraMemoryHost extension's donor pool as the first stage; 32-bit programs take donor RAM, never the file; churn, browser and whole-reservation rules (switches in the catalog). - D3D12: pso-async and pso-archive (both default 0), opt-in video-budget trim. - Generic engine fixes (memory, exceptions, WoW64, win32u, D3D12), each behind its own switch. - App: performance overlay on the system material with frame-time graph and lows; Big Picture beside Desktop from its own folder; HID mode keeps other pads on XInput; recommended lists for a publisher's launcher, two titles' editions and community-tested Steam titles; the Visual C++ runtime step in setup and Settings (MADEIRA_VCREDIST). - Dock: the game session's service manager when the prefix registers a launcher's own service, and the host's hold while a launcher restarts (MADEIRA_DOCK_GAME_SCM, MADEIRA_DOCK_KEEP_ALIVE). - Submodules: wine 3c38f40e, FEX 38f34e84, dxmt e0abd4d1, madeira-dock 67780ba9 (main's pins plus our commits). On wave 5 (willfaust#461) the following of ours give way to main's equivalents: the [stp-split] store (ios_store_split_crossing writes every page-crossing store per page), [anon-ldadd] and the in-handler [anon-cas] emulation (ios_mach_emulate_rmw covers every LD<OP> and off-pool CAS) and MADEIRA_TLS_CLEAR_OWN_PROCESS (main always clears a TLS index only in the caller's process). The opt-in MADEIRA_ANON_CAS_FLUSH handoff stays, as its own case before main's CAS emulation. [fault-progress] restarts main's per-thread breaker slot. Main's tested list for one title replaces the community one. kernelbase, d3d12, madeira_d3d12, d3d12core, xtajit64 and xtajit are rebuilt from these pins; d3d9 is main's (our dxmt commits are unix-side only). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dockhost.exe is a build output, and without it in the bundle the app hides Dock and with it the Steam library: the CI IPA showed only the Epic sign-in and Big Picture. tools/build-ipa.sh now runs build/madeira-dock/build.sh after llvm-mingw is set up (the toolchain it expects). The IPA cache key already covers the madeira-dock pin through the tree hash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…FRESH) A refresh asks Apple's developer portal for a new profile on the Apple ID that signs the device's other sideloaded apps too, and the installer that signed Madeira (SideStore, AltStore, SideInstaller) already renews it. Off, Settings has no Signing section, nothing starts a refresh or an offer over the library, and no sign-in an installer left is taken into the Keychain. The code stays; env.MADEIRA_SIGNING_REFRESH = 1 brings all of it back. The pairing file an installer hands over for Built-in StikJIT is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fourteen checks had drifted from the code they test: anchors that now hit a forward declaration or a new parameter, stand-ins whose signatures changed, a fourth redacted command-line site, the GDI section's new default, the 64-bit wg_parser create behind its switch, the helper's filler bytes since the upstream code was replaced, and binutils' NOP order in the render-loop pad. On Linux, the library download is kept out of reach of task cancellation, which Foundation's URLSession there sometimes never returns from. No production code changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Big Picture button beside Desktop and a Big Picture card in the library are not offered unless env.MADEIRA_BIG_PICTURE = 1. The code stays so it can be worked on; it is not ready for normal use yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The recommendations check allowed only the two Legacy lists to change below 12 GB; the lists that carry smallRAMConfig now do too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Big Picture button beside Desktop and the Big Picture library card exist only in a build compiled with the Swift condition MADEIRA_BIG_PICTURE_UI. No IPA build sets it (release IPAs use the Debug configuration, so #if DEBUG can't gate it), so a release has neither and no madeira.cfg switch brings them back. The launch code is still compiled, so it can be worked on with: SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) MADEIRA_BIG_PICTURE_UI' Replaces the runtime env.MADEIRA_BIG_PICTURE switch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
check-library-sections matched the Other games filter as one string; listedInLibrary now sits between its terms, so each term is checked on its own. check-pso-async required the exact list versions that took pso-async = 1; later versions keep it, so it accepts those too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
125hz
added a commit
that referenced
this pull request
Nov 2, 2026
…d engine fixes (#516) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
125hz
added a commit
that referenced
this pull request
Nov 5, 2026
Pull request #516 (merged 2026-11-01) carried about 5,300 lines of thebcd69's work without his name: - His pull requests #337 to #346, which he opened on 2026-10-15 and closed on 2026-10-18 before they were merged. This credits him for them. Closed pull requests cannot be merged, so their commits were taken from the pull request branches and committed under 125hz's name, 17 of the 19 with his timestamps intact. About 1,200 of those lines are still in the tree. - His public fork (https://github.com/thebcd69/bcd-games), as of 2026-10-26: about 4,100 lines copied into existing engine files and into the new memory-host extension files, 1,700 lines of host tests, and 30 of his tested game lists. The instruction to Claude was to research the fork only and create our own implementation; Claude copied it instead, labelled the tests "ported from a community host check" and left his name off. This commit is the correction. - Every file that carries his code gets a copyright line naming him, the source (fork, pull requests, or both) and the modification date, as GPL-3.0 section 5 asks; the memory-host files, which are his throughout, carry his copyright as the file's own. - THIRD-PARTY-NOTICES.md gains "Code from BCD" with the account, the per-file line counts by source, and the licence position (GPL-3.0-or- later; none of these files is "BCD Material" under his section 7 terms). - README credits list him next to bahacan16, his earlier account. - The game-list comments say whose tested lists they are. No code changes: 47 source files get header lines, two documents change. Host suite in WSL: the same results as the unmodified tree (the five extra failures are the CRLF working copy, not these edits). Co-authored-by: thebcd69 <190844990+thebcd69@users.noreply.github.com> Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
125hz
added a commit
that referenced
this pull request
Nov 5, 2026
…t to thebcd69 (#575) Four commits of #575: the fx_2_0 effect writer (wine ddf92babc5b, willfaust/wine#71) with wined3d.dll rebuilt for arm64ec and tests/host/check-fx2-effects.py; luminance render targets in DXMT's Direct3D 9 (dxmt 3d62913, willfaust/dxmt#55, MADEIRA_D3D9_LUMINANCE_RT) with d3d9.dll rebuilt; the review fixes of both; and the credit to thebcd69 (BCD) for the code taken from his fork and his pull requests #337 to #346 into #516: copyright lines in the 47 files that carry it, the Code from BCD section of THIRD-PARTY-NOTICES.md, a README credits entry. Co-authored-by: thebcd69 <190844990+thebcd69@users.noreply.github.com> 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.
The work from 2026-10-25 to 10-28 on 8 GB and 12 GB iPhones, on top of current
main. Every behaviour change has a madeira.cfg or env switch, listed in the settings catalog.Depends on the component PRs it pins:
3c38f40e, in iOS: runtime fixes (bcrypt, explorer, APC busy queue, atoms, mitigation policy), service manager on demand, guest log redaction, registry Fonts values wine#6938f34e84, in iOS: rpmalloc spans and lock sleep, WOW64 hot SMC pages, AVX without AVX2, sub-floor windows, preloaded images FEX#37e0abd4d1, in winemetal: pipeline archive, frame-time marks, donated RAM in the video budget (opt-in) dxmt#5367780ba9, in Launch: service manager for the game session when the prefix needs one; hold while the game's tree still starts madeira-dock#8Each of those is a short series directly on its current branch tip, so it merges as a fast-forward and these pins stay valid.
What's in it
pso-asyncandpso-archive(both default 0) and an opt-in video-budget trim.MADEIRA_VCREDIST).MADEIRA_BIG_PICTURE_UI. No IPA build sets it (release IPAs use the Debug configuration, so#if DEBUGcouldn't gate it), and no madeira.cfg switch brings it back. To work on it, build withSWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) MADEIRA_BIG_PICTURE_UI'.MADEIRA_DOCK_GAME_SCM,MADEIRA_DOCK_KEEP_ALIVE).tools/build-ipa.shbuildsdockhost.exe.env.MADEIRA_SIGNING_REFRESH).On main's wave 5, some of our changes give way to main's equivalents:
[stp-split]store;[anon-ldadd]and in-handler[anon-cas]emulation;MADEIRA_TLS_CLEAR_OWN_PROCESS.The opt-in
MADEIRA_ANON_CAS_FLUSHhandoff stays, as its own case before main's CAS emulation. kernelbase, d3d12, madeira_d3d12, d3d12core, xtajit64 and xtajit are rebuilt from these pins; d3d9 is main's.Review notes
9cd65a50-equivalent (the first commit) is one squash of the 10-25 to 10-28 fork work. I didn't split it by area here because the areas share the catalog,virtual_ios.c,Library.swiftand the project file.125hz:wave6-integration. That's what the test IPA was built from.Tests
Host tests (
tests/host/check-*.py, 180 s each) on Linux, with no Swift, Xcode or plutil and without the submodule sources checked out:main(c2c1b03a)125hz:wave6-integration)main, for the same environment reasons: noswiftc/xcrun/plutil, the wine/FEX/dxmt sources not checked out, or macOS-only C builds. The one exception is the newcheck-pso-archive, which also needs the dxmt sources.check-config-catalogfails onmainthe same way ("ConfigCatalog.generated.swift is out of date"). Its generator reads the submodule sources.main:check-child-ntdll-alias,check-dock-contract,check-inet-poll-cache,check-lazy-windows,check-lean-diag,check-log-redaction,check-pool-low,check-sc-ipc-split,check-sc-render-loop,check-section-abort,check-small-va-band,check-steam-games,check-steam-library,check-swap-images,check-x18-arith.--require-swift).Device: the IPA built from
wave6-integrationis with testers on 8 GB and 12 GB iPhones now.🤖 Generated with Claude Code