Skip to content
NX Native

nxnative settings explained: frame rate, upscaling, rumble and performance

The screen before each game lists the settings that game supports. This guide explains every one of them in plain words, what it costs and when it is worth changing, following the project's own Settings documentation.

Updated 2 November 2026. 7 min read.

nxnative settings explained: frame rate, MetalFX upscaling, rumble and performance options

Where the settings are

When you open a game, the screen before it starts shows the settings the game supports. They are on one scrollable screen under Game, Controls and Performance. A setting that only matters while another is on appears under it and disappears when that one is turned off. Tap Play to start: the app remembers your choices for the next start.

Each game comes with the settings it was tested with, called the tested defaults. A setting you leave at its default is not stored, so a newer build's tested settings reach you without doing anything. Reset to tested defaults at the bottom puts every setting back. A Mac app shows the same settings in a window of its own, with the most used ones first and the rest under Advanced settings.

You can build a settings file with the env.txt generator, and the full original text is on the Settings docs page.

Game settings

  • Frame rate: for games whose speed the app controls (Breath of the Wild, Tears of the Kingdom and a few others): 30 fps or 60 fps. 60 is smoother; 30 is what the Switch ran and uses less power, so the phone stays cooler and the battery lasts longer. The game runs at real speed either way.
  • Render scale: the size of the 3D picture, from 50 to 100 %. Below 100 % the size is fixed there and the game's own dynamic resolution is off; 100 % keeps the game's own. Lower can be lighter on the GPU but is blurrier; the HUD and text keep their sharpness. Only games the app can scale offer it.
  • Console mode: Docked renders at the Switch's TV resolution. Handheld renders at its lower handheld resolution, which is lighter on the phone and can give a higher frame rate.
  • Upscaling: a game that renders below the screen's resolution is scaled up to the screen. Standard, the default, scales smoothly. MetalFX uses Apple's MetalFX upscaler, which sharpens edges and text. Turn it on if the picture looks soft and the device has GPU time to spare: on a Mac, or on an iPhone in handheld mode at 30 fps. For long sessions at 60 fps on an iPhone leave it at Standard, because MetalFX costs GPU time and can add heat.
  • Game language: the game's own languages. The app was packed with one of them; pick another here without repacking.
  • Frame-rate counter: shows the frames per second at the top left (iPhone).

Controls settings

  • Touch feedback: a light tap from the phone when you press an on-screen button (iPhone).
  • Game rumble: the game's vibration, on the phone or on a connected controller.
  • Rumble strength: how strong the game's vibration is, from 0 to 300 %.
  • Rumble cutoff: a controller's vibration weaker than this stays off, and the rest is spread over the full range. It is off (0 %) by default. A controller with rotating motors can rumble all the time in a game that sends a quiet texture: Mario Kart 8 Deluxe needs about 45 % to rumble only on crashes and drifts. The phone's own vibration is not affected.

More about touch layouts, controllers and gyro is in the controls guide.

Performance settings

These settings change how the app hands frames to the screen and how it prepares the GPU's work. The tested defaults are a good start. Change them when a game stutters, runs hot or you want less latency.

  • Frame buffering: each finished frame is copied into a buffer of two images that the screen shows from, so the game can start its next frame at once. Without it the GPU idles between frames and iOS can lower its clock: on an iPhone 17 Pro Max, Breath of the Wild fell to 30 fps without frame buffering and held 60 with it. Turn it off if the controls lag behind and the game holds its frame rate without it. Cost: up to one frame more latency (about 28 ms on an iPhone 17 Pro Max) and two more frame-sized images in memory.
  • Metal 4 pipelines: the app keeps what it built in a pipeline archive on the phone and builds most pipelines in a few microseconds, so a scene full of new ones stutters less. Turn it off only if a game crashes or runs out of memory with it. Cost: memory for the archive while the game runs, and storage on the phone.
  • Pipeline prebuild: builds a stand-in for every pair of shaders the game has before the first frame, behind a Preparing pipelines screen. The first start waits a few minutes, once, and so does the first start after a game update or an app update that brings new shaders. It needs Metal 4 pipelines. Turn it off if you do not want to wait at that first start; a pipeline seen for the first time then makes the game stall briefly while it is built.
  • Encode thread: the app turns the game's graphics commands into Metal commands on a thread of its own, so the game's thread can go on sooner. It is on by default on the iPhone and off on the Mac. Leave it on unless a game misbehaves; turning it off is a diagnostic step.
  • Hold frames when late: for games whose frame rate the app controls. On (the default for most games) gives an even 30 fps (or 20) in heavy scenes instead of a mix of 30 and 60. Off keeps aiming at 60: a late frame is shown one refresh later, so heavy scenes look less even but stay closer to 60 on average. Turn it off if the game often falls to 30 fps although it is only slightly late.
  • Performance HUD: Apple's performance overlay over the game: frame rate, frame and GPU times, memory. Useful to see what a setting changes; leave it off for play.

What to try first

What you seeTry this
The phone gets hot or the battery drains fastFrame rate 30, Console mode Handheld, Upscaling Standard
The picture looks softRender scale 100 %, or Upscaling MetalFX if the device has GPU time to spare
Short stutters in new scenesMetal 4 pipelines on, and Pipeline prebuild on (one wait of a few minutes at the first start)
The game drops to 30 fps at 60 on an iPhoneFrame buffering on
Controls feel lateFrame buffering off, if the game holds its frame rate without it
A controller rumbles all the timeRaise Rumble cutoff
A game crashes or runs out of memoryMetal 4 pipelines off

Not every game offers every setting, and the results above come from the project's own tests on specific games and devices, so treat them as starting points. Your game's page lists what its profile needs.

Fix a setting with env.txt

A line such as DM_PRESENT_SNAP=0 in Documents/env.txt (in the Files app, under the app's name) sets a setting from the file. The settings screen then shows it greyed out, and the file wins over your choice and the game's default. Fully close and reopen the app after editing the file. On a Mac app the file is at ~/Library/Application Support/nxnative/<title ID>/env.txt.

Two switches change how the screen behaves: DM_LAUNCHER=0 skips the settings screen (the choices you saved there still apply) and DM_SAVED_CHOICES=0 starts with the tested defaults and keeps your saved choices for later. The env.txt generator writes every line for you and can load a file you already have.

Facts on this page were checked against the official nxnative commit bfc70881 (31 Oct 2026). The project changes often, so the official repository always wins.

This is an unofficial guide based on the project's public documentation. Use only games you own. For the latest details, check the official repository.

Keep reading

More guides