Optimising The Asus Xbox Ally Z1

[ ]

These are the steps I followed to optimise my ASUS ROG Xbox Ally. The decision to do this was prompted by noticing the occasional stutter in Dead Cells (which really ought not to have any) and having already given up on getting The Ascent to run without stuttering (installing Bazzite and running it there fixed that).

I need to do more testing. This reflects the best setup I’ve found so far.

VRAM

Keep this at 4GB. Even for Starfield this is better than setting it to 6GB. The CPU needs the RAM more than the GPU.

PowerShell setup

This prevents background game recording. Why anyone would silently enable this on a resource constrained device and not give the user a massive, red-flashing-light warning that it’s there in the background is beyond me.

# Keep Xbox Game Bar installed, but disable capture / recording
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR /v AppCaptureEnabled /t REG_DWORD /d 0 /f
reg add HKCU\System\GameConfigStore /v GameDVR_Enabled /t REG_DWORD /d 0 /f

# Disable AMD capture backend
reg add HKCU\Software\AMD\DVR /v DVR_ENABLED /t REG_DWORD /d 0 /f

# Stop random UWP apps running in the background
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications /v GlobalUserDisabled /t REG_DWORD /d 1 /f

The following disables Co-pilot. It’s really useful as a development tool. Why it must be running in the background on my gaming handheld is less clear.

# --- Disable Copilot via policy (machine-wide)
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsCopilot /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f

# --- Disable Copilot for current user (fallback policy location)
reg add HKCU\Software\Policies\Microsoft\Windows\WindowsCopilot /v TurnOffWindowsCopilot /t REG_DWORD /d 1 /f

# --- Remove Copilot package (current user)
Get-AppxPackage *Copilot* | Remove-AppxPackage -ErrorAction SilentlyContinue

# --- Remove Copilot for all existing users, as far as possible
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue

# --- Remove provisioned package (prevents reinstall for new users)
Get-AppxProvisionedPackage -Online |
  Where-Object DisplayName -like "*Copilot*" |
  Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue

Steam overlay and background services

The overlay can be re-enabled per game if you really need it.

In Steam → Settings → In-Game → uncheck “Enable the Steam Overlay while in-game”. This removes the overlay hook from all titles and avoids per-title configuration.

Then reduce background activity:

Stopping background execution doesn’t do a lot once a Steam game is launched but it otherwise stops background polling of things like chat.

AMD Adrenalin Settings

TDP

Set the following by creating a new manual profile and giving it a name:

Windows Settings

These should already be set correctly. Check them anyway.

Hardware-accelerated GPU scheduling (HAGS)

Settings → System → Display → Graphics → Default graphics settings

Set this to ‘On’. Consider setting to off if particular software requires it, if using DirectX 11 or as a last resort to fix otherwise inexplicable stuttering.

Variable Refresh Rate (VRR)

Settings → System → Display → Graphics → Default graphics settings → Advanced Graphics Setting

This only affects games using full screen and with V-Sync disabled, which is what you want.

Game Mode

Settings → Gaming → Game Mode

This adjusts process scheduling in favour of the game.

Windows power mode

Settings → System → Power & Battery

This reduces CPU frequency scaling latency and helps maintain consistent clocks under load.

Processor minimum state

Control Panel → Power Options → Change plan settings → Change advanced power settings

Very low values (e.g. 5%) increase ramp-up latency and can cause stutter during sudden CPU load.

Disable indexing on game drive

This reduces background disk activity during asset streaming.

Windows Defender real-time exclusions

Windows Security → Virus & threat protection → Manage settings → Exclusions

Prevents scan activity during file access.

Resolution

Use the desktop resolution to define the final output, and the in-game resolution (or render scale/FSR) to control performance. On the Ally, a 720p desktop gives you consistent performance and clean integer scaling to the 1080p panel, while a 1080p desktop is preferable if you want sharper UI or plan to use driver-level upscaling (e.g. RSR).

In general: set the desktop to the resolution you want to see, then adjust the game’s internal resolution to hit your target framerate. Avoid mixing multiple scaling steps unless necessary.

Settings → System → Display

For 720p:

Avoid intermediate resolutions unless required by a specific game.

Game Specific

Starfield

This configuration aggressively strips down Starfield’s rendering and simulation to prioritise smooth performance. It halves internal resolution and relies on FSR upscaling, disables expensive effects like volumetric lighting, reflections, water detail, and most shadow work, and reduces world complexity by lowering crowd size, grass density, and level-of-detail distances. At the same time, it tweaks streaming and threading to reduce stutter. The result is significantly more stable frame pacing and higher effective FPS, at the cost of visual fidelity, draw distance, and environmental detail.

Backup Documents\My Games\Starfield\StarfieldCustom.ini and replace it with the following:

[Display]
bSkyOcclusion=0
bSkyOcclusionOverhangEnabled=0
bEnableTerrainShadowsInReflections=0
bHalfResClouds=1
bReflectionProbeIncludesSmallObjects=0
bRenderDistantAtmospheres=0
fRenderResolutionScaleFactor=0.5
bDynamicResolutionEnabled=0
bVolumetricLightingEnable=0
bEnableCloudShadows=0
bScreenSpaceReflections=0
bContactShadows=0
bTemporalAA_idTech7=1
fShadowDistance=1000.0000
fMaxShadowDistance=2000.0000

[Lighting]
bVolumetricFog=0
bGodRays=0

[Particles]
iMaxDesired=200

[Decals]
uMaxDecals=10
uMaxSkinDecals=5

[Shadows]
bDrawDistantTreesShadows=0
uReflectionProbesShadowMapResolution=64
fShadowCascadeSplitDistance0=10
fShadowCascadeSplitDistance1=20
fShadowCascadeSplitDistance2=40
fShadowCascadeSplitDistance3=80

[Terrain]
fTerrainLODErrorThreshold=4.0
fTerrainTextureBias=2.5

[Grass]
iMinGrassSize=180

[Water]
bForceLowDetailReflections=1
bReflectSky=0
bReflectLODObjects=0
bUseWaterRefractions=0

[Archive]
bInvalidateOlderFiles=1
sResourceDataDirsFinal=

[General]
SIntroSequence=
uMainMenuDelayBeforeAllowSkip=0
bEnableAsyncCompute=1
fActiveEffectConditionUpdateInterval=0.5

[LOD]
fLODFadeOutMultObjects=4.0
fLODFadeOutMultActors=4.0
fLODFadeOutMultItems=2.0

[Crowd]
iMaxActors=6

[Streaming]
sResourceCacheSize=2048
sIOThreadCount=4

[Interface]
bShowTutorials=0

Once this has been applied the various performance mods available will give limited improvements.