Skip to content

Bannerlator 2.2

Choose a tag to compare

@github-actions github-actions released this 30 Jun 20:00
· 3140 commits to main since this release

Bannerlator

Bannerlator 2.2

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

2.2 is a big visual overhaul. The whole interface — and the in-game side drawer — now follow your chosen theme, with a redesigned drawer, nine new colour presets, and per-game on-screen control colours. It also adds Favorites to the File Manager and rebuilds the controller-binding screen in the modern UI, alongside a batch of readability and consistency fixes. This release is entirely app-side — no ImageFS reinstall needed, and AMOLED stays the default, so updating won't change your look unless you pick a new theme.

✨ What's New

🎨 A themeable interface — redesigned

The app drawer and the in-game side drawer were rebuilt with new icons and accent-driven buttons, and — the big change — your selected theme now recolours the entire app and the in-game drawer. Previously large parts of the UI stayed blue regardless of theme; now your preset or custom accent reaches the screens, dialogs, drawer, chips, sliders and overlays.

🌈 9 new colour presets — total of 16

Nine new opt-in presets join the lineup, bringing the total to 16 (plus the custom HSV accent picker):

  • Midnight Cobalt · Phosphor · Carbon & Ember · Amethyst · Crimson · Synthwave · Royal Gold · Frost · Monochrome
  • alongside the existing Classic Dark, AMOLED, Ocean, Forest, Sunset, Rose and Steel.

AMOLED stays the default and is unchanged. Your previously selected theme and custom accent are preserved across the update — nothing about your look changes unless you choose a new one.

🕹️ Per-game on-screen control colours — new

The on-screen touch controls follow your app theme by default, and you can now override their colour per game. Turn off "Follow app theme" in the Controls editor (in the in-game drawer or the out-of-game Input Controls page), pick a colour, and it's saved with that game's profile — so each game can keep its own control colour while the rest of the app stays on your theme.

⭐ File Manager — Favorites / bookmarked folders — new

Pin the folders you open most and jump straight to them. A ★ button opens a dedicated Favorites list, and each entry shows exactly where it lives:

  • a colour-coded badge for the storage source — Internal, SD card, Drive C:, or Drive Z:,
  • the container name for a container's Drive C:, so two games' C:\Program Files are never confused,
  • and the full path.

Pin from a folder's ⋮ menu or with "Pin current folder"; unpin with the filled ★. Favorites persist across launches, and entries for a deleted container quietly drop off.

🎮 Controller-binding screen rebuilt

The external controller-binding screen was rebuilt in the modern UI: labels are clearly readable under any theme, each binding is a card matching the rest of the app, and buttons you press while binding appear instantly. (Builds on the 2.1.1 readability fix — bindings still persist, and Ludashi-format profile import still works.)

🧰 In-game Task Manager

"New Task" now works on the Vulkan / Native renderers — the dialog used to be invisible over those surfaces — and running processes are now shown as cards, matching the File Manager rows.

🧹 Consistency & readability

The Games and Containers lists now share one card style with consistent depth on every theme, and the legacy dropdowns, spinners, dialogs and section headers follow your accent too — with a luminance floor so text never goes dark-on-dark even on a very dark custom accent.

🧱 Under the hood — the UI rewrite, in plain terms

A few people asked what the "UI rewrite" actually is and how much of the app it covers. Honest answer:

What kind of UI it is. The interface is Jetpack Compose with Material 3 — Kotlin, declarative, no XML layouts. The whole out-of-game app is a single Activity driving a Navigation-Compose graph (so the drawer destinations are Compose routes, not separate XML activities), wired up with Hilt for dependency injection. That's what makes a theme able to recolour everything at once: the colours come from one MaterialTheme the screens all read, instead of hundreds of hardcoded XML values.

What's actually converted. The entire out-of-game app is now Compose — there are no XML screens left in it:

  • Library & setup — Containers, Container detail/editor, Games (shortcuts), Contents, Input Controls, Adrenotools GPU Drivers, Saves, File Manager, Settings, Appearance, and the Splash/setup flow.
  • Storefronts — GOG, Epic, Amazon and Steam (main, login, QR sign-in, library and game-detail screens) are all Compose.
  • New in 2.2 — the external controller-binding screen was the last big out-of-game holdout on the old toolkit; it's now Compose too.

That's roughly 240 Compose UI functions across ~90 Kotlin files.

What's deliberately not Compose. The in-game experience is still a classic Java activity (XServerDisplayActivity) — and it stays that way on purpose, because it hosts the native render surface (the SurfaceView / GLSurfaceView the X11 server, Vulkan/OpenGL renderer and Wine draw into). You can't render a game inside a Compose tree. What 2.2 did do is turn the in-game side drawer and its dialogs into Compose "islands" layered on top of that surface — which is why the in-game drawer now follows your theme and the redesigned controls/Task-Manager UI looks like the rest of the app.

So "how much is Compose vs old XML/Java?" Measured by screens, the app you tap through is essentially 100% Compose. Measured by lines of code it looks like more Java than Kotlin — but that Java is overwhelmingly the emulation engine, not UI: the X11 server, the Vulkan/OpenGL renderer, box64 / FEXCore, the Wine handler, the input-controls engine and container management. None of that is "screens," and none of it was ever meant to be Compose. What genuinely remains as legacy XML/Java UI is now a short list — the performance HUD overlay, Big Picture mode, the on-screen control-element editor, a couple of file/folder pickers, and a few native over-the-game dialogs — and it keeps shrinking each release.

📥 Downloads

Variant File
Standard Bannerlator-2.2-standard.apk
PUBG Bannerlator-2.2-pubg.apk
Ludashi Bannerlator-2.2-ludashi.apk

ℹ️ Updating in-app? This release is entirely app-side — the standard APK update covers everything in 2.2. There's no ImageFS reinstall and no container changes required, and your selected theme, custom accent and per-game control colours carry over untouched.


🙏 Thanks to everyone in the Discord and on GitHub who suggested the theme presets and the File Manager Favorites, and who reported the controller-binding and Task Manager rough edges.