Skip to content

Bind portable ROM prose to native GBA party and item-PC menus - #172

Closed
Roxas2712 wants to merge 77 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-gba-menu-prose
Closed

Roxas2712 wants to merge 77 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-gba-menu-prose

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 24, 2026 •

Copy link
Copy Markdown

Native GBA menus still displayed imported or hardcoded labels after an API-3 mod overrode the corresponding rom_text entries. Bind the FireRed/Emerald party action readers and their separate cancel buttons, plus FireRed's Item-PC withdrawal title, cancel row and submenu. The same public consumer runs through both engines without renderer replacements.

FireRed uses the reference's sCursorOptions[n] keys; Emerald uses its named labels through the real manifest branch. Keep primary TAKE/action CANCEL/footer labels distinct, preserve native fallbacks and action identities, and read the Item-PC title live so retiring a mod restores an already-open menu. Custom/TOSS titles retain their own text.

Depends on #171. Incremental change: parent #171 → this branch.

Validation:

  • 257 shared reader checks and 62 native action/render/retirement checks.
  • Eight isolated SDK workers / 522 paired native text values, against clean Gen1Recomp 535a5ec; reference API 3 vs host API 3 and API 2/unified. Deterministic public label/table provenance; no cartridge text included.
  • Full feature run: 137/147 engine suites, with exactly the same 26 failure lines across ten baseline suites as Add shared ROM-prose registry and native Gen-2/GBA storage readers #171. SDK 3/3 and B30 pass. Combined runtime 7a12243293dcb7a6ff2a00dc64490f3c6bb5aa32, including test: repair Gen2 updater asset fixtures #128–134 repairs: 192/192, SDK 3/3 and B30 pass.
  • Native LÖVE 11.5, isolated imported FireRed/Emerald: real party draw, SUMMARY open/B-return, ITEM submenu/B-close and party close. FireRed additionally enters withdrawal through Player PC, draws the title/list/submenu and selects translated CANCEL without inventory changes.
  • Imported Red: battle 468, save conversion 95, parity J 73 and K 22. The unchanged Add shared ROM-prose registry and native Gen-2/GBA storage readers #171 negative control still displays BASE_SUMMARY after the same public override.
  • New Lua formatting, actionlint, Python compilation and diff checks pass.

Further party prompts/mail/trade/field-move names, Item-PC quantity/results, Emerald's distinct Item-PC screen and battle prose remain separate work. Native smoke does not claim normal SAVE, full playthrough, fresh full-ROM import or pixel equality. Hosted CI is separate from local validation.

See docs/portable-gba-menu-prose.md and tools/gba-menu-prose-contract-check/README.md.

Hosted CI at publication: all 32 PR workflows report action_required pending maintainer approval. The GBA menu-prose workflow has zero executed jobs; these are not hosted-green results.

# Conflicts:
#	src/mods/Loader.lua
# Conflicts:
#	docs/modding.md
#	src/mods/Loader.lua
#	src/world/WorldAPI.lua
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant