Repository navigation
Game options for 120 FPS, button layout and screen fill; faster builds - #1
Open
imnotsharingmyname wants to merge 2 commits into
Open
imnotsharingmyname wants to merge 2 commits into
imnotsharingmyname wants to merge 2 commits into
Conversation
Game options: a game whose app lists DM_FPS_TARGET 120, DM_PAD_LAYOUT or DM_PRESENT_FILL in its launcher.json gets Frame rate (30/60/120), Button layout and Screen fill rows. Other games keep the 60 FPS switch, and a choice is written to env.txt only once it is made. Builds: the animated background holds still while a build runs (it cost close to a core), J defaults to the core count plus two so Metal compiles waiting on process start and file writes keep every core busy, and BuildService keeps App Nap off with a user-initiated activity for the build's length. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two changes, both small and gated so existing games and apps behave as before.
1. Game options read extra choices from the app's
launcher.jsonWhen a game's app lists these in its
Contents/Resources/dm/launcher.json, Game options shows:DM_FPS_TARGEToffers120.DM_PAD_LAYOUT).DM_PRESENT_FILL).Other games keep the existing 60 FPS switch and see no new rows.
GameRuntimeConfiggainshighFrameRate,buttonLayoutandscreenFill. They decode with defaults, so saved configs keep working, and a layout or fill choice is written toenv.txtonly once it is made.Note: the pinned nxnative
65501fbblists only 30/60 and neither of the other two settings, so with apps built from the pinned engine these rows stay hidden. They appear for apps built with an engine that offers them. I built EA SPORTS FC 26 with a local nxnative change that adds 120 FPS, an Xbox-label button layout and screen fill. Before this change, NX Library's 60 FPS switch overwrote that app's 120 FPS setting at every launch.2. Faster builds
Measured on an 8-core M1 Pro while a 65,047-shader game compiled (Metal
32023.922, certified, no untested-toolchain override):Jdefaults to the core count plus two, unless the user already setJ. Each Metal compile also waits on its process start and file writes, so two extra workers keep every core busy. With the background still, shaders went from 3.7 to 4.4 per second.BuildServicestarts a user-initiated activity (no App Nap, no idle sleep) for the build's length, next to the existing IOPM assertion, and runs the build at user-initiated QoS.Checks
python3 scripts/check_publication.py: passedpython3 -m unittest discover -s Tests/PublicationChecks: OKswift test: 780 tests, 0 failures, including new tests for the frame rate, layout and fill values, decoding of old configs, the rows shown per app, and the worker countbash scripts/build_app.shwithcodesign --verify --deep --strict: OK🤖 Generated with Claude Code