X360 Mobile 0.6.2
X360 Mobile 0.6.2
X360 Mobile 0.6.2 is a public performance, graphics-policy and runtime
resilience update for Android. It concentrates on reducing recurring CPU and
driver work without weakening emulation accuracy, while exposing carefully
gated alternatives for titles and devices that need a different Vulkan path.
Performance and frame pacing
- Reworked Android VBlank scheduling around absolute guest-clock deadlines.
Long stalls now rebase pacing instead of producing a burst of catch-up
callbacks, and overlays follow the guest display cadence. - Reduced repeated Vulkan work when complete descriptor, sampler, texture or
pipeline input state is unchanged. Resource generations and layouts remain
part of the validity checks, so changed resources still take the established
update path. - Reduced compatible pipeline permutations through capability-gated dynamic
state. The subset that caused visual regressions during device testing was
excluded from the release path. - Added direct Vulkan command recording for fully resolved commands. Pending
or replay-dependent work automatically retains the established deferred
route, preserving ordering and compatibility. - Reduced synchronization polling, guest-to-host register traffic, transient
upload pressure and per-draw statistics publication. Required counters and
full compatibility fallbacks remain available. - Release-native code now uses the supported optimization and ThinLTO path.
Global loop unrolling remains disabled, and no unrepresentative PGO profile
is shipped.
The measured improvement is workload-dependent. Testing found small gains,
most visible in lighter scenes; this release does not claim a universal FPS
percentage.
Android performance policy
android_adpf=true|falsecontrols Android Performance Hint sessions.
trueis the default: supported devices receive foreground-only workload
hints and low-frequency thermal-headroom sampling; unsupported devices use
neutral fallback behavior. Usefalseonly to isolate an OEM scheduling
issue or perform a temperature-controlled comparison.- A sustained 22-minute Forza Horizon 2 run with
android_adpf=truecompleted
on Odin3 without ANR, device loss, KGSL fault or zero-FPS sample. This proves
stability for that run, not a universal performance or thermal improvement. - Reproducible PGO tooling is included for future representative workloads,
but the public APK remains untrained until a sufficiently broad corpus is
available.
Vulkan rendering and resolve controls
The following settings are available globally and per game. Per-game values
take effect after restarting the title.
readback_resolve=fast|some|full|uma|none:fastremains the general
default;somemay reuse cached results;fullwaits for the current GPU
result;umareads completed results from safely mapped unified memory;
nonedisables readback and may break titles that require it. Unsupported
or unsafe UMA cases fall back tofastrather than losing readback.vulkan_rendering_path=auto|sysmem|gmem:autoleaves path selection to
the driver;sysmemrequests system-memory rendering;gmemrequests the
tiled on-chip route. Keepautounless a verified title/device profile says
otherwise. GTA IV has a recommendedsysmemprofile based on device tests.vulkan_direct_host_resolve=true|false: whentrue(default), eligible
host render targets resolve directly into shared memory. Ineligible work
automatically uses the established intermediate path.vulkan_transfer_in_draw_pass=true|false:true(default) places eligible
ownership transfers in the following guest draw pass; unsupported cases
fall back. Usefalseonly to isolate transfer-ordering behavior.vulkan_direct_command_recording=true|false:trueis the Android default
and avoids an intermediate CPU stream for fully resolved commands. Work that
requires deferred metadata automatically stays deferred.
Alan Wake now has a signed required profile selecting
readback_resolve=uma on builds that contain the safe UMA implementation.
Testing on Adreno 830 confirmed correct gameplay where disabling required
readback produced unusable black output.
Experimental graphics alternatives
These options default to false and should be enabled per title only:
vulkan_expand_point_sprites_in_vertex_shader=false|trueexpands point
sprites without a geometry shader. It may reduce driver overhead when the
title uses point sprites heavily. The tested Forza Horizon 2 scene remained
stable, but showed no visible performance improvement.vulkan_convert_quad_lists_to_triangle_lists=false|trueconverts quad lists
to indexed triangles on the CPU. It avoids a geometry-shader route, but the
chosen diagonal may become visible on unusual geometry. The tested scene was
stable without a measurable benefit.vulkan_in_pass_resolve=false|trueenables a strictly gated local-read
resolve experiment. Rejected work always falls back, but device testing
exposed temporary multicolour corruption during transitions and occasional
minimap corruption. It therefore remains disabled by default and is not a
recommended gameplay setting.
Custom Turnip packages also expose device-gated policies:
android_vulkan_push_constants_policy=auto|per_stage|shared:auto
applies the alternate layout only when KGSL identifies the exact supported
Adreno model. Manual values are intended for controlled comparisons.android_vulkan_ubwc_flag_hint=auto|enabled|disabled:autopreserves the
driver default; explicit values are honored only on the exact supported GPU
model and ignored elsewhere.
These policies never modify the Android system driver and are excluded from
remote recommendations when their correct value depends on local hardware.
Library, touch and interface
- Initial library population is now non-blocking. Existing titles appear
without waiting for every remote metadata provider; priority work is
bounded, duplicated requests are removed and a failing host is isolated for
the remainder of the batch. - Added an optional resolution-independent native touch mode. The free left
area acts as a floating movement stick and the free right area as a relative
camera surface, while visible buttons and the D-pad retain input priority.
Held input is released when dialogs, editors or lifecycle transitions take
control. The mode is disabled by default. - Improved controller focus in native audio controls and preserved touch
operation. - Consecutive games no longer share stale FPS samples in their session
summaries.
Audio and guest-runtime resilience
- Prevented adaptive audio recovery from repeatedly alternating silence and
short playback bursts. Healthy sessions retain the low-latency path, while
another refill is armed only after a complete interval of stable output. - Preserved XMA frames that continue across alternating guest buffers, with
bounded parsing and clean reset when a decoder context is reused. - Reduced avoidable parsing and allocation work in common profile,
filesystem and presence-format paths without changing accepted formats. - Corrected a mixed-thread timestamp update edge case while preserving guest
address validation.
Updates and player communication
- The updater now understands Alpha, Preview, Release Candidate and Public
channels, plus Hotfix, Revision and Repack maintenance releases. - Added safe policies for staged rollouts, source-version targeting, blocked
builds and mandatory or security updates.versionCoderemains the
authoritative ordering mechanism. - Added a signed in-app broadcast channel with localized one-time messages,
version targeting, expiry, allowlisted actions and optional anonymous
aggregate acknowledgements under the existing statistics consent. - Update and broadcast dialogs retain visible actions while their content
scrolls by touch, D-pad, controller or keyboard across phone, tablet,
handheld and ultrawide layouts.
Package and validation
- Package:
emu.x360mobile.com. - Version:
0.6.2(versionCode 6029000). - Public artifact:
x360-mobile-0.6.2.apk. - Channel: Public; the GitHub release is not marked as a prerelease.
- The Release APK uses stripped ARM64 native libraries, the established X360
Mobile signing identity and APK Signature Scheme v3 with a local v4
sidecar. Managed-code shrinking remains disabled because native callbacks
depend on exact JVM contracts; Release packaging tests protect those names.
Known limitations
- Online compatibility-report submission remains temporarily disabled while
the service is redesigned. Local reports and the read-only catalog remain
available. vulkan_in_pass_resolveis experimental and must remain disabled for normal
use until its transition-ordering defect is resolved.- Device-specific Turnip policies require their corresponding physical GPUs;
safe fallback behavior does not prove a performance benefit on untested
hardware. - Compatibility and performance remain dependent on the title, device,
firmware and Vulkan driver.
X360 Mobile is experimental software. It is not affiliated with Microsoft or
Xbox, does not support piracy and must be used only with games and content the
user legally owns.