Env config generator
A Packed app reads settings from a file called env.txt, one KEY=VALUE line each. Pick the settings you want below and copy the file. Anything you leave at “Not set” stays as the app decides.
Settings
The mode the game sees the Switch in: docked (console) or handheld. Read once when the game starts, so change it before you open the app.
If not set: The game's tested setting decides; console unless it says otherwise.
Caps the frame rate. Only works in games whose speed the app controls. The nxnative developers note that 30 fps saves battery.
If not set: The game's tested frame-rate target applies.
Shows how many frames per second reach the screen, at the top left. Overrides the counter setting the app was packed with.
If not set: The setting the app was packed with applies. The nxnative project's documents disagree on whether the counter is on or off by default, so pick a value to be sure.
The language the game runs in. It must be a language the game itself supports.
If not set: On iPhone and iPad, the language the app was packed with; otherwise English (US).
Fixes the game's 3D views at this fraction of their size and turns the game's dynamic resolution off. Only works in builds that support render scale.
If not set: 1.0: the game keeps its own dynamic resolution.
0.5 to 1. Leave empty for not set.
Lets NieR:Automata 1.0.3 scale its own resolution between 70 and 100 %. Only works in builds that support it.
If not set: Off: full resolution.
Starts the Mac app in fullscreen instead of a window.
If not set: A window.
The folder the game's save is synced through, so the Mac app and the iPhone app share one save. Enter a folder path, icloud for iCloud Drive › nxnative Saves, or 0 to turn it off.
If not set: The folder chosen in the Mac settings window; off if none.
A light haptic tap when you press an on-screen touch control.
If not set: On.
Whether the game can make the controller rumble.
If not set: On.
Scales how strong rumble feels. 0 is silent.
If not set: 1: the game's own strength.
0 to 3. Leave empty for not set.
Controller rumble below this level stays silent, and the rest is stretched over the full range. For games whose quiet rumble keeps the motors running; the nxnative developers use 0.45 for Mario Kart 8 Deluxe. The phone's own rumble is unaffected.
If not set: 0: nothing is cut off.
0 to 0.9. Leave empty for not set.
How a picture smaller than its place on the screen is scaled up: bilinear, or Apple's MetalFX spatial scaler.
If not set: Off: bilinear scaling.
Copies each finished frame into a ring of 2 to 4 textures so the game can start drawing the next one at once.
If not set: The game's tested setting applies.
Builds the game's render pipelines with Metal 4's compiler and the packed pipeline archive. Off builds them the older way, with no archive.
If not set: On on the Mac; on iPhone and iPad, the game's tested setting.
Prebuilds the known shaders into the pipeline archive ahead of time.
If not set: On.
Prepares the game's graphics work for Metal on a thread of its own, alongside the thread that translates it.
If not set: On on iPhone and iPad; on the Mac, off unless the game's profile turns it on.
Whether a frame that arrives late may stay on screen longer than the frame-rate cap allows.
If not set: On.
Shows Apple's Metal performance overlay over the game: frame rate, frame and GPU time, and memory.
If not set: The nxnative project does not state a default.
Your env.txt
Nothing to write yet: every setting is at its default or not set.
Where the file goes
iPhone and iPad: in the Files app, open the folder with the app's name (the app's Documents) and save the file there as env.txt. Then fully close the app and open it again.
Mac app: save it as ~/Library/Application Support/nxnative/<title ID>/env.txt, where <title ID> is the Game's title ID.
A setting in env.txt wins over the app's settings screen, which then shows it greyed out.