Repository navigation
Bannerlator 3.1.8
Run Windows apps and games on Android — no PC and no root required.
3.1.8 lets you move a game to another container, installs a GOG game's prerequisites without opening the container, and makes Visual C++ really install. It also fixes GOG games that restart themselves (DOOM (2016)), the GOG sign-in check and the GOG download bar, and Xbox libraries that stayed empty for some accounts.
- Move a game to another container: from the game's settings, with its saves, its files and the components it needs.
- GOG prerequisites without opening the container: Visual C++, DirectX, .NET and the rest install straight from Windows components, with a progress window.
- Visual C++ that really installs: MFC is included now, and a container only counts it as installed when Microsoft's files are really there.
- GOG: games that restart themselves stay open, sign-in gets past the "I'm human" check, and the download bar shows real progress.
- Xbox: accounts whose library stayed empty can download again (from devSharaku's DroidDeck change).
✅ Nothing to set up. Update the app. Containers keep everything. Take the v16 layer updates from the catalog when a container offers them.
⬇️ Small update. On 3.1.7 the in-app updater downloads about 27 MB; on 3.1.6 about 139 MB — instead of the whole app (about 578 MB). Older versions, first installs and this page give the full APK.
⚠️ Not tried on a device in this release: the GOG download progress bar and the GOG sign-in "I'm human" check. Please report if either misbehaves.
What's New — everything since 3.1.7
📦 Move a game to another container
- From the game's settings › Move, pick the container. The game's saves come along (only save folders whose name matches the game), its files on C:, and the Windows components the new container is missing.
- Older CODEX saves (under
%APPDATA%\Steam\CODEX) are found too, so a career like DiRT 3's carries over, and the save backups find them as well.
✅ Device-tested on the Pocket FIT: DiRT 3 moved to another container and its career continued there.
🧰 GOG prerequisites without opening the container
- When you add a GOG game to a container, Bannerlator offers to install what GOG says the game needs. Visual C++, .NET, DirectX, PhysX, XNA and OpenAL now install straight from Windows components — no setup windows, and nothing to download from GOG.
- A progress window lists each item and what it is installed as, with its download and install progress. Hide keeps it going in the background.
- GOG's DirectX maps to d3dx9, d3dx11, the shader compiler 43, XACT (32- and 64-bit) and XAudio 2.7.
- Only an item with no matching component uses GOG's own installer, and only when you tap Use GOG's installer (that one opens the container).
- One install at a time: a second tap says it is already running, so two installs can no longer get in each other's way.
- New look: the container picker, Added to Shortcuts and the prerequisites windows on the GOG game page now match the rest of the store.
✅ Device-tested on the Pocket FIT: DOOM (2016)'s Visual C++ 2015 and DirectX installed from Windows components into two containers, with no container window; Microsoft's files in place afterwards.
🧩 Visual C++ that really installs
- Visual C++ 2015–2022 now includes MFC (Microsoft's 14.51 files, 64- and 32-bit). Games that need it — DOOM (2016)'s Razer Chroma support — no longer close at start.
- "Installed" means installed: Visual C++ only shows as installed when Microsoft's files are really in the container. If they are missing, it shows as not installed, and installing it again fixes it.
- Each container keeps its own list: a new container no longer inherits the list of a deleted container with the same number, and a copied container keeps the original's list.
- Better suggestions for games you add yourself: Bannerlator also reads the DLLs next to the game's exe, so it can suggest Visual C++ for games that load it only while running.
✅ Device-tested on the Pocket FIT: a container that wrongly listed Visual C++ now shows it as not installed; installing it placed all 51 of Microsoft's files, MFC included; DOOM (2016) recommends Visual C++ because of its Chroma DLL.
🟣 GOG
- Games that restart themselves stay open. DOOM (2016) starts
DOOMx64.exe, which restarts asDOOMx64vk.exe; Bannerlator follows it instead of closing the game. - Sign-in gets past Cloudflare's "I'm human" check: the login page now uses the phone's own browser identity, the same fix as DroidDeck's (by Diego Ramos).
- Download progress you can trust: the bar follows the bytes really downloaded and shows speed and time left (it used to stay at 15 % for a long time).
✅ Device-tested on the Pocket FIT: DOOM (2016) through
DOOMx64.exehanded over to the Vulkan exe and kept running, then exited cleanly.
⚠️ The download bar and the sign-in check were not tried on a device in this release.
🟩 Xbox
- Empty library and failed downloads fixed for Microsoft accounts that get a different kind of sign-in ticket: the download backend moves to Xodus Nexus 0.2.12, ported from devSharaku's DroidDeck change (#1729).
✅ Checked on the Pocket FIT with the new backend: the library loads, and a 92 GB download (DOOM Eternal) finished and the game started. The account here was not one of the affected ones.
🍷 Proton layers v16 (in the catalog)
- v16 fixes a crash in Windows service calls on arm64ec: GOG Galaxy games such as DOOM (2016) closed at start, and the EA app's background service failed the same way. Proton 11.0-2, GE-Proton 11.0-9, DroidDeck-Proton 11.0-11.1, Proton 10.0-4 and GE-Proton 10.0-34 (release notes). They work with older app versions too.
✅ Device-tested on the Pocket FIT: DroidDeck-Proton 11.0-11.1 arm64ec — DOOM (2016) (GOG) reaches its menus at 60 fps. The other layers are built from the same change and were not launched.
⚠️ Carried over — still open
- GOG: the download progress bar and the sign-in check were not tried on a device in this release. There is no d3dx10 component yet, so a game that needs it still has to use GOG's DirectX installer.
- 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. Valor Mortis was not played past its shader compilation. DOOM Eternal stays on Bethesda's notice screen.
- Xbox Cloud Gaming: touch controls have not been tried; the native player is experimental. The Win-FG fix has not been re-tested in a Wine game.
- 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).
- Chinese / Japanese / Korean text: not yet tested with a game.
- Wine Mono: a .NET program has not been run on a Mono installed this way yet. Mono's setup steps that need its own code (Wine's placeholder .NET files) can't run outside the container.
- v16 layers: only DroidDeck-Proton 11.0-11.1 arm64ec was launched on the device.
- Deck style: broadly reworked — please report anything that looks or navigates wrong, with a screenshot.
- BANNERIN: if a controller misbehaves in a game, please report it with the game and the controller type. On Wine 9.5 and other older Wine builds, Game Controllers' DInput tab can't play effects (that Wine's control panel; games are not affected).
- Windows components: Steam games you added yourself but don't own can't be looked up on Steam yet; GOG and Epic games installed before 3.1.7 have no saved dependency list.
- Everything listed as open in 3.1.6 is unchanged.
📦 Where to get Proton 9 (tap to expand)
The APK does not bundle Proton 9 — Wine installs from the in-app catalog on first run. The Linux Steam client does not use these layers at all: its games run through Valve's own ARM64 Proton.
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.)
📜 Every change since 3.1.7 — 20 merged, oldest first
- Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115108_Bannerlator_Bionic_Ludashi.jpg ·
65472bb9 - Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115113_Bannerlator_Bionic_Ludashi.jpg ·
0eced2ba - Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115122_Bannerlator_Bionic_Ludashi.jpg ·
8e9aadb2 - Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115131_Bannerlator_Bionic_Ludashi.jpg ·
42d52bf0 - Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115138_Bannerlator_Bionic_Ludashi.jpg ·
74c9a533 - Mali-report 2026-10-27T14-52-46-713a77: log Screenshot_20261027_115142_Bannerlator_Bionic_Ludashi.jpg ·
3ce9bcee - Mali-report 2026-10-27T14-52-46-713a77: data ·
a0a5d0d7 - Mali-report 2026-10-27T14-52-46-713a77: page ·
76b8a379 - Mali-report 2026-10-27T14-52-46-713a77: index ·
b74261e6 - Games: move a game to another container from its settings ·
ad0d41f9 - Games: move dialog brings saves, C: game files and missing extras ·
73a0a67f - Move game: only bring save folders whose name matches the game ·
84cfc556 - Xbox backend: Nexus 0.2.12 and compact JWE tickets (DroidDeck #1729), parallel downloads rebased ·
47502963 - Save backups: find older CODEX saves under %APPDATA%\Steam\CODEX<appid> ·
93488d58 - GOG download progress from bytes + auto-close follows relaunched games —
fix/combined-gog-autoclose·03d9739c - GOG login uses the browser's own user agent so Cloudflare's check passes —
fix/gog-login-cloudflare·edcb77ae - Visual C++ components count only when their files are there —
fix/vcredist-files·6b481273 - GOG prerequisites from Win Components, Compose dialogs —
feat/gog-prereqs-components·3be00eff - Release 3.1.8: versionCode 104, notes and README ·
bee2a7bc - 3.1.8 notes: update sizes (about 27 MB from 3.1.7, 139 MB from 3.1.6, measured with apk_delta.py) ·
2670dfe4
🙏 Credits (tap to expand)
3.1.8: the GOG sign-in fix follows DroidDeck #1500 by Diego Ramos (diegodru); the Xbox ticket fix is devSharaku's DroidDeck #1729, on Xodus Nexus 0.2.12 by Dominik Svoboda (domsvoboda). The prerequisites map GOG's dependency list to Windows components; those are Microsoft's redistributables (Visual C++, DirectX, .NET, XNA), NVIDIA PhysX and OpenAL Soft. The v16 layers re-apply Valve's Avoid delay importing rpcrt4 by Billy Laws (credits in the layer release). The Visual C++ / MFC fixes came from a DOOM (2016) crash on a Galaxy Fold.
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), and the ARM64 Visual C++ runtime for arm64ec containers is his too (#627, winlator-contents #28).
Xbox Cloud Gaming: the player's WebRTC client and stream protocol are Greenlight by UnknownSKL (Jim Kroon) (MIT), and the cloud-gaming sign-in follows his xal-node; the H.264 preference, bitrate cap, sharpening, Stop quality drops and the cloud title lists follow Better xCloud by redphx (MIT). The native player uses Google's WebRTC library (BSD, the webrtc-sdk Android build). The colour, deband, FXAA, Toon, CRT and NTSC effects are Bannerlator's own.
The Steam changes in #613–#617 are by community contributor MGamer404 — thank you.
BANNERIN (controller transport, force-feedback engine and the BANNERIN XInput DLLs) is original work written for Bannerlator. The evdev layer it plugs into comes from Winlator by brunodev85; Direct XInput's forward mode uses Wine's own XInput, and Wine's SDL bus and DirectInput carry the controller and its force feedback. The XInput DLLs are built with llvm-mingw (Martin Storsjö) and checked under Hangover and FEX-Emu.
The component recommendations and the revert-on-remove model follow DroidDeck's Windows components. Wine Mono is by Esme (madewokherd) and the Wine Mono contributors. Sora and Nunito Sans (SIL Open Font License) are the Deck style's typefaces.
The v15 layers carry fixes from GameNative's proton-wine (per patch, credited in the layer release); DroidDeck-Proton 11.0-11.1 is the Android build of DroidDeck-Proton on Valve's Wine with GloriousEggroll's GE-Proton and CachyOS fixes. The Chinese / Japanese / Korean text fix came from xxydbc's report in the BannerHub Discord.
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.6 still applies: Headless Steam and the Steam bridge, the SSBS fix (Wine MR 12262 by Jacek Caban, found by Sonicadvance1), the Mali PanVK work (FristOneRR), winhandler.exe (Winlator by brunodev85), the cutscene fixes (NelloKudo, GloriousEggroll, Valve, GameNative, Wine), Proton-CachyOS (CachyOS, Proton-EM), box64 (ptitSeb), FEX-Emu, DXVK, VKD3D-Proton, Wine, Proton / GE-Proton, SDL, SteamKit2 and Wayland.
Entirely app-side — no ImageFS reinstall. Install over 3.1.7; everything carries over.
