Repository navigation
Conversation
Keep the existing Mac host and add an iPadOS UIKit/Metal target built from verified private game inputs. Embed rewritten code and the registered NRO into signed sections, link the shader translator in-process, package private resources before signing, and reserve a measured iPad guest address layout. No game data or generated binaries are committed.
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 293317bb60
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Thank you for bringing TMNT up as its own target. Before we can merge, please change:
Also, the results in the description come from earlier private builds; please run this revision once on the Mac and say what you saw. |
💡 Codex Reviewhttps://github.com/ly05010419/MacNativeGames/blob/30e8b4179c4570543e2d1f68ca5b79bba8688bfc/games/tmnt/third_party/d2r_gfx/gfx/nvn/nvn_mtl.m#L12713-L12714 In the shared Mac/iPad renderer, when a full-target ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
Reviewed Please address the following before merging:
Local review checks passed: 45 TMNT source/native CPU-probe tests, 15 selected shared checks scoped to the exported review tree, and Mac/iPhone SDK syntax checks of Please also update against current |
Summary
Adds
games/tmnt: an experimental Apple silicon Mac host and iPadOS target for Teenage Mutant Ninja Turtles: Shredder's Revenge, base 1.0.0 (application ID0100FE701475A000).The port follows the repository's ahead-of-time ARM64 rewrite, native host/HLE and NVN-on-Metal approach. Runtime, graphics, rewriter, shader tools and build scripts live in the game's own directory. No game content, keys, saves, generated executable images or translated shaders are included; private apps are built from the player's own verified inputs.
Mac run of review revision 195363d
On Apple silicon running macOS 26.6.2, I rebuilt the host and shader service, packaged the shared pinned SPIRV-Cross CLI (f11ba9f0), and launched the app with an empty profile and no external system font pack. The opening animation rendered the Teenage Mutant Ninja Turtles logo and Splinter in the sewer. I closed the window after about a minute. The frame counter reported 60 FPS near the end. This run covered the opening sequence only.
The original cartridge/container volume was offline, so this run reused the verified private module rewrites and the original-hash RomFS from a prior local package. Fresh NSP/XCI extraction, level gameplay, audio quality and iPad device behavior were not retested. All 45 TMNT source tests and 17 shared dependency, packaging and no-Homebrew tests passed.
What works / validation scope
9be6a9a. iPad gameplay input, saves, lifecycle recovery and sustained stability have not been comprehensively verified.Building
macOS
On Apple silicon with Xcode command-line tools and the game's pinned Python requirements installed:
The new entry extracts and verifies the supported 1.0.0 base game. The shared tools/deps pins supply the shader compiler, Opus, libvpx and the default .NET SDK. The TMNT movie path uses embedded stb_vorbis. The inherited fallback's external Vorbis decoder is optional and disabled. See the current build instructions for optional shared fonts and the extracted-input entry.
iPadOS
The iPad instructions cover the separate UIKit/Metal target, private module/NRO embedding, in-process shader and codec libraries, XcodeGen project generation, private-resource packaging and signing.
This is a developer build workflow, not a one-command end-user installer. It requires prepared private rewrites/exports, generated headers and assembly, a local
tmnt.xcconfig, and signing/provisioning for the device. Private resources are packaged before the signed build; generatedGenfiles and game assets must remain outside Git.Main implementation changes
Simplified and Traditional Chinese
The verified base image includes both Chinese text tables and glyphs, but
title.datomits them from its seven-language catalogue. Reportingzh-Hansto the game alone therefore still loads only the listed languages. Private packaging now generates an integrity-checked catalogue overlay with the game'scnandzh-hantidentifiers, preserves the default and existing languages, and leaves the verified image unchanged. Both Mac launchers load it; iPad resource packaging verifies and copies it before signing. Older private bundles need repackaging.Automatic language selection also preserves Chinese script and region preferences: Hant and Taiwan/Hong Kong/Macao select Traditional Chinese, while an explicit Hans script selects Simplified Chinese. The game's language option and its saved preference remain in use. The new Mac package was launched with
zh-TWwithout forcingTOTK_LANG, and Traditional Chinese appeared in its menu. The iPad changes have not been rebuilt or retested on device in this update.Tests and remaining limits
encode stage did not drain in 2 sabort. The Chinese loading and rendered startup/menu results above are verified; in-game switching persistence is not yet revalidated.ios/README.md.Third-party code and licences
Source origins and adjacent licences are recorded in
games/tmnt/third_party/COPIES.mdandTHIRD_PARTY_NOTICES.md.