Skip to content

Bannerlator 3.0.8

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Sep 01:59
· 22 commits to main since this release

Bannerlator

3.0.8  app-side update

Bannerlator 3.0.8

Run Windows apps and games on Android — no PC and no root required.

3.0.8 is the downloads-and-containers update. Epic, GOG and Amazon downloads move to the same Rust engine Steam already uses — two to nearly three times faster on the same titles, same Wi-Fi. Containers stop being frozen to the compatibility layer they were born on: when a newer version of that layer appears, the container card offers Update layer, keeps your games, saves, shortcuts and settings, and can put the old layer back. Plus one-tap Screen Effect Looks in the in-game drawer, a Media tab on every store page, and the file-manager and EA fixes reported since 3.0.7.

⚠️ Win-FG frame generation is still EXPERIMENTAL — unchanged in this release. It is off by default; if it misbehaves, leave it off.

What's New — everything since 3.0.7

⬇️ Epic, GOG and Amazon downloads — now on the Rust engine

The three remaining Java download managers are replaced by the adaptive-concurrency Rust engine that Steam has been using, with a shared fetch core per store. Same title, same phone, same Wi-Fi:

Store Title Before After
GOG Gunslugs 3 (86 MB, 552 files) 4.5 s 2.2 s
Epic Alone With You (298 MB) 11.4 s 4.3 s
Amazon Dread Templar (4.2 GB) 68.4 s 48.4 s
  • Store download speed — a new row in Log Manager (Slow / Medium / Fast / Blazing) sets how many pieces are pulled at once. Fast is the default and is the right answer for most connections; on a fast link the store's own CDN becomes the limit long before the setting does.
  • The Java engines remain in the app as a fallback and are unchanged.

🔄 Update a container's compatibility layer — without rebuilding it

Until now a container was stuck on the Proton/Wine layer it was created with; getting a newer layer meant a new container, and re-installing everything in it.

  • The container card tells you. When a newer build of your container's layer exists, the card shows Update layer → v5 with a ? button that explains, in plain language, what changes and what does not.
  • One tap. Bannerlator backs up the container's registry, switches it to the new layer, and refreshes only Wine's own files inside the container. Your games, saves, shortcuts and container settings are kept. DXVK, FEX/Box64 and anything a game installed are left exactly as they are.
  • It fetches the layer if you do not have it. If the newer layer is in the catalog but not on the device, the button shows a download icon and states the size; confirming downloads and installs it first, then updates the container.
  • Reversible. The old layer stays installed and Revert layer is in the container's ⋮ menu, restoring the registry backup and the previous files.
  • Only newer builds of the same layer line are offered (GE-Proton 11.0-6 v4 → v5), never a different Proton version and never a downgrade. Close the game before updating.

Proven on device across all three paths: updating from an installed layer, downloading a catalog-only layer first, and reverting — with a Steam title launched afterwards to confirm the container still works.

📦 New compatibility layers — versionCode 5

All seven Proton / GE-Proton layers were rebuilt (proton-wine release build-bionic-layers-20260907-eccode, now the in-app catalog default). They install into a new -arm64ec-5 slot beside your existing layers — or use the new Update layer button above to move an existing container onto one.

  • Denuvo-protected games no longer die in the exception unwinder. Wine's arm64ec RtlIsEcCode had no bounds check: unwinding a frame inside Denuvo's runtime produced a bad address, Wine read past its own code map, and the game black-screened on a stack overflow. Fixed — Need for Speed Heat now reaches gameplay, the first EA-app-era Denuvo title proven here.
  • Titanfall 2 boots on these layers too. Whether that is down to the layer fixes or simply to EA Desktop being present in the container has not been established — both changed at once. Reported working; not yet profiled.
  • DirectAudio v1.3.2, including opt-in microphone capture.
  • One file per layer instead of two. The 4 KB and 16 KB page-size builds are unified into a single .wcp that runs on both.
  • Everything from the -4 layers is carried over: the EA Desktop networking and installer fixes, the font-handle cap, GE-Proton's game patches.

⚠️ Components matter — the layer is only half of it. A game that will not start is often a combination problem: the Proton layer, the FEXCore build and the DXVK version together. Heat was proven on the -arm64ec-5 layer with FEXCore nightly 2608+45, which is simply the build it finally booted on; on nightly 2608+229 it black-screened with a crash inside its own Denuvo runtime. Other FEXCore builds, including the catalog's stable ones, have not been tried on Heat yet. Stable builds are what we recommend generally, and if an EA title black-screens after the EA sign-in completes, changing the shortcut's FEXCore build is the first thing to try.

🏁 Need for Speed Heat — running through Steam and EA Desktop

The first EA-app-era Denuvo title running here, on a phone: added from the Steam library, launched through Steam → EA Desktop → game, on a GE-Proton 11.0-6 -arm64ec-5 container.

Need for Speed Heat connecting to EA from inside the container EA entitlement check passing — Checking inventory

EA's own online sign-in and entitlement check complete inside the container — the networking fixes in the -5 layers are what make this work.

Need for Speed Heat main menu Need for Speed Heat opening cutscene

Need for Speed Heat gameplay at night

Menu, opening cinematic and gameplay — D3D11 through DXVK on an Adreno 750. Frame rates are what they are on a phone: the menu sits near the panel cap, racing runs in the low teens.

▶ Gameplay clip (86 s, 1080p): attached to this release as nfs-heat-gameplay.mp4 — see the Assets list below.

Expect a slow first launch. These screenshots are from Heat's very first boot on the container, and it took a solid seven minutes from the EA sign-in screen to the game, with poor frame rates for the rest of that session — a cold start with an empty shader cache and a cold translation cache, which is the worst case rather than the norm. Every launch since has been quick and steady. Two things make that first boot worse than it needs to be: leave Log Manager's Wine debug logging off (with it on, an EA title can write gigabytes during startup and spend real CPU doing it), and let the first run finish rather than force-closing it, so the caches it is building survive.

This run used the -arm64ec-5 layer from this release with FEXCore nightly 2608+45 — the build Heat finally booted on, not a requirement we have proven. The same container on nightly 2608+229 black-screens with a crash inside Heat's Denuvo runtime, so the FEXCore build is worth changing if an EA title stops after the EA sign-in. Stable builds are the ones we recommend generally; they have not been tried on Heat yet.

🎨 Screen Effect "Looks" — one-tap presets in the game drawer

A row of named presets at the top of the drawer's Screen Effects section, on both renderer paths: Game Clarity, Vivid, Cinematic, Competitive, Adaptive Sharpen, Filmic, Arcade, Retro CRT, Upscale Sharp, Pixel Clean, Anime Edge. One tap sets every value a Look owns; moving one of those controls afterwards switches the row to Custom rather than lying about it. Saturation is new and is available on both paths, so the colour Looks grade identically whichever renderer you use.

🛒 Store pages — Media tab, and the catalog as a Contents source

  • Media tab with screenshots and trailers on the Steam, GOG, Epic and Amazon detail pages.
  • The official catalog is usable as a Contents repository, and a download can be kept as a save archive only.

🛠️ Fixes

  • File manager: the up arrow and Back work everywhere. Opening a folder from Favorites — or from the Downloads / Games / Pictures shortcuts — made the app treat that folder as the top of the drive, so the up arrow greyed out and Back did nothing. Fixed, and every folder below the root now lists a .. row you can tap to go up, in both list and grid view. (Reported by Devaspe, #476.)
  • EA setup finds games added before the EA support existed. A shortcut written by an older build carries no Steam app id, and EA setup reported "couldn't locate the game's install folder" — the fix matches the shortcut against your installed games and stamps the id back on. (Reported for Need for Speed Heat.)
  • Compatibility layers can go past version 9. A version code of 10 or higher failed to resolve and silently fell back to the bundled Proton 9.
  • Relative Mouse is saved per game (#431), and file-manager cards have a uniform height (#475).
  • The launch failure card's Close button works from the Games screen. The card is drawn from one shared state; Close only finished the game screen, leaving an inert card behind.

⚠️ Carried over — still open

  • Cancelling a store download removes it from the list but does not yet stop the transfer engine underneath. Force-stop the app to be certain it stopped. Cancel and resume on the new Rust store paths are not finished.
  • Origin-era EA titles ask for the EA sign-in on every launch, and EA counts every one. Launch such a title many times in a short period and EA refuses it for a while ("too many computers"). This is EA's server, not something a reinstall fixes.
  • Need for Speed (2015) does not run: its 2015-era Denuvo re-protects its own code thousands of times a second, which no Android emulation stack currently does fast enough. Every FEXCore mode and Box64 were tried.
  • Rockstar Games Launcher titles (GTA V Enhanced) are not supported: the launcher installs but its Social Club web UI never loads.
  • 64-bit titles launched directly by Steam can still crash at startup with the overlay-injection signature and fall back to an insecure start; 32-bit-launcher titles (CS:S, TF2, L4D2) are unaffected.
  • The Java Steam engine fallback is still present. Its removal has moved to a later release.
  • Not yet device-tested in this release: the Contents hub's Official-repo mode and the Steam / Epic / Amazon Media tabs (Amazon needs a library refresh first).

📦 Where to get Proton 9

The APK does not bundle Proton 9 — Wine installs from the in-app catalog on first run.

⚠️ A fresh install ships with no Wine at all. On first run, open Containers → the download icon and install a Proton before creating a container. Updating from 3.0.7 changes nothing — your existing containers and Wine installs are untouched.

Proton 9.0 arm64ec — not bundled, download it if you want it:

https://github.com/The412Banner/Nightlies/releases/download/Proton/wine/proton-9.0-arm64ec.wcp

66.7 MB · sha256 f8a99fed387f1b097009129dc49368c8f500927640a9d4c7a192d850b1b2068c
Install it via Containers → download icon → install the .wcp. It also appears in the in-app catalog. (Compiled as a wcp by Xnick417x.)


🙏 Credits

The Denuvo unwinder fix in the new layers was diagnosed and implemented by The412Banner: reading the crash back through Wine's arm64ec exception path to an unbounded RtlIsEcCode lookup, patching it across all seven layer branches, and proving it on device with Need for Speed Heat — the first EA-app-era Denuvo title running here. The in-place container layer update and the Rust download engines for Epic, GOG and Amazon are likewise original work in this release.

Thanks to GloriousEggroll for GE-Proton 11.0-6, the base the arm64ec layers are built on; to the Wine and FEX-Emu teams for the runtime the fix lives in; to Devaspe for the file-manager report and its precise reproduction steps (#476); and to the community testers who reported the Need for Speed Heat install-folder failure and keep testing EA titles on their own accounts despite EA's activation limits.

Built on the work of many open-source projects and their communities:

  • Native Steam engine & SteamLite agent — derived from WinNative's GPL wnsteam client and wn-steam-launcher (hardened, extended and rebranded here); protocol groundwork from SteamKit2 (the SteamRE team).
  • Steam (fallback engine)JavaSteam (joshuatam's fork of SteamKit2) and Goldberg / gbe_fork (Detanup01 & contributors).
  • Graphics & Frame GenerationEden (native LSFG present path) and WinNative (design reference); DXVK (Philip Rebohle & contributors), VKD3D-Proton (Hans-Kristian Arntzen & contributors), Mesa / Turnip (the Freedreno & Mesa teams), and AMD FidelityFX (FSR).
  • Containers, launch & runtimeWine (WineHQ) and Proton / GE-Proton (Valve & GloriousEggroll); box64 (ptitSeb) and FEXCore (the FEX-Emu team).
  • Audio — Android AAudio, driven by our own DirectAudio endpoint.
  • The app itselfWinlator (brunodev85) and its Cmod lineage; GameNative (GPL-3.0) for the Steam session-hardening and present paths.

Steam is a trademark of Valve Corporation; EA, EA Desktop, Origin, Need for Speed and Frostbite are trademarks of Electronic Arts Inc.; GOG is a trademark of GOG sp. z o.o.; Epic Games Store is a trademark of Epic Games, Inc.; Amazon is a trademark of Amazon.com, Inc.; other names are trademarks of their respective owners. Bannerlator is an independent project — not affiliated with or endorsed by any of them. Each component remains under its own license.


Entirely app-side — no ImageFS reinstall. Install over 3.0.7; everything carries over.