Repository navigation
Releases
Nixport v1.2.304-alpha
Nixport v1.2.304-alpha — a test build for people who want to try it early.
Published by hand: built and signed with the same key as v1.1.299-alpha and
v1.0.267-alpha (upgrades install over them without uninstalling).
Changelog (since v1.1.299-alpha)
Gamepads
- Single-player pad model (replaces v1.1's player slots): exactly one physical
pad feeds the game at a time. The pad you touch takes over automatically
(last-active wins); the session drawer offers "use this pad" to pin a choice for
the session. The effective pad and the on-screen controls merge into one player. - Fix: intermittent directional input. After opening a menu or losing focus,
sticks / D-pad / triggers now reach the game immediately at their current position —
no more "only X works in the load screen" or "the first press does nothing".
The old "stay blocked until centered" gate is gone (keys only). - Rumble now always lands on the effective pad (Xbox-protocol pads don't expose
motors to Android — enable "phone vibration" as the fallback). - On-screen stale-state fix: a closed overlay can no longer pin the virtual stick
over the physical one.
New: gyro aim (native ports)
- Hold the activator button and aim with the phone's gyroscope; the offset is added
to the target stick (left or right, configurable).
Frame generation
- Second FG engine wired up: LSFG, using your own Lossless.dll. Engine switches
flush the queue first (fixes artifacts on switch). The DD-FG entry is temporarily
hidden (known defect).
安装 / Install
下载 nixport.apk 安装(ARM64 手机,Android 9+)。已装 v1.1.299-alpha 或
v1.0.267-alpha 的可直接覆盖安装(同签名,数据与已导入程序全部保留)。
Download nixport.apk and install it on an ARM64 phone (Android 9+). Existing
v1.1.299-alpha / v1.0.267-alpha installs upgrade in place (same signature — app
data and imported programs are preserved).
nixport.apk 的 SHA-256 / SHA-256 of nixport.apk:
97c8867f1bac465d562655f2349fffff9c5f610b1a25e84c56c6a26cdfe607fe
大小 / Size: 306,790,932 bytes
nixport.json 与 APK 同目录,携带同样的元数据(提交、构建时间、大小、SHA-256),
应用内更新器读它。/ nixport.json next to the APK carries the same metadata
(commit, build time, size, SHA-256) and is what the in-app updater reads.
Nixport v1.1.299-alpha
Nixport v1.1.299-alpha — a test build for people who want to try it early.
The project is still being prepared. This build was published by hand: the
tag points at the current remotemain, and the APK is built and signed with
the same machine and key as the local v1.0.267-alpha release (upgrades install
over it without uninstalling).
Changelog (since v1.0.267-alpha)
Gamepads
- Player slots: Player 1 = on-screen controls + one selected physical pad, merged.
The in-game drawer (Input tab) now lists every physical pad under "Physical gamepads" —
set one as Player 1, assign pads to Players 2-4, or unassign them. An explicit choice is
remembered across sessions. - First input wins: with no explicit choice, the first pad that actually produces
input becomes Player 1. Phantom devices (e.g. HyperOS'suinput-xiaomi) no longer eat
Player 1 and silence your Bluetooth pad in-game — the main fix of this build. - Rumble return path: a game's rumble request travels back over NXP2 v3 and drives the
pad's own motors (falls back to the phone's motor when the pad has none). - Shim status, receiver connections and degradation reasons now reach the diagnostics.
Diagnostics
- A program's diagnostic export always carries session evidence now:
session/log.txt(session log tail, including the pad shim's lifecycle lines),
session/input.txt(export mode, shim status, receiver connections and degradation
reasons, the pad-to-player table) andsession/logcat.txt. A "the game runs but the
gamepad doesn't" report can now be classified from a single export.
Import & library
- AppImage payloads in DwarFS format are supported; extraction moved to the guest side
with a three-level fallback. - Clearer failure message for damaged AppImages; hardlink/ownership errors during
extraction no longer fail the import. - Programs can add a home-screen shortcut that opens the current default entry.
- The file picker supports multiple storage volumes: switch between phone storage,
SD and TF cards at the top.
UI & the rest
- Home screen polish; the store directory falls back to the APK-bundled snapshot when
the cache is missing and the directory source is unreachable.
安装 / Install
下载 nixport.apk 安装(ARM64 手机,Android 9+)。已装 v1.0.267-alpha 或
1.0.296-alpha 的可直接覆盖安装(同签名,数据与已导入的程序全部保留)。
Download nixport.apk and install it on an ARM64 phone (Android 9+). Existing
v1.0.267-alpha / 1.0.296-alpha installs upgrade in place (same signature — app data and
imported programs are preserved).
nixport.apk 的 SHA-256 / SHA-256 of nixport.apk:
11269808ed46c21cc0c2e12457c7d17479ac10158b7c2c691f55d6823f163f6b
大小 / Size: 306,405,812 bytes
nixport.json 与 APK 同目录,携带同样的元数据(提交、构建时间、大小、SHA-256),
应用内更新器读它。/ nixport.json next to the APK carries the same metadata (commit,
build time, size, SHA-256) and is what the in-app updater reads.
Nixport v1.0.267-alpha
Nixport v1.0.267-alpha — a test build for people who want to try it early.
The project is still being prepared. The source code is not public yet — it will be open-sourced in NixPort/nixport once the release is ready. What you get here today is the documentation plus a runnable APK.
Install: download nixport.apk from this release and install it on an ARM64 Android phone (Android 9 / API 28 or newer). The APK ships the Linux environment inside it and unpacks it on first run.
If the app is already installed, update from inside the app (Home). Note that this build is signed with a different key than the CI-published ones, so it may require uninstalling the previous build first.
SHA-256 of nixport.apk:
9541187e23d823f1e883ad002c002093791437fc740544e370addbd9c1208817
Size: 281,440,841 bytes
nixport.json next to the APK carries the same metadata (commit, build time, size, SHA-256) and is what the in-app updater reads.