Skip to content

Restore native Gen2 grouped option navigation - #333

Open
Roxas2712 wants to merge 4 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-gen2-option-pages
Open

Roxas2712 wants to merge 4 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-gen2-option-pages

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 27, 2026 •

Copy link
Copy Markdown

Gen1Recomp source clients navigate Gen2 OPTION using grouped visible() rows, child pages and focusRow, while the shared native screen exposes only a flat list. That changes both the menu hierarchy and the cursor contract in unchanged source presentations.

Add SPEED, VIDEO, GRAPHICS, AUDIO, BATTLE OPTIONS and EXTRAS views over the existing native row objects. Flat hook rows, native setters, actual option storage and unknown authored rows remain available; child pages return to their parent and only the root calls the caller completion/cancel callbacks. Left reverses the native text-speed ladder. Gen1/Gen3 keep their established flat presentation.

Based on current upstream 8d5b4387420cc1fdcadf58ad4ca78a7d8596e41d. On head 98853a30, all 121 new Gold/Silver/Crystal grouping/navigation/persistence assertions, 20 UI-layout and 23 battle-fit assertions pass. Related fork development testing reaches all six pages using normal input with an unchanged source mod; this is not full upstream gameplay/GPU or whole-engine parity qualification. No private mod, ROM, art, profile or save is included.

The group vocabulary/order follows Gen1Recomp reference 535a5ec0 (src/ui/gen2/OptionsMenu.lua); original project rights remain applicable. Roxas2712 retains rights to his own contributions and expressly offers the covered contributions to Cedric / UNDERdecoded under the included LICENSE-ROXAS2712.md, preserving applicable earlier licenses. Requested visible credit: Contributions by Roxas2712 — https://github.com/Roxas2712. Existing third-party credits remain intact.

Follow-up on c8599404: group children now go through the public constructor’s explicit rows form, allowing native per-instance presentation wrappers to reach each child without rebuilding root hooks. Independent validation on this upstream branch passes349 grouped-menu,20 UI-layout and23 battle-fit checks (392 total), including actual constructor/row/input/parent ownership and empty explicit pages. The fork’s additional window-resolution renderer depends on the native UI foundation offered separately in PR271; this minimal PR does not claim that composition capability or upstream GPU qualification.

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