Skip to content

v1.2.0-x64.1

Choose a tag to compare

@github-actions github-actions released this 28 Aug 20:12
· 63 commits to bliss-x64 since this release

GameNative x64 1.2.0-x64.1

GameNative ported to x86_64 (bionic) for Bass:Lineout / ax86 tablets — run Windows games
through Proton/Wine on Intel or AMD Android devices, with hardware Vulkan.

Upstream GameNative targets arm64 and leans on ARM-only pieces (Box64, the Vortek Vulkan
proxy, libredirect-bionic-wx.so). This fork replaces those with a native x86_64 path: no
emulation layer, a real Khronos Vulkan loader with X11 surfaces, and Mesa drivers
cross-compiled for bionic.

Highlights

  • Native x86_64 execution — Proton/Wine runs directly, without Box64 translation
  • Hardware Vulkan via Mesa ANV (Intel) and RADV (AMD); lavapipe bundled as a software fallback
  • Vulkan loader, ICDs, and X11 client stack shipped in-APK and staged on first launch
  • PulseAudio wired up for in-game sound
  • Trackpad/mouse pointer capture fixes for desktop-style tablets

Experimental. Verified with Half-Life 2 on Intel UHD (Amber Lake / Coffee Lake).
Presentation still uses Mesa's software WSI path, so framerate is below what the GPU can do.

Install

  1. Download app-modernX64-release.apk below.
  2. Install on an x86_64 Android device (API 26+).
adb install -r app-modernX64-release.apk

The Vulkan payload (~50MB compressed) unpacks on first launch, so the first game start
takes longer than later ones.

Verifying which driver you got

After launching a game, check the DXVK log inside the game's directory:

adb shell "grep -iE 'Device name|Skipping CPU adapter' \
  /data/data/app.gamenative/Steam/steamapps/common/*/[a-z]*_d3d9.log"

A real GPU name (for example Intel(R) UHD Graphics) means hardware Vulkan. If it reports
llvmpipe, it fell back to software rendering.

Building it yourself

The native libraries are built in a pinned container (podman or docker required), which
keeps the toolchain identical across machines:

./scripts/native-build-container.sh scripts/build-x86_64-bionic-libs.sh
./scripts/native-build-container.sh scripts/build-x86_64-mesa-vulkan.sh
./scripts/provision-x86_64-vulkan.sh tarball
./gradlew :app:assembleModernX64Release -PnoMinify=true

-PnoMinify=true is currently required: a minified release ANRs shortly after launch in a
Compose recomposition loop.

What's included

File Description
app-modernX64-release.apk (~245M) Signed release build for x86_64 tablets. Use for installs and in-place updates.
app-modernX64-debug.apk (~273M) Debug build with logging enabled. For testing only.

These are x86_64 builds. They will not install on arm64 devices — use upstream
GameNative for arm64.

Bundled graphics stack

Field Value
Vulkan payload vulkan-x86_64-20260828.tzst (~50M compressed)
Drivers (ICDs) intel_icd.x86_64, lvp_icd.x86_64, radeon_icd.x86_64

The payload is extracted on first launch and carries hardware Vulkan for Intel
(ANV) and AMD (RADV) plus a software fallback (lavapipe), so no separate Termux
or driver setup is needed.

Automatic updates (Obtainium)

To get notified when new v* tags ship, add this repo in Obtainium:

Setting Value
Source GitHub
Repository Bliss-Bass/GameNative-x64
Release filter v* tags
APK filter app-modernX64-release.apk

Build info

Field Value
Release tag v1.2.0-x64.1
Gradle version 1.2.0 (code 45)
Application ID app.gamenative
Variant modernX64 (x86_64 only)
Minimum Android API 26+

Changes in the last 30 days

Since 2026-07-29 · 164 commits

  • Release: don't build twice per tag, and ignore upstream tags in notes (f0b6f539)
  • Pin Robolectric to API 34 for the modernX64 flavor (61f3364d)
  • CI: survive freedesktop.org 418s and cache each native tree separately (908ab6b9)
  • CI: write local.properties, and keep the native cache on failure (077ad06f)
  • x64-payload: stop deleting the JDK while freeing disk space (7fdc6708)
  • native-build-container: fall back to docker when podman is unusable (e0a2aa86)
  • Switch CI to the BumpDesk release pattern (a956f46e)
  • Rebuild the bionic libs asset in the container (eedba2a7)
  • Build the bionic x86_64 native libs in a pinned container (d9e87861)
  • provision-x86_64-vulkan: prune to the loader/ICD closure (65895ec5)
  • Stage guest Vulkan stack from a bundled asset (3a5df2f7)
  • provision-x86_64-vulkan: fold hardware ICDs into one payload (d6cfd481)
  • Add a -PnoMinify escape hatch, and skip the pitches in port builds. (5a40b846)
  • Also skip the membership pitches in the x86_64 port builds. (e8b26ad0)
  • Skip the membership pitches in debug builds. (2e3026c3)
  • Only put the app library dir on the guest path when it is x86_64. (c3292291)
  • Handle mouse buttons on the uncaptured pointer path. (fbfde495)
  • Capture the pointer as soon as the game window takes focus. (8bcb7162)
  • Give the x86_64 guest a library path that resolves libpulse. (3e9ec008)
  • Make a swapRB change actually reach the surfaces built before it. (93d9da5a)
  • Pass the R/B swap flag the raster helpers have always read. (1c6bc0ed)
  • Ship libXrandr in the x86_64 bionic libs asset. (6e109888)
  • Build ANV and RADV through to staged ICDs for the x86_64 guest. (8f44d595)
  • Make the bionic x86_64 Mesa cross-build get through to a linked ICD. (406fd7a1)
  • Add a Mesa cross-build for hardware Vulkan ICDs on bionic x86_64. (3c39845d)
  • Detect the host GPU vendor, and plan the hardware Vulkan path. (3ea05481)
  • Keep MIT-SHM out of the x86_64 guest presentation path. (7e6d3b59)
  • Log why the X server drops a client. (aed3ad6d)
  • Run game sessions fullscreen on desktop-windowing devices. (bc7e7716)
  • Automate and document x86_64 guest Vulkan provisioning. (510f5046)
  • Give the x86_64 guest a Vulkan driver with X11 surface support. (5c14b578)
  • Answer Present QueryCapabilities so Mesa can build a swapchain. (6ba91b01)
  • Stop the arm64-only Vortek library from killing x86_64 sessions. (53adcbb6)
  • Connect x86_64 Wine to the in-app X server without libredirect. (b9d5ee16)
  • Fix x86_64 Wine graphics stack for Proton launches on ax86. (147e9164)
  • Add x86_64 PulseAudio and bionic font libs for Wine on ax86. (2096bc15)
  • Exclude ARM imagefs from x86_64 LD_LIBRARY_PATH for Proton Wine. (bd1c60da)
  • Bump versionCode to 24 for ax86 device test drops. (010f7b63)
  • Point x86_64 Bionic Wine at Proton ntdll library paths. (5161b877)
  • Stage x86_64 libandroid-sysvshm.so for Bionic wine preload. (3b658541)
  • Support freeform/desktop window caption bar in app UI. (1a7d5638)
  • Fix x86_64 Bionic wine launch loading ARM preload shims. (becd2084)
  • Add BLISS_PORT_DEBUG to gate remote telemetry on port builds. (3f5b719b)
  • Add x86_64 evshim host stub to fix X server WinHandler crash. (7300b853)
  • Build libwinlator_11.so for x86_64 X server drawable and GPU queries. (2bc43c68)
  • Default to x86_64 Proton on ax86 hosts and migrate existing containers. (d1cbf145)
  • Fix x86_64 libextras GPUInformation JNI by including vulkan.c. (78c48730)
  • Stage open-source x86_64 JNI prebuilts and document remaining blockers. (cf67a04b)
  • Fix modernX64 Gradle variant packaging. (bf2cc7a5)
  • Gate ARM-only Box64, FEX, LSFG, and redirect preload on x86_64 host. (64922ac7)
  • Use system Vulkan on x86_64 instead of adrenotools. (144e90ce)
  • Add x86_64 JNI build infrastructure for Bliss ax86 port. (97598f73)
  • Add Bliss x64 port and ax86 graphics documentation. (e6f9816b)
  • Log HostCpu and supported ABIs at application startup. (0455d0a4)
  • Skip Box64 on x86_64 host in Bionic and Glibc launchers. (1ca0d4ce)
  • Add modernX64 product flavor targeting x86_64 host ABI. (3b619a7b)
  • Add HostCpu host ABI detection for x86_64 Android tablets. (00bc0fe4)
  • Version bump and README bump (#1857) (1ad70ae5)
  • Fix bionic after verify (#1856) (3491226f)
  • fix: handle lateinit exception in power manager (#1848) (504ee734)
  • Fix Open Container file copy crashes in Wine (#1784) (fb0207c5)
  • Added new turnips, new fex, new box64, new wowbox64 (#1847) (d19cf412)
  • Immersive mode: fix gamma, raise quad resolution, stop duplicate compositing (#1846) (12433d92)
  • remove redundant driver.stop() (4a8255d8)
  • stop driver when stopping power control (8d15b6af)
  • fix setPowerProfile (6448790c)
  • address AI comments and strings (8fc62c27)
  • logic fix in setPowerProfile (ba717b42)
  • fix AdaptiveFpsCapController and PerformanceMetricsCollector loading (ecf7e2f3)
  • addressed AI comments, fix fan controller cannot stop using toggle (4234360d)
  • refactor: Add global toggle for in-game power control, fix issues (7035620f)
  • Restrict FFP fastpath shim to non-emulated storage volumes (f300620f)
  • Disable FFP for custom games on internal storage only (0ae8047a)
  • Gate FFP by Android/data path instead of game source (c5b7e2cc)
  • Don't enable FFP fastpath shim for custom games (ecb0793f)
  • Enable immersive mode on the legacyXr build (e64965c5)
  • Allow .bat files in container executable path dropdown (0979e333)
  • bumped version for prerelease (7a15d091)
  • Simplified changes (removed undo action) (4a98dc62)
  • change favorite tab to star, reduced length of favorite action in action bar, reduced diff to master (816b767a)
  • Fixes for quest - games can launch in immersive mode and we can use touch controllers as xbox (still some bugs) (#1831) (58874f8a)
  • Remove PR media from source (4b679e5f)
  • Add PR preview assets (81b33867)
  • Refine favorites UX (2bbb0ada)
  • Add in-app community config browser (#1782) (44a8f193)
  • Add configurable radial menu for controls (#1709) (9955de49)
  • feat: add default screen size detection and 960p screen size option (e.g. retroid pocket nova) (#1730) (c2c9c977)
  • Fix mouse dragging in Crushed in Time (#1809) (d1eede5c)
  • fix: Improve power control and system metrics for Odin 3, add support for Retroid Pocket Nova, updated UX (#1824) (76c613ca)
  • Gog epic improvements + controller mapping fix (#1829) (e05ae486)
  • feat: Optimize download performance for external storage (#1785) (78bc4bbe)
  • fix: match app language of the string resource in SteamService (#1817) (d6673133)
  • fix: Enhance Lossless Scaling Frame Generation (LSFG) integration (prevent freeze, save storage space) (#1822) (b883703d)
  • Improved personalized recommendations + disclosure (#1828) (24664d78)
  • Make membership popups less frequent (#1827) (bd2fe143)
  • Fix broken star history chart in README (#1826) (5775b296)
  • Fix fps limiting on non-directx games, remove Odin 3 from default list for power management (#1820) (d85b2304)
  • Removed bionic-fg, fixed lsfg-vk on 8 elite and other devices with frame capping, made lsfg work with the power management (#1819) (d290e54a)
  • Rec disclosure copy (#1814) (b0424df5)
  • Added bionic steam client gamefixes for Whisk and Whisk Demo (#1813) (7f3a3c5f)
  • attribute steam wishlisting via webview (#1812) (73fc6f45)
  • feat: Add Experimental CPU / GPU power control to Retroid Pocket 6 and other devices that support it (#1698) (8a03fdc9)
  • fix: gog game install path detection to prefer stored value (#1808) (a8d472e3)
  • fix(library): correct review fix compilation (d8a4a7f7)
  • fix(00): WR-06 localize favorite add confirmations (be58b548)
  • fix(00): WR-05 persist favorite JSON off the UI thread (c299c14e)
  • fix(00): WR-04 make favorite undo state-safe (1bf13093)
  • fix(00): WR-03 cancel stale favorite list refreshes (1e1b390c)
  • fix(00): WR-02 make favorite shortcut consistent on legacy builds (074d84e7)
  • fix(00): WR-01 correct favorites empty-state instructions (b276ac90)
  • feat(library): polish favorite card gradient (48afc0e3)
  • feat(library): soften favorite glow bottom edge (0edcbf84)
  • feat(library): refine favorite feedback (853e180b)
  • feat(library): use inner glow for favorites (81dbdca4)
  • Add depot fetching progress indicator (#1775) (cac1e9c4)
  • feat(library): replace favorite stars with gold outlines (23b22c66)
  • fix(library): clarify controller favorite button (5f5aacec)
  • feat(library): add controller favorite shortcut (a145444e)
  • revert(android): restore standard debug package (f5b6b5e5)
  • build(android): add side-by-side debug app (9d12e42e)
  • Shorten snackbar display time to 6s (685c9d9c)
  • Fix snackbar Undo action layout (5e333f00)
  • Fix Undo action rendering, cold-start pop, haptic weight (469d228a)
  • Add star toggle pop + haptics, halve snackbar duration (57dae7ae)
  • Polish favourite star: undo, focus ring, scrim, a11y labels (66e358cd)
  • Add Favorites empty state and harden favorites UX (939c12b9)
  • Rename Favourite to Favorite across the feature (9dfbd0e8)
  • Remove unused FavouritesUtils.toggle helper (fafefac2)
  • Log decode failures for stored favourites (4378adf7)
  • Hide favourite star on recommended items in list view (5332a05b)
  • Observe favourites flow for detail-menu label (9919b9b8)
  • Persist favourites under the lock to close a TOCTOU race (5464f4cf)
  • Match favourites badge count to the Favourites tab contents (3a2599b8)
  • Replay early favourite edits on top of loaded set to prevent data loss (d9c61f0e)
  • Load favourites off the main thread in FavouritesManager (4fc6646d)
  • Make favourite updates atomic in FavouritesManager (276764fc)
  • Extract favourites logic into FavouritesUtils and add unit tests (32bc9aeb)
  • Add a Favourites tab and star toggle to the library (f03773e7)
  • Support Look-through buttons outside shooter mode (#1787) (8aed8ee3)
  • Fix touch D-pad remapping for shared-axis inputs (#1788) (9385ee95)
  • Fix gametime tracking (#1803) (4c3269c6)
  • Respect Nexus Mods adult content preferences (#1793) (4a32b33b)
  • stretched spinner fix (#1794) (e99fd522)
  • Create drive_c-mapped TMPDIR so Mono temp-file saves persist (#1801) (556a1e6f)
  • Support custom games on the modern build without all-files access, add known configs for custom games (#1798) (bd1c439f)
  • Attribute featured wishlists via UTM-tagged store visit (#1797) (45e59cd7)
  • Drop the added comments (dff5bc79)
  • Turn the mock hero response back off (e634b2de)
  • Keep CTA buttons focusable after they complete (04b35d10)
  • Prove the mock hero payload decodes through the production models (cea6b001)
  • Make the recommendation screen controller-navigable (67472230)
  • Use Whisk's library art in the mock campaign (854a204c)
  • Consolidate featured CTA strings and translate them (1c850bb4)
  • Mock the hero response as JSON through the production parse path (5562894d)
  • Turn the local featured campaign back off (8a0e696d)
  • Count featured conversions; build against published -26 snapshot (8012c706)
  • Use Whisk's own demo in the local campaign (8155cb88)
  • Template featured CTAs; add GET_DEMO alongside WISHLIST (d99dfc72)
  • Use JavaSteam's generated Wishlist service (c6a30ae3)
  • Revert "Fall back to a minted web token when the CM denies the wishlist write" (928506f3)
  • Fall back to a minted web token when the CM denies the wishlist write (bfe2ff4c)
  • Wishlist over the CM connection instead of a web token (a1781e59)
  • Wishlist the sponsored game in-app instead of deep-linking (ca5cd4ad)
  • Added ability to invite friends via overlay (e4f4a3dd)

Built from v1.2.0-x64.1 · All commits · Fork of utkarshdalal/GameNative · License: GPL-3.0