Skip to content
 
 

Latest commit

 

History

2,106 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenNative logo

OpenNative

A performance-focused Windows compatibility environment for Android gaming handhelds.

Release Android License Sponsor

Download · Sponsor · Roadmap · Changelog · Contributing

OpenNative brings Wine/Proton, DXVK, VKD3D, Mesa, Box64 and FEX together in an Android interface designed for handheld gaming. The project prioritizes predictable frame delivery, low background overhead, controller reliability, portable configuration and safe runtime management.

OpenNative is an independent open-source project. It does not include games, firmware, store credentials or third-party shader caches. Use it only with software, downloads and accounts you are authorized to access.

Project status

Channel Version Status
Stable 1.6.0 Container platform: warm prefix, prefix lock, transactional activate and last-launch explain
Next milestone 1.7.0 Daily-play console: input, audio, Doctor, queue and save backup
Then 1.7.01.8.0 Daily-play console, then graphics preflight and unified library
Architecture milestone 2.0.0 Eight required majors: Identity, Runtime Fabric, Presentation 2.0, Exchange, Link, Console Shell, Save Vault, Adapter SDK

Current capabilities

Runtime and compatibility

  • Unified Steam, Epic, GOG, Amazon and custom-executable library flows.
  • User-created provider tabs after Custom, backed by a user-supplied HTTPS JSON or RSS/Atom feed. Launch seeds the bundled FitGirl and Skidrow tabs.
  • Wine/Proton containers with Box64 and FEX translation options.
  • Optional shared Wine prefix so a large library does not create one container per game.
  • Per-title graphics, runtime, controller and display configuration.
  • Versioned portable profiles without embedded device-local paths.

Performance and shaders

  • Independent per-game DXVK, Mesa/Zink and VKD3D cache generations.
  • Safe cache invalidation, local warmup and post-session maintenance.
  • Adaptive Engine observation with opt-in next-launch resolution changes and rollback.
  • Low-overhead metrics that avoid persistent diagnostic I/O during ordinary play.
  • Batched reads and writes across known Room and store-library N+1 paths.

Handheld experience

  • Controller-aware navigation and custom-game executable management.
  • Secondary-display performance cockpit with an in-game drawer fallback.
  • Local performance, memory-pressure, thermal and Shader Health reporting.
  • Sanitized diagnostic exports that exclude credentials, saves and game binaries.

Performance varies by game, runtime, driver and thermal conditions. OpenNative does not claim universal FPS improvements. Changes are promoted only after controlled before/after measurements.

Shipped in 1.4.0

  • New games share one Wine prefix by default (GameHub/Winlator style). Existing dedicated containers stay isolated.
  • Each shared-prefix game keeps its own A: mapping and executable overlay.
  • Toggle the mode under Settings → Emulation. See shared Wine prefix.

Shipped in 1.4.2

  • AllDebrid device-wide keys now take precedence over stale per-tab credentials.
  • Settings can select AllDebrid, Real-Debrid, Premiumize, Debrid-Link or TorBox, each with its own encrypted API key.
  • OpenNative checks GitHub Releases once per day and verifies the downloaded APK package, version, signing certificate and published SHA-256 digest before opening Android's installer.
  • Provider transfers use the current AllDebrid request contract and keep key validation responsive.
  • Interrupted downloads recover safely when a host does not honor byte ranges.
  • Resolver filenames are confined before staging, preventing path traversal.

Shipped in 1.3.1

  • Skidrow accepts verified ISO9660 images, extracts them into Custom, and removes the source image after successful registration.
  • Turnip, FEX, Box64 and WOWBox64 catalogs include the latest integrated upstream releases.
  • Wine container copying, Bionic verification, GOG v1 installation, portrait placement and shared-memory pacing carry current upstream fixes.
  • Skidrow browses the live site archive, pages on scroll, and searches the whole catalog.
  • Skidrow downloads unlock 1fichier through AllDebrid, extract into Custom, and delete the archive.
  • The catalog header is compact, search hides on scroll, and covers show Installed when the title is already in Custom.
  • Play launches the game exe (not the file manager), and Custom uses the catalog cover image.
  • FitGirl keeps its WordPress catalog, AllDebrid unlock, and on-device pack install into Custom.

See provider tabs and feed contract.

1.5.0

  • Themes now apply live: Light, Dark, AMOLED, Thor Ember, Ocean, Forest, Dusk and Slate, with Soft through Mono palettes.
  • Settings opens with a visual appearance picker sized for handheld use.
  • Download progress updates are sampled so the Downloads list stays responsive during large transfers.
  • SteamRIP, AnkerGames and GOGUnlocked HTML catalogs reuse the existing provider, transfer and verified-install pipeline.
  • Wine installer sessions wait for process-tree quiescence and mark parent-exits-first cases as needs review.
  • Interrupted sessions can be recovered with a one-shot safe launch that does not overwrite the saved profile.
  • Portable profile import previews diffs, writes a rollback backup, and Ask-after-install cleanup stays off until confirmed.
  • The secondary-display cockpit uses Session, Performance and Shortcuts tabs with OpenNative branding.

Device soak traces and claimed frame-delivery gains are not part of the 1.5.0 or 1.6.0 APKs. Those remain measurement-gated. See 1.6.0 roadmap.

1.6.0

  • A warm prefix skips wineboot and matching overlay copies.
  • Same-container activate no longer deletes home/xuser and relinks.
  • Shared-prefix play takes a lock; catalog refresh waits.
  • Doctor distinguishes a held prefix lock and a missing volume.
  • Clean exits write a recipe hash, last-launch explain and a dual-slot registry snapshot.

Platform support

Target Support level
Android ARM64, API 29+ (modern) Primary release target
AYN Thor Max, Android 13 Primary device-validation target
Android secondary displays Supported through cockpit and drawer fallback
Legacy 32-bit Android Buildable, not a primary optimization target
Individual Windows games Compatibility depends on title and selected runtime stack

Installation

  1. Download the current ARM64 APK from GitHub Releases.
  2. Verify that the APK comes from this repository.
  3. Install it over an existing compatible OpenNative build to retain app-private data.
  4. Do not uninstall first when containers or saves must be preserved.

OpenNative has no third-party in-app updater. Before redistributing an APK, review THIRD_PARTY_NOTICES; bundled components may have licenses and redistribution terms separate from the application source.

Adding a custom game

  1. Extract the game into a folder Android can access, or use a provider tab (FitGirl / Skidrow) to download and install into Custom.
  2. Open Library > Custom. Provider installs register the folder automatically.
  3. Tap Play. OpenNative picks the game .exe and ignores crash handlers, redistributables and setup tools. You can still open the container and choose another executable.
  4. Begin with a conservative resolution, frame cap and compatibility-oriented translation profile.
  5. Change one setting at a time and validate a repeatable scene.

Provider installs also copy the catalog/RSS artwork into the Custom folder as cover.jpg or cover.png. See Installing games and Gamma Emerald.

Build from source

Requirements

  • JDK 17
  • Android SDK 36
  • Android NDK 27.3.13750724
git clone https://github.com/RemiPelloux/OpenNative.git
cd OpenNative
./gradlew :app:assembleModernDebug
./gradlew :app:assembleModernRelease

Optional API keys belong in local.properties or environment variables. Never commit credentials, signing keys, games, saves or private diagnostic data.

Testing

Run the smallest relevant test scope while developing:

./gradlew :app:testModernDebugUnitTest --tests 'app.gamenative.performance.*'

Run the full modern JVM suite only in an environment with sufficient memory and disk space:

./gradlew :app:testModernDebugUnitTest

Mockito and MockK use an explicit ByteBuddy agent for JDKs that restrict dynamic attachment. Generated Gradle outputs are disposable and can be removed with ./gradlew clean. Performance changes must follow the measurement protocol.

Documentation

Document Purpose
Roadmap Milestones, delivery phases and release gates
1.5.0 roadmap Handheld-quality implementation and validation plan
1.6.0 roadmap Wine, container, prefix and launch-smoothness plan
1.7.0 roadmap Daily-play: input, audio, Doctor, queue, save backup
1.8.0 roadmap Graphics paths, integer scale, unified library, move/repair
2.0.0 roadmap Eight required majors
Container platform Layered prefixes, isolation tiers, budgets and repair
Feature and emulation roadmap Planned runtime, graphics, translation, input, audio and recovery improvements
Provider tabs Provider, AllDebrid, transfer and Installer Manager contract
Provider feeds User-supplied JSON and RSS/Atom catalog contract
Installing games FitGirl and Skidrow on-device install, Play exe and catalog covers
Adaptive Engine Decision model, safeguards and resolution policy
Performance method Benchmark protocol and current AYN Thor findings
Independence Compatibility identifiers, attribution and infrastructure migration
Changelog Released behavior and compatibility changes

Security and privacy

  • Provider credentials must remain in Keystore-backed local storage and are excluded from exports and diagnostics.
  • OpenNative does not automatically upload gameplay telemetry or diagnostic reports.
  • Provider features do not include a copyrighted-content index, DRM bypass or automatic execution of downloads.
  • Destructive maintenance is scoped, explicit and delayed until verification completes.

Read the privacy policy before using online services. Review every diagnostic bundle before sharing it.

Contributing

Focused fixes, tests, compatibility work and evidence-backed performance improvements are welcome. Reports should include the device, Android version, SoC/GPU, driver, game version, runtime configuration and reproducible steps, with private paths removed.

See CONTRIBUTING.md for development and validation requirements.

Credits and license

OpenNative derives from GameNative by Utkarsh Dalal and its contributors and incorporates work from Wine, Proton, DXVK, VKD3D, Mesa, Box64, FEX and other open-source projects. Copyrights, license notices and Git history are preserved. Attribution does not imply shared governance or endorsement.

OpenNative source is licensed under GPL-3.0. Bundled components may use different licenses; consult THIRD_PARTY_NOTICES.

About

Independent Android PC-game compatibility runtime focused on performance, stability and handheld UX.

Topics

Resources

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages