v1.2.0-x64.1
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
- Download
app-modernX64-release.apkbelow. - Install on an x86_64 Android device (API 26+).
adb install -r app-modernX64-release.apkThe 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