Skip to content

games/0100DE501433A000: Tetris Effect: Connected 2.0.2.2 plays on the Mac and the iPhone - #2595

Open
528z4b2kgc-ux wants to merge 1 commit into
seedds:mainfrom
528z4b2kgc-ux:games/tetris-effect-connected
Open

528z4b2kgc-ux wants to merge 1 commit into
seedds:mainfrom
528z4b2kgc-ux:games/tetris-effect-connected

Conversation

@528z4b2kgc-ux

Copy link
Copy Markdown
Contributor

What and why

Adds the profile for Tetris Effect: Connected (0100DE501433A000, 2.0.2.2, SDK 13.3.2, Unreal Engine 4.27, NVN), with its note and its games table row.

The host refuses the EOS SDK NRO, so the Redpoint EOS plugin never creates its online subsystem. The game's own online layer then reads the vtable of the null subsystem it gets back and crashes about 3.5 s after boot. The rewriter cuts in patches.py point those lookups at Unreal's NULL subsystem (32 sites in 1.0.0, 34 in 2.0.2). On 2.0.2, MULTIPLAYER then stayed black, waiting on a game-layer "logged in to EOS" check that nothing satisfies through NULL; one more cut answers true. Both are workarounds in the game's code, and the note says so.

The memory layout is the other Unreal 4.27 games' (the provisional 64 GB alias region failed on the iPhone). The shader tables are 2.0.2.2's split. main reads them since the IoStore reader change, so #1619 was closed.

Note: dm/games/0100DE501433A000/README.md. Also a line in Online SDKs in NROs are never loaded: this is a game that does not take the refusal. That may matter for the open question there.

Checked

  • Tests: all dm/tools/tests, dm/ios/tests and dm/gfx/tests test files pass (Python 3.14, the pinned tool requirements).
  • Games run: Tetris Effect: Connected 2.0.2.2 (0100DE501433A000). On main f63ecbd4, the NSP script (--platform mac) split 11,923 shaders whose data rows match the profile's tables, built all 11,923 Mac shaders, and a headless fresh-save boot reached the title and the EULA at about 60 fps, with no red line. Earlier builds through NX2Apple, on an older nxnative, played Journey from Area 1 and opened MULTIPLAYER on the Mac, and ran at a steady 60 fps on an iPhone.
  • Devices and OS: M5 Pro, macOS 27.2; iPhone (iPhone19,4), iOS 27.2.
  • Not checked: regress.py, since this changes only one profile and the docs; an IPA built from main.

Docs

  • The findings are in the game note, docs_patches.py and docs_symptoms.py were run
  • No game files, keys or data extracted from a game in the change (the tables hold shader keys and package paths, as other profiles do)

🤖 Generated with Claude Code

… Mac and the iPhone

The profile moved from the provisional one the NSP script wrote, with the
Unreal 4.27 memory layout of Mario & Luigi and OCTOPATH TRAVELER II (the
provisional 64 GB alias region failed on the iPhone), depth_mode zero, and
shader_groups / shader_note kept as written. 1.0.0 has a build row for its cuts.

The host refuses the EOS SDK NRO, so the Redpoint EOS plugin never makes
its online subsystem, and the game's own online layer reads the vtable of
the null subsystem it gets back (crash about 3.5 s after boot). Rewriter
cuts point those lookups at Unreal's NULL subsystem: 32 sites in 1.0.0's
main, 34 in 2.0.2's. 2.0.2's MULTIPLAYER then waited forever on a game-layer
"logged in to EOS" check that nothing satisfies through NULL; one more cut
answers true. Both are workarounds in the game's code, noted as such.

The shader tables are the split of 2.0.2.2 (11,923 shaders, inline in the
IoStore export bundles beside an encrypted pak); pso_manifest.tsv merges
Mac and iPhone play recordings. The note, the games table row, the patch
index and a line in the online SDK reference entry come with it.

Checked on main f63ecbd, M5 Pro: the NSP script --platform mac splits
tables matching the profile's data rows and builds all 11,923 Mac shaders;
a headless fresh-save boot reaches the title and the EULA at about 60 fps,
no red line. Earlier builds through a front end played Journey and opened
MULTIPLAYER on the Mac, and ran at 60 fps on an iPhone (iOS 27.2). Tool
tests: all dm/tools, dm/ios and dm/gfx test files pass. Not run: regress.py
(profile-only change), an IPA from main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added rewriter The NSO rewriter and per-build patches docs Documentation game: 0100DE501433A000 A game new game Adds a game profile that main does not have yet labels Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation game: 0100DE501433A000 A game new game Adds a game profile that main does not have yet rewriter The NSO rewriter and per-build patches

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant