Skip to content

Bannerlator 3.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Nov 05:49
· 83 commits to main since this release

Bannerlator

Bannerlator 3.2.0

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

3.2.0 app-side update Lab interface XMB with a Steam Deck-style Home Windows Steam client Import the games you already have

3.2.0 is everything since 3.1.8: a new controller-first Lab interface, a reworked XMB with a Steam Deck-style Home, the Windows Steam client, one look for every store with download locations and importing the games you already have, a new file manager and text editor, menu sounds, and the Xbox store on Nexus 0.2.15. It also brings mods per game, yserver as an optional X server, 2× WFG frame generation and many store fixes.

  • Lab interface: a dashboard home, game pages, settings, Contents and one in-game menu built for a controller, with game art behind them, 32 languages and a first-run setup that downloads what a new container needs.
  • XMB update (by MGamer404): a Steam Deck-style Home, Stores, Downloads and Friends on one tabs page, a new in-game menu, and touch everywhere.
  • Windows Steam client: add Valve's 64-bit Steam client to a container; the games from Bannerlator's Steam store show as installed in it, and it can start in Big Picture.
  • Stores: one look for Steam, Epic, GOG, Amazon and Xbox, a download location for each store, and + Import game library turns game folders you already have into installed games.
  • File manager and text editor: archives that open like folders, two panes, a text editor that keeps a file's encoding, and more formats to unpack.

✅ Nothing to set up. Update the app; containers and games keep everything. An update keeps your interface style and theme — Lab and Carbon & Ember are only the start for new installs (try Lab or XMB in Settings › Appearance › Interface Style). Each container unpacks its extra libraries once more on its first start after the update (a few seconds).

⬇️ Small update. On 3.1.8 the in-app updater downloads about 93 MB; on 3.1.9-pre2 about 51 MB and on 3.1.9-pre1 about 59 MB — instead of the whole app (about 601 MB). Older versions, first installs and this page give the full APK.

⚠️ Not tried on a device in this release: the XMB update, the file manager, the text editor and the new unpack formats, the Mali changes, the per-game Epic fixes and the fixes from El_Espectro's thread. Please report what misbehaves, with a screenshot.

What's New — everything since 3.1.8

🔁 What changes when you update

  • Stores look new in every interface, Classic and XMB included: card views, full-art game pages, Steam's Add to Library on the game page. The Steam game page no longer shows the Online pill.
  • Touch and Aim mode replace Relative Mouse and Cursor to Touch. Your old choice carries over; the new default is Aim Auto.
  • Steam downloads follow the app's language, and optional DLC is skipped.
  • XMB draws at its own size (100 %) with its own size sliders, and no longer follows the phone's Display size or Font size.
  • Menu sounds are off until you switch them on (Settings › Sounds).
  • Games see the device's name as their computer name (some online games need it). HOSTNAME_FIX_DISABLE=1 in a game's environment turns it off.
  • New internal Amazon installs go to drive Z:.
  • Lab: controller settings moved to a Controller tab in container settings.
  • The app is about 5 MB bigger (yserver is included).

🧪 Lab interface style

  • Settings › Appearance › Interface Style now offers Lab next to Classic, Deck and XMB: a dashboard home (a big tile for the selected game, your recent games, storage and quick actions), a rail in landscape and a drawer in portrait (swipe from the left edge).
  • Library and Stores pages, a game page with quick settings, and a game menu that slides in (long press a game, or ⋯).
  • Settings as Lab menus laid out like the Classic editors (same tabs, order and every option): app settings with Performance, Saves & cloud and Logs tabs; container, New container, All containers and game settings.
  • Contents (components, download sources, installed items), Controls (on-screen profiles, controller bindings, player slots) and the Save Manager, as Lab pages.
  • One in-game menu instead of the quick menu and the full menu: Quick first, then every page, a little under half the screen.
  • For the controller: L2/R2 change tabs everywhere, a ▶ launch and ⋯ options button on list rows, a visible focus on every row and button. Dialogs take Lab's look.
  • In the settings: a faint line between options, a ? beside every setting that has an explanation (or START on the focused row), and the Wayland adapter settings of Classic's gear — profile (Auto, Smooth, Fast, Compatibility), the single switches (present mode, asynchronous copy, zero-copy, client render fences, UBWC, DRM format modifiers, KGSL timing shim, subgroups) and the adapter report at the top of the Wayland game driver page.
  • Matches Classic: mods, Library sort and filter and removing several games at once, Contents search and repositories with Set as default and Undo, a container's layer update and revert, save backup and restore, and Appearance sizes from 50 to 150 %.
  • In-game menu: shows the game's art, icon and logo (Game details can pick separate in-game pictures), reopens on the page you left, and an open list takes the highlight.
  • + Download from source in the setting pickers (with Cancel), store badges on the cards, and Contents refreshes after a download.
  • Fits any size: Lab shrinks to fit at large display sizes; the side rail and Home scroll when they still don't fit (big text), and tile text wraps instead of being cut.
  • Display server switch (X server or yserver) at the top of Advanced in container and game settings, and a Controller tab in container settings.
  • Tapping the app icon brings back the page you left, and a game started from its home-screen icon counts as played.

✅ Device-tested on the Pocket FIT Elite (Adreno 830) and the Pocket FIT: Home, Library, game pages, container and game settings, the ? buttons, the adapter settings and report, the in-game art, Download from source, the fit and scroll at display sizes 345–540 and text sizes 0.85–2.0, and the Display server switch and Controller tab.

🖼️ Game art

Lab on the Pocket FIT on a TV: MIO's art behind Home and its trailer in the big tile

Lab on the Pocket FIT, on a TV: MIO's art behind Home and its trailer playing in the big tile. Watch the video (9 s, MP4).

  • Game art background (Settings › Appearance, on by default in Lab): the selected game's art fills Home and the Library behind the panels, and stays on its game page. Panels over the art can be Solid, Glass or Clear, with the grid on or off.
  • 3D art (a slow drift of the art in depth) and previews (the game's trailer, muted unless you switch the sound on, behind Home's big tile; on Wi-Fi only unless you change it).
  • Pictures come from the game's linked Steam app, else from a Steam search by name, else from SteamGridDB, so games from other stores get sharp backgrounds too.
  • Game details (a game's ⋯ menu): rename, link it to a Steam app, and pick its Cover, Wide cover, Background, Logo and Icon from Steam, SteamGridDB or a file; the logo's place and size; the preview clip; and the game's own background settings.
  • Library cards: covers, wide covers or icons, in three sizes.

✅ Device-tested on the Pocket FIT (the preview above, on a TV) and the Pocket FIT Elite: the game's art behind Home and the Library, its trailer in Home's big tile, 3D art and Game details.

🚀 First-run setup

  • New installs start in Lab with the Carbon & Ember theme and 100 % interface and text size. Updates keep their style, theme and sizes.
  • Your first container (a new step after the base system install): pick from lists with a recommended choice each — Proton (latest DroidDeck Proton arm64ec), DXVK (dxvk-gplasync 2.4.1 pre-reg), VKD3D (latest stable), FEXCore (latest -unix build), WOWBox64 (latest Hybrid nightly) and a Banners-Turnip driver matched to your Adreno GPU (Banners-AIO). Name, display backend (Wayland when the Proton supports it), FEXCore and WOWBox64 presets, DirectAudio with the microphone, the 60 fps limiter, Show FPS and all CPU cores are set too. Create downloads it all and makes the container.
  • Portrait: the steps show as a row of circles at the top.
  • Allow notifications works on Android 13 and newer (it opens the app's notification settings, as the app can't show Android's prompt).

✅ Device-tested on the Pocket FIT Elite with fresh installs: Lab with Carbon & Ember from the first screen, the step circles, the notifications button, and the container step (every pick and setting checked in the created container).

🌐 Lab in 32 languages

  • Appearance › Language changes Lab's screens, settings names, options and explanations: العربية, Български, Čeština, Dansk, Deutsch, Ελληνικά, Español (España and Latinoamérica), Suomi, Français, हिन्दी, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Bahasa Melayu, Norsk bokmål, Nederlands, Polski, Português (Brasil and Portugal), Română, Русский, Svenska, ไทย, Türkçe, Українська, Tiếng Việt and Chinese (Simplified, Hong Kong, Taiwan).
  • Corrections are welcome: each language is one file, app/src/main/res/values-<language>/strings_lab.xml.

🎮 XMB

By community contributor MGamer404 (#638 in 3.1.9-pre1 and #660 now) — thank you.

  • Settings › Appearance › Interface Style › XMB: a console-style interface for controllers, now with a Steam Deck-style Home — your library as one row of covers over the art of the game you're on, the latest game as a big wide card; press A and its options slide in underneath.
  • Stores, Downloads and Friends on one tabs page (press Down from the games, or swipe up). Downloads shows what's downloading, with pause, resume and cancel for Steam and Epic.
  • A game's Settings opens its Shortcut settings page over the game's blurred art; your own changes for that game are marked, with Reset to container.
  • In-game menu in XMB's look: one drawer with the frame limiter, screen, controls and the rest, as Lab has.
  • On-screen keyboard made for controllers and touch, also inside games (the keyboard button, or Select + X).
  • Touch everywhere, a gliding highlight, menu sounds on every page, Y search that works with a controller, and pop-ups redesigned for a landscape phone.
  • Its own size: XMB draws at a fixed size with its own Interface scale and Font size, so the phone's Display size can't break its layout.

🖥️ Windows Steam client

  • Add the Windows Steam client (64-bit) from Valve, on internal storage or the SD card. It gets a badge and sits first in the library; removing its shortcut offers to uninstall it.
  • Your games in Steam: games installed through Bannerlator's Steam store show as installed in the client (a shared library folder on each drive), and your other games appear in it as non-Steam games.
  • Start in Big Picture (a switch), with Big Picture's menus drawn on the GPU; the Menu button acts as Steam's Guide button.
  • The 64-bit client starts without manual fixes. Bannerlator sets Steam up for it: X11 and the 64-bit fix, a SteamLibrary folder on each drive that has none, and your games in Steam's list.

✅ Device-tested on the Pocket FIT (adding the client, store games shown as installed, Big Picture) and the Pocket FIT Elite (the 64-bit client starting, the Menu button).

🛒 Stores

  • One look for every store (Steam, Epic, GOG, Amazon, Xbox) in every interface: card views, a tap opens the game's page, full-art game pages with the cover beside the Install button, and a download line with speed and time left.
  • Download location for each store: internal storage, an SD card or USB drive, or a folder you pick, with a default for each store. Updates stay in their folder, and cancelling an update no longer deletes the installed game.
  • + Import game library (Steam, Epic, GOG, Amazon): folders of games you already have become installed games. Only missing files download, and an imported folder is never deleted. Steam also offers Use a folder I already have.
  • Game names in your language for Steam, GOG and Xbox, also on Lab's tiles.
  • Repairs: a game whose folder moved repairs its shortcut when it starts, stale Downloads rows go away, the exe pick skips macOS leftovers (._*.exe), and a GOG import stops with a message instead of installing somewhere else.

✅ Device-tested on the Pocket FIT Elite (download locations and import for all four stores, the repairs) and the Pocket FIT (the store pages, names in Chinese).

🟦 Steam

  • Games download and run in the app's language, with a choice per game; optional DLC is skipped.
  • Cloud saves tab works on the default download engine.
  • A compact download speed picker that fits landscape, and download bar text you can read over the fill.

✅ Device-tested: Counter-Strike 2 in Chinese on the Pocket FIT; the Cloud saves tab and the download bar on the Pocket FIT Elite.

⬛ Epic and Ubisoft

  • Epic downloads no longer stop with "Download failed" (#657, MGamer404), show their size and speed, and can be paused and resumed (#660, MGamer404).
  • Ubisoft games from Steam and Epic: when the container has no Ubisoft Connect yet, Bannerlator offers to set it up before the game starts (#658, MGamer404).
  • Per-game fixes now apply (Hogwarts Legacy, Oblivion, Fallout 3, Fallout: New Vegas, Kingdom Hearts III), and Trover Saves the Universe gets one.
  • Manifest, sign-in and library sync fixes, no false "Up to date", and games start in the app's language.
  • Online games: a computer-name fix for games that use Epic Online Services.

✅ Device-tested: Metalstorm starts and signs in to Epic's online services on the Pocket FIT.

🟩 Xbox

  • The newer Xbox backend (Nexus 0.2.15) and runtime (11.0-20261102), with their sign-in, cloud-save and DLC fixes; DLC now mounts for games the app starts.
  • Search also asks xbox.com, so console-first PC games show up (Knights of the Old Republic, Conker, Halo).

✅ Device-tested on the Pocket FIT: library sync with Game Pass, the cloud-gaming sign-in, a download and launch (Brotato) with in-game sign-in, and search. The 25 original-Xbox games on PC are small launchers that most likely won't run.

🧱 Display, X server and frame generation

  • yserver, a newer X server included in the app, as an option per container or game (Advanced › Display server). The HUD shows the game's real frame rate on it.
  • The X server no longer crashes the app on requests it doesn't know, and a game stays in front of console windows.
  • Mouse: 7-button mice, button releases go to the right window, and Wine gets a certificate bundle (for HTTPS in games).
  • WFG frame generation (2×), a third frame-generation engine, with a guard against added input lag.

✅ Device-tested on the Pocket FIT: games and the Windows Steam client on yserver, the X server fixes, WFG on Wayland.

🎯 Controls, drivers and components

  • Touch: Touchpad, Direct or Touchscreen, and Aim mode Auto, On or Off (they replace Relative Mouse and Cursor to Touch; your choice carries over). Fixes the view spinning after a touch.
  • Driver installs say where the driver went or why it was refused, and offer Download and replace.
  • Box64EC uses the version the settings show.

✅ Device-tested: Touch and Aim on Wayland on the Pocket FIT Elite; Box64EC on the Pocket FIT; the driver messages partly on the Elite.

🔊 Menu sounds

  • Settings › Sounds: menu sounds from Steam's Big Picture pack or a DeckThemes / Audio Loader pack, in one Sound pack list (Preview, Apply, Delete, + Install a pack). Off by default.

✅ The Big Picture pack on the Pocket FIT Elite.

🗂️ A new file manager

The File Manager is rebuilt, in the look of BFE (Banners File Explorer). It is the same screen under the File Manager tab, Deck's Tools › Files, the Log Manager's folder view, and every "choose a file / folder" screen in the app.

  • Home: tiles for internal storage and SD cards (used / total), Downloads, Pictures, Documents, Games, each container's C: drive, the system drive (Z:) and your Favorites.
  • Getting around: tap any part of the path to jump there; Back, Up and Home on the toolbar; list, compact or grid; folders and files each keep their own sort order (names with numbers sort in number order); search the folder, or every folder below it; hidden files on or off.
  • Select with a long press, then copy, cut, move, compress (zip or 7z), share, rename or delete. Copying shows its progress, can be cancelled, and asks what to do when a name already exists.
  • Two panes side by side in landscape (⋮ › Two panes), with Copy over and Move over.
  • Archives open like folders (zip, 7z, rar, tar, iso and the other formats 7-Zip lists): open a file inside, or take out only what you select, next to the archive, into a new folder, into the other pane or anywhere. Password-protected archives ask for the password.
  • Each file's ⋮ menu keeps Run (in a container), Add to Games, Fast Extract and Unpack, and adds Open as text, Open with, Compress, Share, Copy path and Properties (with the Windows Read-only and Hidden flags).
  • Controller: X on a row opens its menu and Select ticks it; in the Deck and XMB styles X is the toolbar menu and Y is search.

📝 Text viewer and editor

  • .ini, .cfg, .txt, .log, .json, .xml, .reg and other text files open in a viewer that stays smooth with big logs: find, line numbers, wrapping and text size.
  • Edit (the pencil) for files up to 4 MB: undo and redo, a row of symbol keys above the keyboard, and colours for ini, cfg, json, xml and scripts.
  • Save keeps the file as it was written: UTF-8 or UTF-16 (many Windows .ini files are UTF-16), its byte-order mark and its Windows or Linux line endings.
  • A file inside an archive opens read-only.

📦 More formats to unpack

  • New formats: lzip, lzop, LZ4, ECM CD images, ALZ and EGG (Korean archives), ACE, Amiga LZX, and Android OTA payload.bin (choose the partitions). The 7-Zip formats Bannerlator didn't offer before (msi, arj, lzh, chm, deb, rpm, apk, vmdk, vdi, qcow, squashfs and more) work too.
  • FreeArc repacks with extra layers: the Unpack screen reads the archive's layers before it starts and decodes the precomp ones itself. A layer it can't decode is named, and running the installer in a container is still offered.
  • Unpack and delete as it goes (a switch on the Unpack screen, off by default): for a download too big to keep next to what it unpacks.

🧩 Mods per game

  • A game's settings have a Mods section: REFramework (for RE Engine games) and Special K, downloaded from Bannerlator's own ARM64EC builds, plus Start with the game for a program such as a trainer or Cheat Engine.
  • The in-game drawer has a Mods tab with a card per mod (its build, its DLL, 32/64-bit and a button for its menu). REFramework's menu also opens with L3 + R3.
  • Switching a mod off removes its files from the game folder right away (Special K's logs too; its .ini settings stay), so the game starts as if it was never there.

✅ Device-tested on the Pocket FIT: Special K on Ninja Gaiden Sigma (switched off: its files gone and the .ini kept; switched on again: back in place, 60 fps). REFramework and Special K together ran in Resident Evil 2 during development; not re-run on this build.

🟠 Mali GPUs

Everything from the 3.1.8-mali-pre1 test build, now in the regular app, plus a fix for its crash:

  • PanVK driver downloads on Mali: PanVK-kbase by zenithblue-oss (made for Bannerlator), FristOneRR's PanVK and GunaCharanTeja's PanVK G615.
  • Faster BCn layer (Fcharan's build of leegao's BCn layer), a checkbox in the container's graphics driver settings on Mali. New: with the default wrapper it crashed the container (#642 and testers' reports), so Bannerlator now uses the GameNative wrapper for that launch, as WinlatorMali does.
  • A newer DX12 compat layer (leegao) for "Wrapper + compat + bcn".
  • GPU % and clock in the HUD on the newer Mali GPUs (G310 to G925 and Immortalis) from the GPU's own counters, plus MediaTek and Tensor fallbacks.
  • The X11 renderer uses a high-priority queue and a valid buffer format on Mali.
  • Community configs show how many Mali devices tried a config.

🌊 Wayland logs and Mali

  • Each game's Wayland logs go to its own log folder (wayland/, one per run), shown as "Wayland" in View logs and counted by the Log Manager.
  • Share logs (View logs, in every game menu) zips the game's whole log folder and opens Android's share sheet.
  • Mali: "System" on Wayland now runs the game on the phone's own driver (it fell back to a bundled Turnip before).

✅ Device-tested on the Pocket FIT Elite: the Wayland logs and Share logs.

🖥️ HUD, cursor and drivers

  • GPU load and clock in the HUD without root on Adreno phones where Android blocks the GPU files.
  • Auto-hide Cursor switch and Hide After (ms) in the drawer's Controls › Mouse; with it off, a game can't hide the pointer either. A finger always brings the pointer back (Wayland).
  • Driver cards in Contents › Download Components say which Adreno GPUs each driver is for, read from its name; no label when the name doesn't say.
  • MIO: Memories in Orbit and UNCHARTED: Legacy of Thieves Collection get Turnip's SSBO emulation by themselves (they need it on Adreno 7xx).

✅ Device-tested: the HUD reader on the Retroid Pocket Duo (Adreno 722); the cursor switch on the Pocket FIT Elite; MIO on the Pocket FIT (Adreno 750).

🔧 Smaller

  • File manager: no crash on phones whose storage lists a folder twice (#659); such a folder is shown, searched and sized once. The Containers screen's folder picker is fixed the same way.
  • Session FPS: each session's frame rate is counted and saved even with the overlay off (Settings › Performance › Save FPS of each session, on by default); with it off, Lab's tiles show playtime instead.
  • Containers: a new container shows in Add a game straight away, and the container editor's Create / Save buttons work by touch.
  • Back button: a page that handles B itself no longer gets a second back.
  • FEX presets Unreal Engine 3 and Performance (full x87), from WinlatorMali, at the end of the preset list.
  • The registry editor no longer crashes when a key can't be written.
  • From El_Espectro's thread: Cancel really stops component downloads; WOWBox64 is kept when switching between arm64ec layers; downloaded versions show straight away in the game dialog; the translator chip is right; picture-in-picture keeps the game running; Task Manager's memory updates; the Controls menu shows the on-screen pad.

⚠️ Carried over — still open

  • XMB update: not tried on a device yet. The Steam game page lost its Online / reconnect pill (every interface), and the plain Deck in-game menu picked up XMB's scroll spacing.
  • Lab: at the largest text sizes the app Settings page still shortens names; a controller can't scroll inside Home's tiles.
  • yserver: typing, the clipboard, frame generation and HDR not tried; OpenGL only works through EGL.
  • WFG: not tried on X11; there is no target frame rate setting.
  • Steam: optional DLC is always skipped (no opt-in yet); a language Steam refuses is still named on the game page.
  • Stores: Epic and Amazon names stay in English; the sign-in, Downloads and Friends screens keep the old look; the library count doesn't refresh after an import; Amazon uninstall has no confirmation.
  • Xbox: a game with DLC and the save-conflict choice not tried; offline play is not wired up; original-Xbox games on PC most likely won't run.
  • Epic: region codes and Epic's cloud saves are not done; the computer-name fix most likely does nothing on x86_64 Wine (Box64).
  • Windows Steam client: playing a linked store game from inside Steam not tried.
  • Drivers installed before this release show "Installed" only after downloading them again.
  • Not tried on a device: the file manager, the text editor, the new unpack formats, the Mali changes, the per-game Epic fixes and the fixes from El_Espectro's thread.
  • Everything listed as open in 3.1.8 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.8 — 146 merged, oldest first
  • Registry: no crash when a key cannot be written · 0d5a44fa
  • Drivers: PanVK download sources on Mali GPUs · b2596619
  • Mali compat: leegao compat_layer 22960fb3 · 0b83d707
  • Fex: Unreal Engine 3 and Performance (full x87) presets · 19e3e8db
  • Hud: MediaTek Mali GPU-load and Tensor voltage fallbacks · 1b0ecf9f
  • Community configs: Mali device count for Mali users · 1de7991a
  • Bcn: "Faster BCn layer" option on Mali (Fcharan build) · 8bec94c0
  • Hud: Mali GPU usage and clock from hardware counters (CSF Mali only) · 71872e3c
  • X11 renderer: Mali high-priority queue and valid AHB import format · fb78b77a
  • Mali-report 2026-11-01T02-41-20-06a422: data · 425f041d
  • Bcn: Faster BCn on Mali uses the GameNative wrapper · 9c6e7f1e
  • Epic downloads: fix "Download failed" on every game · b4c3364d
  • Ubisoft games: automatic Ubisoft Connect setup for Steam and Epic games · e1ba1381
  • XMB interface style and controller keyboard · ccd47f2e
  • File manager: new screen with Home, two panes, archives as folders and a text editor · 38401c87
  • File manager: unit tests for sorting, unique names and text encoding detection · 87528942
  • BFE extraction engine, tools and archive browsing API — feat/fm-revamp-unpack · 39874166
  • File manager: archives 7-Zip can't list go to the Unpack screen; Unpack offered for every format an engine handles · 02e0e813
  • Release 3.1.9-pre1: versionCode 105, notes and README · d30f15c8
  • Release 3.1.9-pre1: update size in the notes (65 MB from 3.1.8, 37 MB from the Mali test build) · fa4e9091
  • Simple interface style: full-screen controller launcher (Shelf, Rail, Focus) with game-art wallpaper and cover collage; compact in-game quick menu; new installs start in Simple · 4740062a
  • Simple home: keep every press but X/Y on the home, keep its place across pages, B on the Library does not close the app · f9224d5e
  • Simple layouts: read the screen width before nested layout scopes · 4ed83879
  • Simple home: pass the game data to the layouts so they redraw when the library loads · d423a2bb
  • Simple style on every page: hard corners (deckShape, square Material shapes), card depth, cover-collage backdrop, and a Simple frame per layout (Shelf/Focus header, Rail icon rail, Simple legend); L1/R1 on a page return to the Simple home's sections · 58d86db7
  • Simple: store logos on their brand colours on store tiles, rows and banners · d35f4121
  • DeckShape returns a CornerBasedShape so the Material theme shapes accept it · 30641bab
  • Simple settings menus: game, container, default-container and app settings drawn as Simple menus per layout on the same settings source; status bar hidden on every Simple page · 1ed72031
  • Simple list pages: Containers, Components (+ download sources), GPU drivers (+ driver sources), Controls and Tools as Simple menus over the existing data and actions; Simple navigation pushes pages over Home · 795b1cf3
  • Simple Appearance page: style, Simple layout, orientation, sizes, theme presets and accent colour as a Simple menu; Appearance links open it in Simple · ca823737
  • Simple pages: cache container game counts and the component list, follow install state, bring a settings page's lists into view before focusing them · b31ef902
  • Simple routes: import the nav graph extension · 9262c41a
  • Simple: container, New container, All containers and game settings laid out like the Classic editors (Classic tabs, order and names, every option, gear dialogs as pages, Container / This game tags) on the same settings source; New container in Simple; app settings show every option · 0bd13b42
  • Simple Classic menus: driver version id via GraphicsRows; place rows by identity (the X11 driver version and the Wayland compositor driver share an id) · 0a3250cf
  • Simple menus: no grey focus box (no default press/focus shading on Simple pages), lists keep still and scroll only when the focus would leave the screen (the Classic menu's list state no longer resets on every change), fixed-height titles so Unsaved does not move the page, Wayland Graphics Driver row back in Graphics (graphics.compositorDriver) · e32cd0fc
  • Simple pages: the game's art behind a game's settings is drawn by the shell edge to edge (no dark strips at the bar areas), the page collage starts from the last covers (no dark flash on open) and continues Home's drift, no dark band behind the page header · ae915ac4
  • Simple: no system-bar flash opening or leaving a page (the bar effect follows the full-screen flag in XMB only); Home's rows start from the last library so coming back keeps the focused game in view (and re-scroll when the row length changes) · baa4e4dd
  • Simple: focused Deck rows (Env Vars, Drives) get a flat tint, not the glow whose shadow showed as a dark band through the see-through panels; pages switch at once (no cross-fade showing the new header over the old page); a game's settings show its art from the first frame (from the route) · 222767e6
  • Lab UI (replaces Simple): dashboard home, Lab rail (landscape) / drawer (portrait) / top line, game page with quick settings, Library and Stores pages, graph-paper wallpaper, dark and light look with the theme's accent; Appearance and setup say Lab · a0eadb7f
  • Lab game page: the remove callback returns its result; Linux and Android entries open too · ee06ec2a
  • Lab game page: the remove callback returns its result · 8eb7f68e
  • Lab: a back arrow on the top line on every page but Home; portrait tab strips fit (other tabs as icons, no controller badges); list panels end after their last entry · f358019e
  • Lab storage: internal plus every SD card and USB drive (StorageRoots, as the Classic drawer), on the Storage tile and in the drawer (which follows Appearance's storage switches); refreshed every 20 s · 636d4352
  • Lab list pages: the section's main action as a last row (New container, Install from a file, New profile …) and a ⋯ options button on each item, so touch reaches both (Y and X still work) · ea8374fa
  • Lab: a long press on a game (Library, Recent) opens its quick menu, on a quick setting its full list; Lab's own pages get no second title bar · 7bb336cf
  • Lab portrait: a swipe from the left edge opens the drawer (a band of the edge kept from the system back gesture) · b84a9612
  • Lab: the drawer slides in and out over a fading shade and is slightly see-through; focus moves glide (eased row highlight in every Simple menu, eased Lab tiles with a slight lift, eased tab selection) · 74759d24
  • Lab drawer: less see-through (94 % opaque) · 57e57b50
  • Lab game menu: the game's actions (same list as the Deck menu) in a Lab panel that slides in from the right in landscape and up from the bottom in portrait, slightly see-through over a fading shade; replaces the Deck sheet on Home, Library and the game page · b39722ba
  • Lab lists: a ▶ launch button on each container (Start on a controller) and a long press for an item's options, as on games · f15a7dce
  • FPS saver: a session frame counter that runs with the overlay off (X11: the HUD window or the focused game window, Zink presenter; Wayland: every game frame), the session's average, 1% low and the last 24 averages saved with the game at exit; Lab Home: Last session tile with a chart, the Recent tile is the whole library in a scrolling row that picks the game in the big tile; game page: FPS chart over its sessions · d1275b18
  • Settings › Performance › Save FPS of each session (on by default): off stops the session frame count and saving, and the Lab tiles show playtime · e9e59215
  • Lab Home: the big tile's size goes on its cross-fade (inside, its weight did not apply and it took the whole row in landscape, hiding the library row, Storage and GPU drivers) · 4f6dc2c8
  • Lab: L2/R2 switch the tabs of list pages and of the game / container settings menus through the shell too, so they work wherever the controller focus is (as the app settings already did) · 966bc4c5
  • Simple / Lab tab rows: the selected tab stays in view (the row glides to it as L2/R2 step past the edge) in app settings, game / container settings and list pages · 827f47ad
  • Lab app Settings: one scrolling menu like the Classic Settings screen (categories as section headings, landscape section list to jump to, D-pad / touch), Logs as a tab (the Log Manager; L2/R2 switch Settings / Logs) · 529f0def
  • Lab: focused accent buttons (Play) get a white / dark ring and a bigger lift, so the controller highlight shows on them · 1f05fbba
  • Lab app Settings: Performance and Saves & cloud as tabs of their own (Settings | Performance | Saves & cloud | Logs; L2/R2 step through them) · bc6675db
  • Lab list rows: Right / Left step onto the row's ▶ (Launch) and ⋯ (Options) buttons with a visible highlight, A presses the highlighted one · 4e619775
  • Lab Contents: the rail's Drivers becomes Contents, Classic's Contents screen as Lab lists (Download components: repositories with their types, Installed with defaults, My files to reinstall, Linux runtime = Classic's tab), on the same view model and installers; download / reinstall buttons on rows; type badges, group headings and screen sections in the shared list · f7a938f8
  • Shell B: go back on release only for a press the shell saw go down; a page that handled B itself no longer gets a second back from the release (a repository went back to Home instead of Contents) · de4d6fe3
  • Lab Controls: Classic's Controls tabs as Lab lists (On-screen: profiles to pick, Edit layout button, rename / duplicate / export .icpx / .icp / delete, import, community profiles; Controller: the picked profile's Default and per-controller bindings, copy bindings, test rumble, remove, test and bind; Assign and Device: Classic's own player slots, gyroscope, Steam Controller and menu button sections) · d5fc1b81
  • Lab: Save Manager in the drawer and the rail (between Tools and Settings), named as in Classic; the Tools entry renamed to match · 3984d7d5
  • Lab Save Manager: the Lab title and a Steam / Custom / Epic / GOG / Settings tab row (L2/R2) in place of Classic's header and side rail, the content in a Lab panel over the wallpaper; the sync and backup lists unchanged · 48968cba
  • Lab Save Manager: missing Arrangement import · e55fe22b
  • Lab: Save Manager rows, their buttons and the settings switches as Lab rows with Lab's controller outline; the launch chooser in Lab's look for portrait and landscape (Lab frame, method tiles, option rows and switches with a focus ring, Cancel / Launch with focus starting on Launch) · d6f46e2b
  • Lab Save Manager: the screen body keeps the experimental Material opt-in (pull to refresh) · 6d2489b1
  • Lab: dialogs in Lab's look (square corners, Lab line and title font, Lab focus outline on option cards, list rows and buttons; Add games and its steps included); in-game quick menu in Lab's panel colours (Dark / Light), rows light up with the controller, square chips, a visible ring on accent buttons · 405bb2bd
  • Lab: dialog button outline fitted to the focused button's own pill; launcher switch ring hugs the switch (no 48 dp touch box); in-game menu pages scroll back to the top (title and notes) when the focused control fits there · fc5e6ceb
  • Lab in-game: one menu instead of the quick menu and the full menu, a little under half the screen (46 %, 420-600 dp): Quick first, then every full-menu page in a tab strip (L1/R1, X jumps Quick / last page), Lab panel, Pause / Exit footer; tighter rows, chips, buttons and scope chips in Lab · 70fd843c
  • Lab in-game menu: the page tabs are icons only (the open page's name is its title below) · fe1b32aa
  • Lab in 32 languages (Appearance › Language; Lab's screens, settings names, options and descriptions, in-game menu; DroidDeck's translations where the English matches, machine-drafted otherwise; Arabic right to left) — feat/lab-languages · 233ab7d4
  • Wayland: let "System" run the game on the phone's own driver on Mali · 78000ba3
  • New containers show in Add a game at once; touch Create/Save button in the container editor · 22ea9c7c
  • The game art strings in 32 languages, wrong translations fixed — feat/lab-art-strings · e930314f
  • Setup in Lab + Carbon & Ember for new installs, portrait step circles, notifications button, first-container step — fix/onboarding-lab-ember · d1caa3a2
  • New installs at 100 % interface and text size — feat/default-size-100 · db3253fc
  • More settings with recommended values in the first-container setup step — feat/setup-container-options · ec270146
  • Row lines, "?" help and the Wayland adapter settings in Lab — feat/lab-settings-polish · 47c5d7c3
  • The Wayland adapter strings in 32 languages, On / Off / Default labels fixed — feat/lab-polish-strings · 7e05a479
  • No file manager crash when the phone lists a folder twice (#659) — fix/fm-duplicate-entries · e584506a
  • Release 3.1.9-pre2: versionCode 106, notes and README · ce7f5b31
  • Game art preview (Pocket FIT on a TV) and device-tested note; update sizes · efbbfdfc
  • Mali-report 2026-11-09T02-04-57-9d1810: data · 2b5f7df0
  • Mali-report 2026-11-09T02-04-57-9d1810: page · 0701187d
  • Mali-report 2026-11-09T02-04-57-9d1810: index · 8a2f0cab
  • The game's art, icon and logo in Lab's in-game menu — feat/ingame-game-art · a0d3abc1
  • Touch (Touchpad / Direct / Touchscreen) + Aim mode (Auto / On / Off) — feat/touch-aim-mode · 3bcc6128
  • Drivers say where they went or why not; Installed from fact — fix/driver-install-status · 979ce857
  • Lab editor reads the Graphics lists when it opens — fix/lab-driver-list · 44d1ac3f
  • Lab store badges, relaunch resume, Contents and search fixes — fix/lab-badges-bugs · 822ee6fb
  • Lab reaches Classic parity (Mods, Library tools, Contents, Containers, Controls, translations) — feat/lab-parity · b121585e
  • Windows Steam client 64-bit switch, X11, per-storage libraries, Menu button = Guide — feat/steam-x64-auto · be84e768
  • Windows Steam client x64 add, storage choice, uninstall — feat/windows-steam-client · 2ccaacf5
  • Box64EC uses the shown version, x86 translator log line — fix/box64ec-default-version · 53cad678
  • Store games in Windows Steam, Big Picture, run-program picker, GPU drawing — feat/windows-steam-library · e850b0f4
  • Epic per-game fixes apply again; Trover Saves the Universe — fix/epic-game-fixes · e8cf80bb
  • Epic store bug fixes — fix/epic-store-bugs · c524ed38
  • Fixes from El_Espectro's "Minor bugs in 3.1.9-pre2" — fix/espectro-minor-bugs · 229ab05d
  • Mali-report 2026-11-11T08-17-24-bab383: log wayland-2026-11-11_16-04-27.log · 3550d7e9
  • Mali-report 2026-11-11T08-17-24-bab383: data · e31ea7cb
  • Mali-report 2026-11-11T08-17-24-bab383: page · 974508c9
  • Mali-report 2026-11-11T08-17-24-bab383: index · cb421007
  • Yserver as an opt-in X server (BANNER_YSERVER=1) — feat/yserver-spike · b95bde74
  • X server crash/desync fixes, game stays in front of console windows — fix/xserver-robustness · cb3901cf
  • Log the console-window rule — fix/xserver-console-log · 02577e6a
  • Yserver mode hides Wine's desktop for game shortcuts; HUD shows the game's frame rate — feat/yserver-hud-desktop · e0ba3ded
  • Yserver mode hides Wine's desktop for game shortcuts; HUD shows the game's frame rate (the real merge; e0ba3de only carried the log entry) — feat/yserver-hud-desktop · bd3bd1be
  • Every build bundles yserver (pinned release r1-pre1, sha256-checked) as libyserver.so — feat/yserver-bundle · b14ebc61
  • 7-button pointer map, button-release routing, Wine extra CA bundle, credit corrections — fix/upstream-small-fixes · dc938223
  • Lab home big tile shows the game played last — fix/lab-home-last-played · bcda2c55
  • Store game names in the app's language (Steam, GOG, Xbox) + Lab tiles — feat/store-name-language · 286bfbf3
  • WFG frame generator (WinNative, qwertypower) as a third native engine + present-queue guard — feat/wfg-engine · d140ea00
  • Steam games download and run in the app's language (per-game pick, download prompt, SteamLite-safe), skip optional DLC depots — feat/steam-game-language · d1719eab
  • Last played is stamped for every launch (home-screen icons too) — fix/last-played-any-launch · a208c671
  • Lab "+ Download from source" in setting pickers — feat/lab-download-from-source · d2336643
  • App icon keeps the page the user left — fix/launcher-resume · a9a69a46
  • Mali-report 2026-11-12T23-44-14-89c161: data · 8d1d18f0
  • Mali-report 2026-11-12T23-44-14-89c161: page · dd4084d5
  • Mali-report 2026-11-12T23-44-14-89c161: index · 2ca4c768
  • Epic hostname shim (GameNative #2009) + Present ConfigureNotify/cleanup (Ludashi 2d45b7b6) — fix/epic-hostname-present · dc9a4a4d
  • One Lab look for every store (cards, library views, full-art details, download speed and time left) — feat/store-revamp · 01bbf081
  • Details pages follow Steam's layout, tabs on top in portrait, in-game menu page and list focus — fix/store-details-layout · f0cba6f3
  • The Steam download speed picker is a compact Lab panel in landscape — fix/download-speed-dialog · 92b51fd9
  • Menu sounds (Steam Big Picture pack + DeckThemes / Audio Loader sound packs) — feat/ui-sounds · ecc153e4
  • One Sound pack list (preview / apply / delete, pack zip), Manage sound packs page removed — fix/ui-sounds-one-list · 208754bb
    • Import game library (Steam folders become installed games, only missing files download) and Use a folder I already have; adopted folders are never deleted — feat/steam-add-game-folders · fb01e774
  • Stores: shared download locations (internal / SD + USB / custom, default per store) + Epic picker; Epic updates keep their folder, cancel never deletes an installed game, guarded uninstall, records kept when a drive is unplugged, cloud saves find games on drives (WIP) · 984710b0
  • Stores: Amazon + GOG download location picker; Amazon updates keep their folder (no orphan copy), GOG remembers each game's location, GOG cancel during update/verify no longer deletes the game, guarded uninstalls, records kept for unplugged drives, GOG cloud saves find games on drives (WIP) · 1d9b7144
  • Steam: Custom folder, other drives and Use as default in the install dialog; import can make the folder the default download location · 4ce821ce
  • Steam install dialog: follow a default location changed while it is open · 2aa8e017
  • Slow-storage warning: shorter, and says Copy game to Drive C runs a copy (it copies; the original stays unless you delete it) · 49ff77c5
  • Epic, GOG, Amazon: + Import game library (folders matched to owned games, installed in place by each store's download; GOG asks for its folder name; cloud upload knows imported GOG folders) · 4bb539fd
  • Steam game page: download bar label readable over the fill · 1ecce243
  • GOG import: stop instead of falling back to another download type (installer-only games, folder-name mismatch), never report an import done elsewhere; Steam page uninstall also clears the Downloads & Library row · df23ff28
  • Exe pick skips macOS leftovers (._*.exe, __MACOSX) - Amazon Havendock picked ._Havendock.exe; Epic/GOG uninstall box says an imported folder stays · 9956bb24
  • Shortcut repair after a game moves, Steam Cloud saves tab on the Rust engine, Downloads & Library stale-row cleanup — fix/store-shortcut-cloud-rows · bad851ab
  • Xbox store search also asks xbox.com, so console-first PC games show up — fix/xbox-search · aac40e1d
  • Xbox backend Nexus 0.2.15 + runtime 11.0-20261102 — feat/xbox-nexus-update · f7f9189f
  • Lab UI shrinks to fit at large display sizes — fix/lab-auto-fit · 175aadd2
  • Lab rail and Home scroll when they do not fit, compact rail, readable tiles and chips — fix/lab-scroll-fallback · 56af63a1
  • Display server switch (X server / yserver) and container Controller tab — feat/lab-yserver-controller-tab · 042ae311
  • Pull request #660 — XMB-Update · ef7ca394
  • 3.2.0: versionCode 107, versionName 3.2.0 · 07720098
  • 3.2.0: release notes (everything since 3.1.8) and README version, section and credits · 33c7f21e
  • 3.2.0: update size line (93 MB from 3.1.8, 51 MB from 3.1.9-pre2, 59 MB from 3.1.9-pre1) · 0096399d

🙏 Credits (tap to expand)

3.2.0: the XMB update (#660) is by community contributor MGamer404 — thank you. yserver (MIT) is by Jos Dehaes, with the Wayland host by SetZero (joske/yserver #349). The Xbox store now runs on Nexus by Dominik Svoboda (domsvoboda): nexus-backend 0.2.15 (GPL-3.0, a fork of Xodus), nexus-runtime 11.0-20261102 and nexus-xgameruntime (LGPL-2.1). WFG is qwertypower's frame generator from WinNative (MIT), and the present-queue guard follows WinNative PR #797. From GameNative: the computer-name fix and Wine's certificate bundle (#2009 by Cole McCarren), the Trover fix (#1953 by Mo Kakwan (Wavewash)), button releases (#2110 by tapionallanaire), and the Epic fix list from its gamefixes. The 7-button mouse map is Seldom (teldommm)'s (Pipetto-crypto/winlator #120), and the Present notifications follow StevenMXZ's Ludashi work on brunodev85's Winlator. The Touch / Aim idea came from Max (MaxsTechReview) (DroidDeck #2053, #2280). Menu sounds use Valve's Steam Big Picture sounds and the Audio Loader format by EMERALD0874, with packs from DeckThemes. The Windows Steam client is Valve's, downloaded from Valve. Reports from El_Espectro, Dante, Ajay, babizigames, ziqing_0501 and Nn led to fixes in this release.

3.1.9-pre2: game art comes from Steam's store assets (Valve) and from SteamGridDB and its artists; the per-game artwork choices follow DroidDeck's artwork editor by Kurt Himebauch (xXJSONDeruloXx). Previews play with Google's Media3 / ExoPlayer (Apache-2.0). The setup step's catalogs are the winlator-contents and Nightlies lists, with DroidDeck-Proton, dxvk-gplasync, VKD3D-Proton, FEX-Emu, box64 (ptitSeb) and Banners-Turnip (Mesa Turnip). The Wayland adapter settings are Classic's gear on Pipetto-crypto's bionic Vulkan wrapper. Thanks to jebran0987 for reporting the file manager crash (#659).

3.1.9-pre1: the XMB style and controller keyboard (#638), the Epic download fix (#657) and the Ubisoft Connect setup (#658) are by community contributor MGamer404 — thank you. The file manager, the text viewer and editor and the unpack engines come from BFE (Banners File Explorer, GPL-3.0). Its tools are by Bulat Ziganshin (FreeArc unarc), Christian Schneider (precomp, with preflate by Dirk Steinke and packJPG / packMP3 by Matthias Stirner), Antonio Diaz Diaz (lunzip), Markus F.X.J. Oberhumer (lzop, LZO), Yann Collet (LZ4), Neill Corlett and alucryd (ecm-tools), kippler (unalz, xunazo), Marcel Lemke (UNACE), Gareth Davidson (amiga-lzx) and Lasse Collin (XZ for Java); the EGG reader follows Andrew Kolman's EggDotNet, and the OTA reader AOSP's update_engine format (licences in THIRD-PARTY-LICENSES.md). The Mali work is GunaCharanTeja (Fcharan)'s WinlatorMali (MIT: the BCn layer build, the GPU counter reader, the FEX presets, the registry fix and the Mali count), on leegao's bcn_layer and compat_layer (MIT), with PanVK by zenithblue-oss and FristOneRR. Thanks to Lloyd and Norman (BannerHub Discord) and xdbz08 (#642) for the Faster BCn crash reports. The mod manager downloads Bannerlator's ARM64EC builds of REFramework by praydog (MIT) and Special K by Andon M. Coleman (Kaldaien) and the SpecialKO contributors (GPL-3.0).

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.8 and before 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.8 or 3.1.9-pre2; everything carries over.