Bannerlator 2.9-pre4
Pre-releaseBannerlator 2.9-pre4 — test build
⚠️ This is a pre-release, not a stable buildIt exists so the work below can get real testing on real devices. Expect rough edges. The headline feature — the rebuilt virtual controls editor — is in-progress work from an open pull request. It is now Ready for review, but has not had a full review or a CI-verified merge yet.
- Stable users are not affected.
2.8remains the Latest release; nobody is offered this unless they ask for it.- Already on 2.9-pre1/pre2/pre3? This build carries the same versionCode (49) so it installs straight over them — but for that reason the in-app updater will not offer it to you automatically. Grab the APK below.
- Coming from 2.8? Settings → enable "Include pre-releases" in the updater, or just sideload.
- If it misbehaves, install 2.8 back over the top. It's app-side only, so nothing about your containers is at risk either way.
- Please report what you find — that's the entire point of this build. Open an issue with logs where you can.
Like the last several releases this is entirely app-side — no ImageFS reinstall. Containers, themes, custom accent and per-game settings all carry over. Install straight over 2.8 or any earlier pre-release.
🔁 What changed since 2.9-pre3
pre3 was cut this morning; main has moved a long way since — six merges of new work now sit under the controls editor. This is the first test build to carry all of it together.
📁 A completely overhauled File Manager
- Multi-select — long-press to select, then Copy / Cut / Delete a whole batch at once.
- Moves are instant within a drive — cutting a game folder inside internal storage no longer copies every byte; it relinks. Moving across to an SD card still copies, as it must.
- Paste asks before it clobbers — Overwrite, Merge (for folders), or Keep both, instead of silently making a
Game (1)copy. Dropping an updated game folder onto an existing one finally updates it in place. - Extract archives —
.zip,.7z,.tarand its compressed forms, straight from the file list into a new folder. - Grid view + compact rows, filter-this-folder search, sort by name/date/size, a hidden-files toggle, and free space shown in the bar.
- The path bar now shows the current folder name, with the full path below it.
🎮 Add a whole games folder at once
The + button now offers Add games folder beside Add game EXE. Point it at the folder that holds all your games and it scans each one for its executable, names it, pulls its cover art, and shows you everything it found to confirm before adding — with a Change option on any game whose executable it wasn't sure about. An SD-card badge marks games stored on removable storage in both grid and list views.
🎯 Smarter game names
Auto-detected names no longer lose words from the middle — a folder called Game Controller Test is named exactly that, not "Controller Test". Adding a game through the File Manager's Add to Shortcuts now names it and fetches art the same way the + button does.
🗂️ Storage & drives
- SD/USB games stop eating drive letters — a container now maps one drive per storage device instead of one per game, so a large SD library no longer runs out of letters.
- New containers get sensible per-volume default drives.
⚙️ Defaults & hardening
- New containers start with Motion Aim (gyro) off — it's opt-in now rather than on by default.
- Defensive null-guards across the SurfaceFlinger and GL-native scanout renderers (a stability hardening; the default Vulkan renderer is unaffected).
🎮 Controls editor — the headline feature (by @arro000)
The whole on-screen controls editor has been rebuilt in Compose, replacing the old Fragment/XML interface, with a large set of new capabilities:
- New control types — Dynamic Stick, Mouse Area, Button Grid, Expandable Button, Android Keyboard.
- A real editing UI — Compose toolbar, visual control-type picker, sliding settings panel.
- Per-element tuning — dead zones, sensitivity, hold bindings, detection-area styling, grid cell shapes.
- Better bindings — category-filtered selector, multi-key combos, presets, custom icons (PNG/SVG, themed to your accent).
- Control groups, reference background images, live in-game profile editing, and a versioned ICPx import/export format with legacy
.icpcompatibility. - Since pre3: per-device controller edge tracking, per-source pulses, opt-in Button Grid multitouch, and custom-icon rendering fixes.
⚠️ This is still the part that most needs testing. It is a very large change to the input system. Please exercise your existing control profiles and report anything that regressed — especially profiles created in an older version.
🐞 Known issues
- Occasional ANR during input — the UI thread can briefly block on a socket write. Pre-existing (reproduces on 2.8), listed so it's not a surprise.
- FPS limiter + frame generation at low caps — a cap near 30 with generation on can drop generated frames. A cap of 60 behaves correctly.
- Frame-gen models 1–4 are experimental and not quality-proven. Default (model 0) is unchanged from 2.8.
- The controls editor is unmerged work under review — treat anything it does as provisional.
📥 Downloads
| Variant | File |
|---|---|
| Standard | Bannerlator-2.9-pre4-standard.apk |
| PUBG | Bannerlator-2.9-pre4-pubg.apk |
| Ludashi | Bannerlator-2.9-pre4-ludashi.apk |
ℹ️ On an earlier pre-release already? Same versionCode, so the in-app updater won't prompt you — download directly and install over the top. On 2.8? Turn on "Include pre-releases" in the updater, or sideload. Either way this build is entirely app-side: no ImageFS reinstall, and your containers, themes, accent, per-game settings and control colours all carry over.
🙏 Credits
- @arro000 — the entire virtual controls editor rebuild (#156): the Compose editor, new control types, per-element tuning, control groups, background images, live in-game profile editing, the ICPx format, and the controller-input polish in this build.
- @Devaspe — continued testing of the pre-release line.
