Skip to content

Render native FRLG level-up streaks on the existing battle queue - #339

Draft
Roxas2712 wants to merge 2 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-level-up
Draft

Roxas2712 wants to merge 2 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-level-up

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 27, 2026 •

Copy link
Copy Markdown

The missing level-up layer stops unchanged presentation consumers at import. Add FRLG's native vertical streak artwork and queue-owned drawing, using the existing battle frame for all 18 sprite samples. Only visible active battlers receive the effect; off-screen party members, hidden/fainted actors and unsupported cartridge profiles receive no substitute artwork.

Artwork is decoded from the user's exact verified cartridge, with separate tile/palette fingerprints and checked offsets. A GBA-only profile marker refreshes the cache. The new alpha painter implements RGB555 coefficients12/6 against a snapshot of the underlying surface, retaining sibling-OAM behavior. Buffers are reused and released by native battle exit. Source wrappers borrow the native layer once with callback attribution, stale-admission rejection and graphics/error restoration.

Validation:

  • Native timeline/resource ownership: 2,119 checks and source facade: 85 checks across all five GBA editions, including actual native exit releasing owned buffers. The broader fork snapshot 823bd86661 passes all 21 targeted groups: existing Gen2 options/scene/menu/stack, GBA modal, command/admission/animation, text, import/cache and render checks. The final additional exit coverage is in frozen 071fd20d37, with identical production source.
  • Metal a46f554f90 and OpenGL 5b10ace8f3 each pass 25,658 real GPU pixel/ownership checks at DPI 1/2, including clipping, transparent pixels, saturation, repeated sibling draws and callback errors. The preserved OpenGL DPI2 counterexample is fixed by binding the original target before pop(all), so scissor restoration uses its DPI. Shader arithmetic and test tolerances remain unchanged.
  • Windowless actual FR/LG decoding and an independent reference match all 128 RGBA pixels. Actual native FireRed probe 2f34155b59 performs a full cache upgrade, writes the exact 8x16 PNG and native constant record, imports the new layer and reaches the next missing switch_seq contract. Output proof d0e300cb70 verifies the production-written PNG and marker. The failed Card result remains preserved.

Draft: complete unchanged-mod battle presentation, real gameplay level-up visual acceptance and interactive 60 FPS remain unqualified. No presentation-version capability is advertised to hide remaining contracts. Gen2 rules, input, HP, PP, RNG and saves retain their native owners.

QA enforces 20 GiB free and uses fresh disposable profiles. No player saves, ROM payload, generated artwork or private runtime is published.

Contributions by Roxas2712 — https://github.com/Roxas2712. LICENSE-ROXAS2712.md preserves the specific integration permission for Cedric / UNDERdecoded with the applicable credit requirement. Existing notices, licences and rights remain intact.

The source-facing layer composes the native session, boundary and drawing prerequisites in #329/#317. The public native diff preserves its older queue body and adds one queue gate/row type rather than copying a current-fork controller. LeafGreen registration/manifest remains in #183. The qualified public composition 57edc03055 passes all 13 targeted groups, including 2,119 timeline and 85 facade checks, using those declared prerequisites. Its windowless FR/LG resource result matches the independent 128 pixel reference. No current-fork native body is overlaid.

The shared native-alpha bank now accepts an optional shader program and scoped uniform setup, allowing the separately offered colour-effect interface to combine fade/mask/alpha in one painter call. Default native level-up callers retain their original program and integer operation. Fork/public composed CPU checks pass93 effect ownership checks plus2119 streak and85 facade checks; owned-output Metal/OpenGL probes pass346 checks each in both compositions, including the default alpha path. This extension does not qualify full gameplay or window/FPS acceptance.

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