GE-Proton 11.0-6 / 11.0-5 / 11.0-3 / 10.0-34 · Proton 11.0-1 / 11.0-2 / 10.0-4 — arm64ec bionic (Android fixes · DirectAudio 1.3.1 · font-handle cap 32768 · EA Desktop online + installer fix)
LatestConsolidated arm64ec (bionic) build of all seven Proton / GE-Proton layers, rebuilt from the build-bionic-layers-20260830-fontcap sources plus three fixes for EA-published Steam titles: two Android networking fixes that let EA Desktop go online inside the container, and a GDI+ fix that stops EA's installer wizard from aborting. Everything else (font-handle cap 32768, DirectAudio v1.3.1, the three Android compatibility fixes, GE game-fix tiers) is unchanged from fontcap. Proton 11.0-2 additionally ships an x86_64 build alongside arm64ec. Every layer is an independent .wcp — install the one that matches your Proton / GE version.
✅ This is the current release and the in-app catalog default (Bannerlator's layer picker now serves these
versionCode 4wcp). They install into a new coexisting<version>-arm64ec-4slot next to any fontcap-2layer — nothing is overwritten. Existing containers keep working; create a fresh container on the-4layer to get the fixes.Device-proven on the AYANEO Pocket FIT with the GE-Proton 11.0-6 wcp from this release, on a brand-new container with no hand edits: EA's installer wizard completed (no GDI+ abort), EA Desktop installed and went online with zero connection errors, and Need for Speed Most Wanted launched through Steam → EA Desktop to gameplay. Need for Speed Payback was proven the same way on the previous cut of the networking fixes.
What's new
- 🩹 EA installer wizard no longer aborts (Wine 11 layers) — Wine 11's GDI+ region code hit an assertion (
x1_min > xindlls/gdiplus/region.c) on a zero-width span while EA's WiX installer redrew after Let's go, killing the installer with exit code 3. The span is now clamped instead of aborting. The two Wine 10 layers have the older region code without this assertion and are unchanged. - 🌐 Dual-stack DNS works — bionic's
getaddrinfo()rejectsAI_V4MAPPED/AI_ALL(EAI_BADFLAGS), so EA's network stack gotWSAEINVALon every lookup and declared itself offline.ws2_32now emulates both flags with a second IPv4 lookup presented as::ffff:a.b.c.d. PlainAF_INET/AF_UNSPEClookups take the untouched code path. - 🛣️ Real default route — the guest route table had no default route, so
GetBestRoute()/GetBestInterface()failed withERROR_HOST_UNREACHABLE.nsiproxynow emits an on-link subnet route plus0.0.0.0/0via the gateway (WINE_ANDROID_GATEWAYwhen the app supplies it, else the subnet.1). - 🔢 versionCode → 4 on every layer — new coexisting install slot; the app catalog points here.
- ♻️ Carried over from fontcap — realized-font-handle cap
32768(TF2 / Source map-change freeze cure) · GE-Proton 11.0-6 layer · Proton 11.0-2 x86_64 build · SD-card boot fix (noexec/force_anon) · drive-root copy fix ·C.UTF-8locale · DirectAudio v1.3.1 (opt-in) ·WINEVMEMMAXSIZEcap · fast-yield gate · FEX-unixlib loader · XRandR / XRender.
Scope of the changes: unix-side ws2_32.so + nsiproxy.so (all layers) and PE-side gdiplus.dll (Wine 11 layers). No FEX, DXVK or other PE changes versus fontcap.
Layers
GE-Proton 11.0-6 · arm64ec · Wine 11 · versionCode 4
| Base | GloriousEggroll GE-Proton11-6 game-fix tier on Valve Proton 11.0-1 (Wine 11.0-1) |
| Installs as | 11.0-6-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route · gdiplus span clamp |
| DirectAudio | v1.3.1 (vendored source) — opt-in via registry Audio=directaudio |
| Assets | GE-proton-11.0-6-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (noexec / force_anon) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — maplestory · dai_xinput · eac · pso2 · assettocorsa · silence-starcitizen · vgsoh · WM_ACTIVATEAPP
ℹ️ GE dropped its
battlenetworkaround upstream in GE-Proton11-6, so this layer's game-fix set is the 11.0-5 tier minusbattlenet. This is the layer the EA support was device-proven on.
GE-Proton 11.0-5 · arm64ec · Wine 11 · versionCode 4
| Base | GloriousEggroll GE-Proton11-5 game-fix tier on Valve Proton 11.0-1 (Wine 11.0-1) |
| Installs as | 11.0-5-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route · gdiplus span clamp |
| DirectAudio | v1.3.1 (vendored source) — opt-in via registry Audio=directaudio |
| Assets | GE-proton-11.0-5-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (noexec / force_anon) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — battlenet · maplestory · dai_xinput · eac · pso2 · assettocorsa · silence-starcitizen · vgsoh · WM_ACTIVATEAPP
GE-Proton 11.0-3 · arm64ec · Wine 11 · versionCode 4
| Base | GloriousEggroll GE-Proton11-3 game-fix tier on Valve Proton 11.0-1 (Wine 11.0-1) |
| Installs as | 11.0-3-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route · gdiplus span clamp |
| DirectAudio | v1.3.1 (submodule @ directaudio-v1.3.1) — opt-in via registry Audio=directaudio |
| Assets | GE-proton-11.0-3-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (noexec / force_anon) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — battlenet · maplestory · dai_xinput · eac · pso2 · assettocorsa · silence-starcitizen · vgsoh · WM_ACTIVATEAPP
Proton 11.0-1 · arm64ec · Wine 11 · versionCode 4
| Base | Stock Valve Proton 11.0-1 (Wine 11.0-1) — plain Proton, no GE game-fixes |
| Installs as | 11.0-1-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route · gdiplus span clamp |
| DirectAudio | v1.3.1 (submodule @ directaudio-v1.3.1) — opt-in via registry Audio=directaudio |
| Assets | proton-11.0-1-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (noexec / force_anon) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — none (plain Proton)
Proton 11.0-2 · arm64ec + x86_64 · Wine 11 · versionCode 4
| Base | Stock Valve Proton 11.0-2 (Wine 11) — plain Proton, no GE game-fixes |
| Installs as | 11.0-2-arm64ec-4 · 11.0-2-x86_64-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route · gdiplus span clamp (both architectures) |
| DirectAudio | v1.3.1 (submodule @ directaudio-v1.3.1) — opt-in via registry Audio=directaudio |
| Assets | arm64ec: proton-11.0-2-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) · x86_64: proton-11.0-2-x86_64-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (noexec / force_anon) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — none (plain Proton)
⚠️ The x86_64 wcp carries the same fixes, but Proton 11 under box64 currently does not render a window — use the arm64ec build, which is the proven runtime. The x86_64 asset is published for completeness / testing.
Proton 10.0-4 · arm64ec · Wine 10 · versionCode 4
| Base | Stock Valve Proton 10.0-4 (Wine 10) — plain Proton, no GE game-fixes |
| Installs as | 10.0-4-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route (Wine 10's gdiplus has no span assertion — no clamp needed) |
| DirectAudio | v1.3.1 Wine-10 ABI port (submodule 4241123a) — opt-in via registry Audio=directaudio |
| Assets | proton-10.0-4-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (force_anon, GameNative's original Wine-10 diff) · drive-root copy · C.UTF-8 locale (fixes authored against the Wine-10 tree)
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes — none (plain Proton)
ℹ️ The DirectAudio v1.3.1 mainline is Wine-11-only (it drops the
midi_get_driverunixlib guard); this layer ships the Wine-10-guarded 1.3.1 build so the same feature set works on Wine 10.
GE-Proton 10.0-34 · arm64ec · Wine 10 · versionCode 4
| Base | Valve Proton 10.0-4 (Wine 10) with the GE-Proton10-34 game-fix tier layered on (GE's game-patch files only, not GE's Wine tree) |
| Installs as | 10.0-34-arm64ec-4 |
| EA fixes | ws2_32 dual-stack DNS · nsiproxy default route (Wine 10's gdiplus has no span assertion — no clamp needed) |
| DirectAudio | v1.3.1 Wine-10 ABI port (submodule 4241123a) — opt-in via registry Audio=directaudio |
| Assets | GE-proton-10.0-34-arm64ec-sdk28.wcp (4 KB pages) · …-sdk35.wcp (16 KB pages) |
Android compatibility fixes — SD-card boot (force_anon, Wine-10 diff) · drive-root copy · C.UTF-8 locale
Runtime — realized-font-handle cap 32768 · WINEVMEMMAXSIZE cap · fast-yield gate · FEX-unixlib loader · XRandR / XRender
Build — -g0 -O2 release build, llvm-strip on both the PE DLLs/EXEs and the unix .so loaders · zstd-compressed .wcp · ccache in CI (build speed only, not in the layer)
Inherited bionic base — the Winlator-bionic / GameNative Android patch set every layer is built on: esync/fsync, winex11 driver (window/keyboard/mouse/OpenGL/bitblt), preloader, clipboard, winemenubuilder, MIDI, DNS resolver, wow64 syscall path
GE game-fixes (10 — superset)
- GE-Proton10-34 tier:
assettocorsa·dai_xinput·eac·pso2·silence-starcitizen·vgsoh - plus our extras:
battlenet·maplestory-charprev·maplestory-stickykeys·WM_ACTIVATEAPP
ℹ️ GE-Proton10-34's
lemansultimate-gameinputpatch is intentionally omitted — our Valve Proton 10.0 base already shipsdlls/gameinput, so GE's stub is redundant/conflicting.
Installation
Each layer is a distinct .wcp — install the one matching your Proton / GE version, or pick it from Bannerlator's layer catalog. Pick the SDK variant for your device's page size:
sdk28— 4 KB-page devices (most Android hardware)sdk35— 16 KB-page devices
Proton 11.0-2 additionally offers an x86_64 pair of wcp — but Proton 11 under box64 does not currently render a window, so use the arm64ec build unless you are specifically testing x86_64.
Create a fresh container on the new <version>-4 slot. Existing fontcap (-2) containers keep working unchanged.