github The412Banner/BannerHub v3.7.0
Bannerhub v3.7.0

19 hours ago

Warning

Only install official stable releases (like this one). Do NOT install pre-releases or raw CI artifacts — pre-release builds use a different package name (com.tencent.ig) and cannot be upgraded to stable without uninstalling first.

Important

Notification permission required. BannerHub will prompt for the Post Notifications permission when you start your first Epic, GOG, or Amazon download. You must allow it to receive download progress and completion notifications. Without it, you will not be notified when downloads finish or fail.

Important

Files access required for SD card storage. To save games to your SD card, BannerHub must be granted the Files and Media permission. Go to Android Settings → Apps → BannerHub → Permissions → Files and media and set it to Allow management of all files (or equivalent on your device). Without this permission the SD card toggle will have no effect.

New since v3.6.1

In-game AI Frame Generation menu

🙏 Credit: The AI frame interpolation engine itself — libGameScopeVK, the VK_NV_optical_flow Adreno path, the optical-flow synthesis pipeline, and the 6 quality presets — is the work of the GameHub team, who built it into GameHub 6.0.1. BannerHub adds only the user-facing wiring: the in-game sidebar entry, the settings dialog, persistence across launches, and the runtime ICD JSON path fix. All the heavy lifting that actually generates interpolated frames is theirs.

A new sidebar entry in the in-game Performance tab (above Dual Battery Mode) drives GameHub 6.0.1's built-in libGameScopeVK AI frame interpolation engine. No more hex-editing gamescope.control to use it.

  • Six presets — Eco / Flow / Bal / Boost / Clear / Max — matching GameHub 6.0.1's AiFrameInterpolationMode quality tiers
  • 2× / 3× / 4× multiplier picker
  • Custom flow scale slider (0.20–1.00) for AI optical-flow strength
  • Settings persist across launches via a launch hook that re-applies them after BannerHub's container regenerator runs
  • ICD JSON path is rewritten at launch using your APK's actual package name, so the menu works on any installed package — including renamed APKs

Real-world result on a working device: roughly 1.8–1.9× FPS scaling on 2× multiplier (e.g. 42 FPS off → 75–80 FPS on, validated via overlay screenshots).

PC-accurate Vibration / Rumble

🙏 Credit: This feature is from TideGear's PR #80, originally landed on GameNative as PR #1214. Massive thanks to TideGear for the work and to the GameNative team for the upstream research. Please go support GameNative: https://github.com/utkarshdalal/GameNative

Routes Wine's XInputSetState(slot, low, high) rumble calls into Android's VibratorManager so PC games actually shake your controller.

  • Independent low/high motors on dual-motor pads (DualSense, DualShock 4)
  • Single-motor blend fallback on 1-motor pads and the phone vibrator
  • Sustained holds — a Wine-side LD_PRELOAD shim defeats SDL2's 1-second auto-stop so rumble holds as long as the game holds it
  • Instant release on let-go (no phantom-suppression timer)
  • Multi-controller auto-wake up to XInput's 4-slot cap, with 200 ms per-slot stagger so 3+ controller setups register cleanly
  • Samsung HAL workaround for reliable cancel on Samsung's BT-HID effect path

A new PC Vibration Settings entry appears in each game's popup options menu, right after PC Game Settings, with Mode (Off / Controller / Device / Both) and Intensity controls. Settings live in the stock per-game preferences file under prefixed keys, so the existing Export / Import Config flow picks them up automatically.


Note for upgraders

Frame Generation requires Adreno GPU. GameHub 6.0.1's frame interpolation engine uses VK_NV_optical_flow, which on Android is currently only exposed by Qualcomm Adreno drivers. The menu controls work everywhere but the actual frame interpolation is silently skipped on Mali, Xclipse, and other non-Adreno GPUs.

Vibration is XInput-only. Modern PC games using XInput (the standard) get full rumble. The handful of older or niche titles using the DirectInput Force-Feedback API bypass our hook entirely and won't rumble.

Native-XInput controllers need Bluetooth for rumble. DualSense and DualShock 4 rumble fine over USB and Bluetooth. Xbox-style pads and 8BitDo controllers in XInput mode rumble over Bluetooth but NOT over USB — Android's USB-HID driver for XInput devices doesn't expose the rumble feature report path. Workaround: connect those controllers via Bluetooth.


Keeping BannerHub up to date with Obtainium

Use Obtainium to automatically track and install new BannerHub releases directly from GitHub.

BannerHub reports its own version number to Android (e.g. 3.7.0) so Obtainium can correctly detect when a new release is available and prompt you to update.

When adding BannerHub in Obtainium, make sure "Reconcile version string with version detected from OS" is turned on.


Community game configs: the412banner.github.io/bannerhub-game-configs
1,148 games · 3,712+ configs — Growing collection of community-submitted Wine configs. Contributions welcome — every config shared helps others get their games running.

Installation

See the Installation section in the README for APK selection guidance and setup instructions.

Don't miss a new BannerHub release

NewReleases is sending notifications on new releases.