Repository navigation
Conversation
Roxas2712
marked this pull request as ready for review
October 25, 2026 22:07
This was referenced Oct 25, 2026
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.
The legacy Gen2 Mail and PC menu namespaces are missing, the Boxes alias exposes an incompatible count() contract, and script mail is stubbed. Gold/Silver mail operands also consume three bytes instead of the cartridge's two-byte word, desynchronising subsequent commands.
Add native party-slot letters, mailbox operations and PC transfers over existing save tables, semantic stationery IDs, mail-aware removals/daycare guards and save validation. Resolve ROM mail records separately from text/scripts and execute gift/delivery through the actual coroutine runner and native party chooser. Public native mail.read/mail.written producers cover reading and writing without per-redraw duplicate reads.
277 focused checks pass: 208 core/codec checks plus 69 binary ROM/actual ScriptRunner/public SDK checks. Fresh frozen upstream main 13af468: 64/74 engine; candidate b3ea11d: 66/76. All ten failed suites and every failed assertion are identical; SDK 3/3 and the other quick tiers pass in both. No unrelated upstream failures are suppressed.
Actual Crystal Rev0 import passed on b3ea11d, before the namespace-only follow-up: 388 maps, 5,039 scripts, gift and delivery mail records both resolved, zero unresolved mail operands. The existing unrelated script desync remains visible; this is a script-import check with an in-memory destination, not GPU or full-game acceptance.
Standalone core only: no dependency on the fork's species facade, UI modules, capability or qualified runtime changes. Native composition/mailbox screens, SRAM conversion, stationery artwork, complete legacy PC modes and full parity are not claimed by this PR. No private mod, cartridge, generated assets or saves are included.
Original contributions by Roxas2712 are offered to Cedric / UNDERdecoded under the specific PR permission in LICENSE-ROXAS2712.md, with visible credit. Existing third-party rights, licences and notices remain in force. This permission does not assign ownership or relicense other contributors' code.
The follow-up also resolves src.ui.gen2.BoxMenu to the actual native factory after the fork's real Metal run exposed that additional missing name. No full legacy PC UI behavior is claimed by the alias alone.
The separately reproducible Crystal event-table desync is addressed independently by PR #268; it is not hidden or removed by this PC/mail contribution.
Native composition/mailbox/PC menu integration is now offered separately in #271, with the existing #135 keyboard adapter as an explicit prerequisite. The core scope of this PR stays unchanged.