🖥️ Refreshed Proton 10.0-4 & 11.0-1 — in-game refresh rates unlocked · arm64ec + x86_64 (bionic)
A combined refresh of both Proton 10.0-4 and Proton 11.0-1 (bionic) — the same runtimes you're already using, rebuilt to unlock in-game refresh rates. Everything from the current builds carries over (FEX unixlib loader, fast-yield, stripped + zstd); this adds one new capability on top.
🔀 Installs alongside your current Proton — these use new version slots (
-2for P11 →proton-11.0-1-arm64ec-2,-3for P10-4 →proton-10.0-4-arm64ec-3/proton-10.0-4-x86_64-3), so nothing is overwritten and you can switch back any time.
⚠️ Needs a compatible app build too — this Proton is only half of the feature. The refresh unlock requires a Bannerlator (or Winlator-bionic) version with the new "In-game refresh rate" container setting. That setting is what actually enables it: when the container launches, the app writes a small Wine registry change into that container's prefix —"EmulateModelist"="Y"/"EmulateModeset"="Y"under[Software\Wine\X11 Driver], which turns off Wine's built-in display-mode emulation so the panel's real refresh rates reach the game. This is applied automatically to both new and existing containers (and only on a layer that actually supports it — like these). On an older app build without that setting no registry change is made, so this Proton alone won't unlock refresh — it just behaves as a normal runtime.
🖥️ What's new — in-game refresh rates unlocked
Until now, every game's in-game Refresh Rate setting was stuck at 60 Hz, even on a 90 / 120 / 144 Hz phone or handheld. That was never a game limitation — the Windows side simply never saw the higher rates, because the display layer only ever reported a single 60 Hz mode.
These builds fix that at the source. Wine is now compiled with XRandR support, so it can read the real list of refresh rates your screen supports and hand them to the game. In a game's graphics / display settings you'll now be able to pick 90 / 120 / 144 Hz (whatever your panel actually offers) instead of only 60.
(Plain terms: your phone can do 144 Hz, but games could only ever see "60." Now they see the real options.)
🔧 How the two halves fit: the app advertises your panel's rates and, via the "In-game refresh rate" container setting, tells Wine to pass them through; this Proton is the Wine-side half that reads and exposes them to the game. Both are required. Most engines read the mode list once at startup — set the rate, then relaunch the game.
🆕 x86_64 builds added
This release now also carries Proton 10.0-4 x86_64 (SDK 28 + SDK 35), built from the same tree as the arm64ec files — same XRandR refresh unlock, same env-gated fast-yield, same -g0 -O2 + llvm-strip size pass, same zstd packing. At ~57 MB they're the smallest layers here.
⚠️ Read this before picking x86_64. These are new and untested on-device — they are CI builds whose contents were verified (see Verification below), but no game has been booted on them yet. The x86_64 tree runs the whole of Wine through box64 / FEXCore x86_64 emulation, which is slower than arm64ec and has a known rough edge: on the x86_64 side some prefixes ship with RpcSs / PlugPlay disabled, which showed up on Proton 11 aswfm.exeloading but never displaying (RPC_S_SERVER_UNAVAILABLE). That was a prefix service-config problem, not box64 itself, and it has not been re-tested on 10.0-4.arm64ec remains the recommended, proven runtime. Take x86_64 if you specifically need an x86_64 Wine or want to help test it.
✨ Also included (carried from the current builds)
- ⚡ Fast-yield gate — opt-in (
WINE_FAST_YIELD=1per container) fix for the bug that pins one CPU core at 100% via busy-waitSwitchToThread→NtYieldExecution; better perf / battery. Dormant by default (no behavior change unless the env var is set). Present in both arm64ec and x86_64 builds. - 🪝 FEX unixlib loader — loads FEXCore's native
.sobackend (libarm64ecfex.so/libwow64fex.so) by name, auto-found in$PREFIX/lib/wine/aarch64-unix/; works with any FEX version. Stays dormant until a matched-unixFEXCore is installed (grab one from the Nightlies — use the-unixassets, which stubshm_open/shm_unlinkfor bionic). (arm64ec-relevant.) - 🪶 Stripped + zstd-packed —
-g0 -O2+llvm-strip --strip-all,.wcppacked withzstd -T0 -19: ~88 MB arm64ec / ~57 MB x86_64 downloads that install fast (the app's ContentsManager auto-detects xz / zstd, no change needed). - 🖼️ Graphics via DXVK / VKD3D → Vulkan (Turnip / Adreno) · 🔄 esync + fsync + ntsync threading · 🤖 bionic (works on Bannerlator, WinNative, other Winlator-bionic apps).
📦 Which file do I want?
| SDK 28 (Android 9+, 4 KB pages) | SDK 35 (Android 15 / 16 KB pages) | |
|---|---|---|
| Proton 11.0-1 · arm64ec ✅ recommended | proton-11.0-1-arm64ec-sdk28.wcp |
proton-11.0-1-arm64ec-sdk35.wcp |
| Proton 10.0-4 · arm64ec ✅ recommended | proton-10.0-4-arm64ec-sdk28.wcp |
proton-10.0-4-arm64ec-sdk35.wcp |
| Proton 10.0-4 · x86_64 🧪 untested | proton-10.0-4-x86_64-sdk28.wcp |
proton-10.0-4-x86_64-sdk35.wcp |
All six are ready-to-install zstd .wcp files. Pick the SDK that matches your device (SDK 35 if you're on a 16 KB-page Android 15 device, SDK 28 otherwise), then pick the architecture — arm64ec unless you have a reason not to.
🚀 How to use
- Install the
.wcp(appears asproton-11.0-1-arm64ec-2,proton-10.0-4-arm64ec-3, orproton-10.0-4-x86_64-3). - In your container / shortcut, set Wine = this Proton.
- In the container's settings, set In-game refresh rate to a rate or leave it Unlimited (the default). (Requires an app build that has this setting — see the note up top.)
- Launch the game, open its graphics settings, and pick your refresh rate. Relaunch if the list doesn't update live (most engines read it at startup).
🧩 Compatible with
- Apps: Bannerlator, WinNative, and other Winlator-bionic / Cmod-lineage emulators (bionic ABI,
/system/bin/linker64).⚠️ The refresh unlock needs an app build that has the "In-game refresh rate" container setting; without it, this Proton is just a standard runtime (everything else still works). - Translators: FEXCore (any version) for x86 / x86_64 on the arm64ec builds; box64 / FEXCore x86_64 for the x86_64 builds.
- Graphics: DXVK / VKD3D-Proton → Vulkan (Turnip / Adreno).
✅ Verification
Checked in the packaged binaries of both x86_64 files before publishing:
- XRandR active —
winex11.socarries theXRR*entry points (XRRGetScreenResources,XRRGetCrtcInfo,XRRConfigCurrentRate, …), i.e.--with-xrandr --with-xrendertook effect on the x86_64 configure path too. - Fast-yield present —
WINE_FAST_YIELDgate inntdll.so. - Debug info stripped — zero
.debug/.symtabsections; ELFs reportstripped. - Correct page size per SDK — SDK 28 segments align to
0x1000(4 KB), SDK 35 to0x4000(16 KB). - zstd container —
.wcpis a zstd tar for fast on-device extraction.
⚠️ Notes
- Installs alongside your current Proton (
-2/-3slots) — no overwrite; switch back any time. - The refresh unlock is a two-part feature — this Proton (the Wine half) plus an app build with the "In-game refresh rate" setting. Both are needed, and your panel has to actually offer higher rates (on a 60 Hz-only display there's nothing extra to show).
- x86_64 is not device-proven — see the x86_64 section above. arm64ec is the working, tested runtime.
- x86_64 is Proton 10.0-4 only — there is no x86_64 11.0-1 in this release.
- Stock Valve Proton, not GE-Proton — no GE game-fixes / FSR / OptiScaler tier.
Base: Valve proton-11.0-1 (final) + proton-10.0-4 · Wine unix side built with Android NDK r27d, XRandR + XRender enabled · arm64ec DLL tree aarch64-windows, x86_64 DLL tree x86_64-windows + i386-windows. Carries the FEX unixlib loader + env-gated fast-yield from the current builds.