Skip to content

Fit native opening effects to the presented send-out ball - #381

Closed
Roxas2712 wants to merge 73 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-ball-opening-projection
Closed

Roxas2712 wants to merge 73 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-ball-opening-projection

Conversation

@Roxas2712

Copy link
Copy Markdown

The fitted send-out ball cell used its scene projection while the borrowed native opening ring still painted at cartridge screen coordinates. Reuse the current presentation callback for the standalone send-out opening pass, mapping the existing native effects to the same origin and scale. Native painting and capture providers keep their existing coordinate owners; no second ball or particle timeline is added.

Validation: 460 projection assertions across five GBA editions pass; exact predecessor comparison reports 240 failures out of 450 assertions (ten callback-local checks cannot run there). Frozen current-main composition 5fe451e231 passes 198 groups on fork main 72c2a946; older-public composition 4402bdd757 passes 74 groups. Coverage includes absent/zero/invalid projection, provider errors, changed admission, graphics restoration, capture and complete native painting. Private consumer sources and native controller bodies remain unchanged. Real Metal Ruby 3fec7460ac with unchanged consumer bddb5181: all 189 observed opening-particle draws share the fitted ball centre, maximum framebuffer error 0.00000763 pixels. The opponent tick-62 image shows the ring at the ball. Both send-outs, 11 throw captures, the command menu and cleanup pass without loader errors. There are zero premature-visible player rows in 553 pre-throw observations, zero hidden-actor violations in 82 observations, and zero duplicate cells in 378 opening passes. Other views/portraits, capture image acceptance and stable frame rates remain separate. Hosted CI is separate.

Owned QA profiles/copies only, 20 GiB free-space floor; original ROMs and player saves/profiles unchanged.

Builds on #380 and the previously offered public component stack. Review the narrow production/fixture addition as 6ef0432d..3adaa863; older native bodies remain. Existing cartridge/art/stage/clock prerequisites are retained in qualification and still required for raw older main.

Contributions by Roxas2712 — https://github.com/Roxas2712. Original additions are offered under LICENSE-ROXAS2712.md, including specific integration/distribution permission for Cedric / UNDERdecoded with visible credit. Existing upstream/third-party licences and rights remain intact.

Roxas2712 and others added 30 commits October 21, 2026 21:07
# Conflicts:
#	src/mods/Loader.lua
# Conflicts:
#	docs/modding.md
#	src/mods/Loader.lua
#	src/world/WorldAPI.lua
@Roxas2712 Roxas2712 closed this Nov 4, 2026
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