# Bannerlator 3.1.1
Run Windows apps and games on Android — no PC and no root required.
**3.1.1 adds an XMB view to the Games tab.** Scroll through your games side to side, the way the PlayStation 3's menu works, and open every setting and tool for the game in focus right there, without pop-ups — built for a controller, in portrait and landscape. **LSFG Native** gets two experimental options from community contributor **clintOnSky**: a lower **capture resolution** that makes frame generation much lighter on weaker phones, and support for phones whose stock driver only reports Vulkan 1.1. It also starts faster when you turn it on. New **v7 compatibility layers** bring a **Windows XP–style desktop** to all seven Proton layers.
> ⚠️ **The XMB view and the new LSFG Native options are new.** The XMB view has been tested on one handheld. The LSFG Native options are experimental, off by default, and were tested by their contributor on one phone. Both are opt-in: your Games tab and frame generation behave as before until you choose them.
> 📘 **New to LSFG Native? Read the plain-language guide: [LSFG Native Made Simple](https://the412banner.github.io/Bannerlator/lsfg-native-guide.html)** — updated for 3.1.0, now with a section on how LSFG Native differs from the old lsfg-vk. Why Max FPS × multiplier has to fit your screen's refresh rate, why a steady base matters, a live checker to try your own numbers, a cheat sheet and real-world fixes. Opens in any browser. The same rule applies to **Win-FG Native**, which always runs at 2×.
# What's New — everything since 3.1.0
## 🎮 XMB view for the Games tab
A fourth way to show your games, next to List, Grid and Compact. **Turn it on:** tap the view button at the top of the Games tab until you reach **XMB** (List → Grid → Compact → XMB).
- **Games run across, options run down.** The game in focus is shown bigger, with its title, container and resolution beside it, and an info panel with its store badges, settings chips, playtime, genres, year, Metacritic score and description. The background is an animated wave in your theme's accent colour, with the game's own art faded in.
- **Everything is inside it.** Pick an option and the XMB opens further columns instead of a pop-up, with a breadcrumb (*game › Settings › General*) so you know where you are:
- **Settings** — General (including the per-game audio settings, microphone and icon), Controller, Win Components, Env Vars, Advanced (Box64 / FEXCore versions and presets, CPU cores, startup services, ReShade), Driver configuration, DX wrapper configuration, Performance and Player slots.
- **Game Details** (including Steam search), **Properties**, **Clone to container**, **Remove**, **View logs**, **Community configs**, **Scrape cover**, **Copy to Drive C**, **Back up / Restore saves** and **Change executable**.
- Changes **save as you go** ("✓ Saved"). Dropdowns open a choices column, switches flip in place, text uses the keyboard, and anything that asks for confirmation opens on **Cancel**.
- Still on their own screens: Cloud Saves, Add to home screen, Export and Manage wrappers.
- **Made for a controller.** Left / right move between games, up / down between options, **A** picks, **B** goes back, **LB / RB** jump five games — and inside a menu, **LB / RB** switch between sections and **◀ ▶** change a value. On-screen hints appear when a controller is connected. Touch works too: swipe through the games, tap a cover to focus it, tap it again to play.
- **Portrait and landscape.** In portrait the covers are bigger and the info panel sits underneath. In landscape the status and navigation bars hide (swipe from the edge to bring them back). In both, the app's top bar turns see-through over the background.
Your other views are unchanged, and you can switch back at any time.
> ✅ **Tested on an AYANEO Pocket FIT** (Adreno 750), in portrait and landscape, with *Brawlhalla*: moving through games and menus with a controller, every Settings section and tool opening with the game's real values, values changed with **◀ ▶** and by text written straight to the game's settings (and changed back), confirmations opening on Cancel, and moving to the top bar and back. ⚠️ Three small follow-up fixes (text fields now open with the cursor at the end, no stale "✓ Saved", and Game Details and Properties now open on a harmless row) came after that test and have not been device-tested. Other screen sizes are untested.
## 🎞️ LSFG Native: lighter on weaker phones (experimental), and a faster start
From community contributor **clintOnSky** ([#512](https://github.com/The412Banner/Bannerlator/pull/512)), for phones that struggle to run LSFG Native at full screen resolution.
- **Capture resolution.** LSFG Native normally generates frames at your screen's full resolution. You can now run it lower and have the result scaled back up to your screen — far cheaper on the GPU, a softer picture. Choose **Panel** (the default, as before), **Game resolution** (the height the game really renders at, per-game screen size and render scale included), a height from the list, or a custom height. It is never lower than a quarter of your screen. Post effects, upscalers and render scale keep working at the chosen size. **Where:** a container's **Frame generation** settings (with LSFG Native selected) → **Experimental (LSFG Native)** → **Capture resolution**, and live in the in-game side menu under Frame generation.
- **LSFG on Vulkan 1.1 drivers (compat).** LSFG Native needs Vulkan 1.3, and many Adreno phones' stock drivers report only 1.1 — so until now the answer was *"pick a Turnip driver"*. If the stock driver has the extensions LSFG needs, this switch lets LSFG Native run on it anyway. It is in the container settings, and applies when a game that runs LSFG Native starts, including through a per-game override. If the driver still rejects the shaders, the game says so and frame generation goes back to Off.
- **The "can't run" message covers one more case.** A driver that loads the shaders but rejects them a moment later now gets the same plain message as the other failures, instead of leaving frame generation looking on while it does nothing. This applies to Win-FG Native too.
- **A faster start.** In some setups — a game running close to your screen's resolution, a lowered flow scale, or a lowered capture resolution — turning LSFG Native on built its shaders twice, once at default settings and again a moment later at yours, with the picture frozen meanwhile. That was a couple of seconds on an Adreno 750 and about 4 seconds on a stock driver. It now builds once. Spotted by clintOnSky.
With capture at **Panel** and the switch off, the picture pipeline is exactly as it was in 3.1.0. The screen fit, the Max FPS warning and Auto (match FPS) all work as before.
> ⚠️ **Experimental, and off by default.** Tested by its contributor on an **Adreno 710** phone, with Turnip and with the stock driver: at 720 the frame generation cost about 4.5 ms per generated frame, with CRT and CAS effects still showing; with the stock driver and the compat switch, a 30 fps game held 60 at 2×. Not yet tried on the Pocket FIT, where the compat switch cannot be tested (its Turnip driver already has Vulkan 1.3). The faster start has not been device-tested yet.
## 📦 New compatibility layers — versionCode 7: the Wine XP desktop
All seven Proton / GE-Proton layers were rebuilt (proton-wine release [`build-bionic-layers-20260911-xp`](https://github.com/The412Banner/proton-wine/releases/tag/build-bionic-layers-20260911-xp), now the in-app catalog default). They install into a new `-arm64ec-7` slot next to v6's `-6`, and a container on a v6 layer shows **Update layer → v7** on its card — games, saves and settings are kept, and **Revert layer** in the ⋮ menu puts v6 back.
- **A Windows XP desktop.** Wine's desktop now looks like Windows XP: the green **start** button, a start menu with your programs and their icons (All Programs included), task buttons, and a clock with the day and date. The taskbar can be dragged to one, two or three rows.
- **XP window frames** — title bars and window edges in the XP style for every program, games included. Only the drawing changes, never the size of anything a game can measure.
- **XP-style buttons and controls** — buttons, check boxes, tabs, scroll bars, lists and the rest, in the XP look.
- **Colour schemes and dark mode** — Blue, Olive Green and Silver, each with a dark twin (navy, moss, graphite) when the app uses its dark theme. Switch between them in **Display Properties**, live.
- **Turn Off really ends the session** — the start menu's Turn Off now closes every program and the desktop, instead of leaving an empty desktop running.
- **New containers start in full XP Blue.** Containers you update to v7 get it too; **Display Properties → Windows and buttons → Classic** switches back to the plain Wine look.
- **Nothing else changed versus v6** — the controller fix and everything before it carry over. Only the desktop and the way windows are drawn changed: no emulation, graphics, audio or input changes.
> ✅ **Tested on GE-Proton 11.0-6** (Adreno 750): the taskbar, start menu, Display Properties, window frames including game windows, light and dark mode, Turn Off, and a brand-new container starting in full XP. The other six layers carry the same changes — checked inside each built file — but have not been booted on a device. Proton 9 and the older Nightlies Wine builds are not part of this update.
## 🔧 Smaller
- **Per-game settings pop-up (List, Grid and Compact views):** **L1 / R1** now switch between its sections from anywhere, wrapping around, and the cursor lands on the new section's first setting. Before, in landscape, the section list could only be reached at the very end.
- **Steam Controller over a USB cable is now tested**, by **TAR**, and works. The first time, Android asks you to allow access.
- **The LSFG Native guide** has a new section on how LSFG Native differs from the retired lsfg-vk engine.
## ⚠️ Carried over — still open
- **Win-FG Native has had limited device testing.** It is proven on Adreno 750; other GPUs are unknown. It is off by default.
- **The Steam Controller's wireless puck** is supported but still untested.
- **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.
- **Origin-era EA titles ask for the EA sign-in on every launch**, and EA counts every one. 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.
- **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.
- **The Java Steam engine fallback is still present.** Its removal has moved to a later release.
📦 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.
> ⚠️ **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.1.0 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 (tap to expand)
**Thanks to [clintOnSky](https://github.com/clintOnSky)** for LSFG Native's capture resolution and Vulkan 1.1 driver support ([#512](https://github.com/The412Banner/Bannerlator/pull/512)) — built, tested on his own Adreno 710 and reworked through a full review — and for spotting the double shader build behind the slow start.
**Thanks to TAR** for testing the Steam Controller over a USB cable.
The XMB view and the Wine XP desktop are original work by **The412Banner** — the XMB view after the PlayStation 3's XrossMediaBar, the desktop after Windows XP's Luna style.
Built on the work of many open-source projects and their communities:
- **Input** — **[SDL3](https://github.com/libsdl-org/SDL)** (zlib) for the Steam Controller.
- **Upscaling** — **SGSR HQ** ports **Qualcomm**'s Snapdragon Game Super Resolution edge-direction shader (BSD-3-Clause); texture sharpness *Auto* follows **AMD FidelityFX FSR 1**'s mip-bias guidance.
- **Frame generation** — **[Win-FG Native](https://github.com/The412Banner/win-fg)** (ours, MIT), whose motion estimation is an adaptation of **AMD FidelityFX FSR3** optical flow (MIT); and **Eden** (native LSFG present path) with **WinNative** as the design reference for the LSFG engine.
- **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** — **DXVK** (Philip Rebohle & contributors), **VKD3D-Proton** (Hans-Kristian Arntzen & contributors), **Mesa / Turnip** (the Freedreno & Mesa teams).
- **Containers, launch & runtime** — **Wine** (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 itself** — **Winlator** (brunodev85) and its Cmod lineage; **GameNative** (GPL-3.0) for the Steam session-hardening and present paths, and the idea behind fitting new containers to the panel (GameNative #1730).
*Steam and Steam Controller are trademarks of Valve Corporation; PlayStation and XrossMediaBar are trademarks of Sony Interactive Entertainment Inc.; Microsoft, Windows and Windows XP are trademarks of Microsoft Corporation; EA, EA Desktop, Origin and Need for Speed 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.; Qualcomm and Snapdragon are trademarks of Qualcomm Incorporated; AMD and FidelityFX are trademarks of Advanced Micro Devices, Inc.; Lossless Scaling is a trademark of its respective owner; 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.1.0; everything carries over.*