Skip to content

Overcooked! All You Can Eat: profile and Unity shader keys (patches 0100, 0101) - #372

Closed
TeeJayBaker wants to merge 1 commit into
LNPANDY:mainfrom
TeeJayBaker:overcooked-profile
Closed

TeeJayBaker wants to merge 1 commit into
LNPANDY:mainfrom
TeeJayBaker:overcooked-profile

Conversation

@TeeJayBaker

@TeeJayBaker TeeJayBaker commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Fix or feature

  • Fix
  • Feature

What and why

A profile for Overcooked! All You Can Eat (0100F28011892000, update 1.0.11 = v720896, Unity 2019.4.11f1), carried as two patches until seedds/nxnative#836 lands. Refs #369.

  • 0102: three optional profile keys in shader_split.py (unity_tier, unity_skip_keywords, unity_skip_passes) that leave out the Unity programs the player never draws: other hardware tiers, keyword variants the game data never enables, and the editor-only Meta pass. Without the keys nothing changes, and unity_pass_drawn returns before reading any pass tag.
  • 0103: the game's profile. With the keys its split goes from 520,394 shaders (2.3 GB package) to 45,221 (198 MB). It also sets depth_mode zero and present_interval display (60 fps). The game note has the evidence for each cut and its limits.

The Frame rate choice that was 0056 is now #1044 (issue #1043), stacked on this one.

GAMES.md, GAMES.it.md and GAMES.zh-CN.md get the row, and the counts are 148 there and in the six READMEs. The GAMES.md gallery is regenerated with the screenshot. Its image links to upstream's pinned commit, so it shows once #836 lands and the pin moves.

Checked

  • Tests: python3 tools/engine.py check (69 patches apply cleanly to c78d7375bea9), tools/tests. In engine/: test_unity_tier.py (a new test: a pass tag without first raised KeyError before the early return), test_docs.py, test_launcher_settings.py, test_settings.py, the 72 split tests.
  • Another Unity game unchanged: I have no other Unity game's files, so I split Overcooked with its three unity_* keys removed, which is what every other Unity profile looks like, once with main's shader_split.py and once with this one. The four tables (shader_map.tsv, shader_facts.tsv, shader_pairs.tsv, pso_pairs.tsv) and the 2.3 GB package are byte-identical: 520,394 shaders each.
  • Run on a Mac: built with the NSP script and played on an M1 Pro, macOS 26.7.2, on the earlier pin. 35 minutes at 30 fps through the menus, two DLC world maps and a level on each, with no shader missing from the map. Then 4.5 minutes at 60 fps (59.9–60.0 fps) from an app built with this profile; its pipeline archive was accepted, 1.5 s before the first frame. Not checked: a build on this pin, iOS, every level, game speed at 60 fps against a clock, online play.

Screenshots

None, no visible change in the launcher.

Scope

  • No engine file (dm/, scripts/, docs/, ref/) is added to the repository: a change there is a patch in patches/ (a commit in engine/, then tools/engine.py export, and tools/engine.py check passes), with its Upstream-Status
  • A fix to the engine or a game profile also goes to seedds/nxnative as a PR in parallel: this PR's patch says forwarded seedds/nxnative#..., or pending until that PR is open
  • No keys, game files or data extracted from a game in the change or the attachments

@github-actions github-actions Bot added documentation Improvements or additions to documentation patch-queue Changes the patch queue or the upstream pin labels Nov 1, 2026
@TeeJayBaker TeeJayBaker changed the title Overcooked! All You Can Eat: profile and Unity shader keys (patches 0054, 0055) Overcooked! All You Can Eat: profile, Unity shader keys and a Frame rate choice (patches 0054–0056) Nov 1, 2026
@v0lumehi v0lumehi added the nice-to-have Goes into the next release if it is ready in time label Nov 1, 2026
@v0lumehi v0lumehi modified the milestones: v1.1.1, v1.1.2, v1.1.3 Nov 1, 2026
@v0lumehi

v0lumehi commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the profile. The size of the diff (78k lines) looks like the shader tables and screenshots, is that right? It is in v1.1.3. Engine changes go to seedds/nxnative first, as CONTRIBUTING.md and patches/README.md describe. Could you open the matching pull request there and put its number in the patch header (Upstream-Status: forwarded seedds/nxnative#N)? If you cannot, tell me and a maintainer sends it. The patch number is given out when the pull request merges, so you do not need to chase it.

@TeeJayBaker

Copy link
Copy Markdown
Contributor Author

Yes, nearly all of it is patch 0055's generated tables: shader_map.tsv (about 45k lines) and pso_pairs.tsv (about 29k), plus about 3.7k lines for the gallery screenshot as a binary patch. The hand-written parts are small: 0054 is 238 lines and 0056 is 175.

The upstream PR is seedds/nxnative#836, already in the patch headers.

@v0lumehi

v0lumehi commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Thanks for the explanation of the size: generated tables and one binary screenshot, small hand-written parts. That is fine. The engine moves to a newer pin for v1.0.2, so the three patches may need a refresh afterwards. I will write here when the bump is in main. The patches wait for seedds/nxnative#836. It stays in v1.1.3.

@v0lumehi v0lumehi left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @TeeJayBaker for the Overcooked profile and for explaining why the tables are large. The three patches have valid headers and the Unity keys are a nice addition.

  1. Rebase on the current main. patches/series, GAMES.md, GAMES.zh-CN.md, README.md and README.zh-CN.md conflict, and the numbers 0054 to 0056 are taken. Please regenerate the profile counts after the rebase. I renumber at merge.
  2. In patch 0054, unity_pass_drawn runs for every pass of every Unity game and calls t['first'].upper() even when unity_skip_passes is empty. A tag entry without first or second would break the split for other Unity games. Please return early with if not UNITY_SKIP_PASSES: return True, and re-split one other Unity game to show it is unchanged.
  3. Patch 0056 is a new launcher setting (Frame rate), not a profile change, and it was not run in a front end. A change to how the launcher works starts as an issue. Please split it out into its own PR with an issue.

Next: after the rebase and the split I review again. The profile part stays in v1.1.3.

@v0lumehi v0lumehi added the enhancement New feature or request label Nov 5, 2026
@v0lumehi v0lumehi modified the milestones: v1.2.2, v1.2.5, v1.3.2 Nov 6, 2026
@v0lumehi

v0lumehi commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

@TeeJayBaker this PR conflicts with main in patches/series, GAMES.md, GAMES.zh-CN.md, README.md and README.zh-CN.md. Please rebase onto main and regenerate the profile counts. I renumber at merge.

My review from Nov 5 still has two open points.

  1. Make unity_pass_drawn in patch 0054 return True early when UNITY_SKIP_PASSES is empty, and show that one other Unity game splits unchanged.
  2. Move patch 0056 (Frame rate) into its own PR with an issue.

The profile patches also wait for seedds/nxnative#836, which is still open.

@TeeJayBaker TeeJayBaker changed the title Overcooked! All You Can Eat: profile, Unity shader keys and a Frame rate choice (patches 0054–0056) Overcooked! All You Can Eat: profile and Unity shader keys (patches 0100, 0101) Nov 9, 2026
@TeeJayBaker

TeeJayBaker commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor Author

Thanks, all three are done.

  1. Rebased on main. The patches are now 0102 (Unity keys) and 0103 (profile), after main took 0100 and 0101 today, and the Overcooked row is in GAMES.md, GAMES.it.md and GAMES.zh-CN.md. The counts are 148 everywhere: the GAMES pages said 140 while their tables have 147 rows, so I set those to 148 as well.
  2. unity_pass_drawn now returns True straight away when UNITY_SKIP_PASSES is empty, with a test for a tag entry without first (it raised KeyError before). I don't have another Unity game's files, so I split Overcooked with its three unity_* keys removed, which is what any other Unity profile looks like, once with main's shader_split.py and once with the patched one. The output is byte-identical: 520,394 shaders, the four tables and the 2.3 GB package.
  3. Frame rate is in Frame rate choice (30 / 60 fps) for games shown at every display tick #1043, with the PR A Frame rate choice for present_interval display games (Overcooked, Monster Train 2) #1044 stacked on this one, because it edits Overcooked's own profile files.

…102, 0103)

Rebased on main. 0102 (Unity keys): unity_pass_drawn returns early when
unity_skip_passes is empty, so a profile without the key reads no pass tag.
0103: the Overcooked profile, refreshed on c78d7375. The Frame rate patch
moves to its own pull request.

GAMES.md, GAMES.it.md and GAMES.zh-CN.md get the Overcooked row, and the
profile counts are 148 (the 147 rows of the tables, plus Overcooked).
TeeJayBaker added a commit to TeeJayBaker/NX2Apple that referenced this pull request Nov 9, 2026
…vercooked, Monster Train 2)

Split out of LNPANDY#372, on top of it (it edits Overcooked's profile files).
Issue LNPANDY#1043.
@v0lumehi v0lumehi modified the milestones: v1.3.2, v1.4.0, v1.5.0 Nov 12, 2026
@LNPANDY

LNPANDY commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Per CONTRIBUTING.md (Helping with games), new game profiles and Unity shader split keys go directly to upstream seedds/nxnative first. Please open a pull request there. Thank you!

@LNPANDY LNPANDY closed this Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request nice-to-have Goes into the next release if it is ready in time patch-queue Changes the patch queue or the upstream pin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants