Repository navigation
Bannerlator 3.1.7-pre4
Pre-releaseBannerlator 3.1.7-pre4
Run Windows apps and games on Android — no PC and no root required.
3.1.7-pre4 adds an Xbox / PC Game Pass store. Sign in with your Microsoft account, download the PC games you own or have on Game Pass, and play them with a licensed launch. It also brings MGamer404's Steam changes, the Wayland adapter as the default, DirectAudio driver 1.4.0, and fixes for the on-screen controller and a sluggish Games screen.
- Xbox / PC Game Pass store: sign in, browse your library and Game Pass, download, add to your games and play — with cloud saves and your gamertag.
- Steam: switch between saved accounts, extra library folders, sort by Steam rating, and Goldberg fixes — from community contributor MGamer404.
- Wayland: the bundled adapter is the default, with profiles and smoother frames under GPU load.
- DirectAudio: support detected from the layer's files; driver 1.4.0.
- Fixes: the on-screen controller is seen by games that check for controllers only at start; big store art no longer makes the Games screen and side menu stutter.
✅ Nothing to set up. The Xbox store is a new tab next to Steam, GOG, Epic and Amazon. Your containers and games keep their settings.
⬇️ Smaller update. On 3.1.7-pre3 or 3.1.6 the in-app updater downloads about 126 MB instead of the whole app (about 550 MB). It is bigger than usual because the containers' template changed (AIO Graphics Test 2.2.0) and the Xbox store brings its own runtime. Older versions, first installs and this page give the full APK.
What's New — since 3.1.7-pre3
🟩 Xbox / PC Game Pass store
A fifth store, next to Steam, GOG, Epic and Amazon. Games are downloaded and run on your device — not streamed.
- Sign in with your Microsoft account on Microsoft's own page. The app shows your gamertag, never your sign-in email, and keeps the account out of logs.
- Library: the PC games you own plus PC Game Pass titles (with a Game Pass badge and filter), on art-shaped cards. Only games that have a PC version are listed.
- Downloads use several connections across all of Microsoft's download servers, split big files into chunks, show speed and time left, and resume after an app update. Library cards show Downloading N%.
- Add to games with the usual container picker; the card gets an XBOX label.
- Licensed launch: every launch checks your license with Microsoft and starts the game's own program — no Xbox app. The Xbox runtime the games talk to (sign-in, saves, store checks) is installed into the container for the session and put back afterwards.
- What games need is set up for you: the Visual C++ runtime a game declares is installed before its first launch; the Windows Runtime classes Xbox sign-in needs are registered; Proton 10 containers get the sign-in pieces they lack.
- Saves: a game's saves stay in the container, the Save Manager backs them up on exit, and cloud saves sync while you play and when you leave the game — from its own Quit or from the side menu (switch in the Xbox tab's settings, off by default).
- Games that ship Microsoft's own Xbox runtime (Cyberpunk 2077) use the app's instead, which works without Windows' Gaming Services. A per-game switch, Use the app's Xbox runtime (on by default), appears only for those games.
✅ Device-tested on the Pocket FIT: sign-in and gamertag; library (26 owned + 723 Game Pass, 437 with a PC version); owned and Game Pass downloads incl. resume after an app update; A Game About Digging A Hole (78 fps), BALL x PIT (225 fps, cloud saves uploaded on both ways of quitting), Brotato (427 fps) and High On Life (title screen, 171 fps) run; Cyberpunk 2077 reaches its main menu (~100 fps, D3D12).
⏳ First launch of a game with cloud saves can sit on its loading screen for a long while — the game is downloading your saves (Cyberpunk 2077: about 6 minutes here, others report 20–30). Leave the game in front: Android pauses a game in the background. Later launches are quick.
🚂 Steam
- Switch between saved Steam accounts without signing in again, by profile name (#615).
- Extra library folders: install Steam games into additional folders in the normal Steam layout; games imported from another client keep that client's files on uninstall (#616).
- Search and sort your Steam library by Steam rating (#617).
- Goldberg: no more black screens, errors are shown, and switching back to real Steam works (#613). Steam Cloud sync during Goldberg launches is a setting, on by default (#614).
🌊 Wayland
- The bundled Wayland adapter is the default whenever the container's graphics driver can carry it. The driver cog becomes adapter settings: a profile (Auto, Smooth, Fast, Compatibility) plus Advanced switches for present mode, asynchronous copy, zero-copy, render fences, UBWC, DRM modifiers, the KGSL timing fix and Subgroups, each explained in a line.
- Smoother frames under GPU load: the compositor's copy path no longer waits for the GPU on its only thread (34–86 ms stalls measured on an Adreno 6xx, 3–12 ms on the Pocket FIT), and zero-copy frames carry the game's own render fence, so they no longer reach the screen half drawn on older Adreno kernels.
- Native Vulkan games: subgroup support is passed through on Mesa drivers and BGRA formats are offered to native Vulkan programs — DOOM Eternal no longer quits on start or shows a black screen with zero-copy.
🔊 DirectAudio
- Support is detected from the layer's files instead of a fixed list, so new layers that ship the driver (11.0-9.1) are no longer greyed out.
- Driver 1.4.0 bundled; at launch the newest build wins — a layer's own newer driver is kept, an older one is upgraded.
✅ Device-tested on the Pocket FIT: BALL x PIT on Proton 11.0-9.1 with DirectAudio, the layer's driver upgraded 1.3.2 → 1.4.0.
🕹️ Controllers
- Direct XInput is on for new containers. Existing containers keep their setting.
- Controller input log: Log Manager › Controller input writes a pass/fail checklist per player (
controller.txt) to send when a game's controls don't work. Off by default. - DirectInput "visible" writes no registry entry again, as the old Exclusive Input off did — Watch Dogs 2's controls work again.
- On-screen controller: it takes its player slot before Wine starts, so games that look for controllers only at startup (Ender Lilies, Dark Souls III, Ninja Gaiden Sigma, Toy Story 2) see it. If touch controls stopped working for you on pre3, please try this build and tell us.
🛠️ Fixes
- Smoother Games screen and side menu: store art was saved and loaded at full size (Xbox posters are 1440×2160), which overflowed Android's image cache, so the grid and the side menu stuttered (73 ms frames measured). Covers and tile pictures are now kept at most 1200 px on their long side — existing ones load smaller, new ones are saved smaller. Measured on the Pocket FIT: 0 late frames.
- Xbox games crashed at start (Cyberpunk 2077's crash reporter closed it at once): the ARM64X build of BANNERIN's XInput DLL ran its ARM-only start-up code as PC code on every thread start. It now has none.
- winhandler.exe / wfm.exe are put back whenever a container's copy differs from the app's, so the Toy Story 2 black-screen fix can't be undone by a container update.
- New containers get AIO Graphics Test 2.2.0 and a Cursor Test in drive C.
⚠️ Known issues
- Xbox: Forza Horizon 5 does not start (its anti-tamper closes the game after the splash). The download notification updates too often (Android drops some updates). Some games need a long first launch while cloud saves download (see above).
- Steam (MGamer404's changes): switching between two saved accounts and a Goldberg Cold Client shortcut have not been device-tested yet.
- Download Manager: uninstalling a Steam game from its game page, or moving it, leaves its row in the library list until the list refreshes.
- Logs: Epic, GOG and Amazon user names are hidden by pattern only (the Steam and Xbox stores register theirs).
- Everything listed as open in 3.1.7-pre3 is unchanged.
🙏 Credits (tap to expand)
The Xbox store runs on Xodus (GPL-3.0, Rust) by Paweł Lidwin (imLinguin), Vidi0, ChristopherHX and the Xodus contributors, built for Android here, and on Xodus Nexus by Dominik Svoboda (domsvoboda) (MIT; its Wine modules LGPL-2.1) for the Xbox runtime, sign-in, saves and the launch view. The Android build recipe and launch flow follow DroidDeck's Xbox work by Kurt Himebauch (xXJSONDeruloXx) (DroidDeck #1156, #1164, #1170). The container-launch approach comes from MGamer404's xbox-container fork (PR #623).
The Steam changes in #613–#617 are by community contributor MGamer404 — thank you.
The Wayland adapter is built on Pipetto-crypto's bionic Vulkan wrapper; the frame-pacing work came from reports and logs by Hot_Ice (Adreno 7c+ Gen 3) and Vermillion (Adreno 830). DirectAudio (winedirectaudio, AAudio) is The412Banner's.
Everything credited in 3.1.7-pre3 and 3.1.6 still applies.
Entirely app-side — no ImageFS reinstall. Install over 3.1.7-pre3, 3.1.6 or any earlier 3.1.x; everything carries over.
