Skip to content

Observe the actual native send-out phase through dynamic ball waits - #378

Draft
Roxas2712 wants to merge 59 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-ball-intro-phase
Draft

Roxas2712 wants to merge 59 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/upstream-native-ball-intro-phase

Conversation

@Roxas2712

Copy link
Copy Markdown

The native send-out inserts its queue wait after entry observations are bound. Looking through this unknown row exposes the following message/action while the actual ball is still playing, so consumers lose the genuine send-out phase.

During the live native ball, retain the bound player/opponent send-out step only when both side and battler identity match the current native actor. Initial slide and post-ball row synchronization keep their existing owners. Store only scalar step indices. This is an observation fix: no new queue, clock, private trainer controller, skip permission or gameplay body is introduced.

Validation: 3,475 checks across actual native five-edition trainer intros, with repeated reads leaving the entire frame/queue/wait/ball/HP/PP trace equal to the module-absent control. The identical fixture reproduces 1,035 failures on exact predecessor dd5a507d. Current-main composition d05bd459f0 passes 186 CPU groups including new main 0af0b3cf regressions; older-public composition dac22e1a00 passes 70 groups including the same 3,475 assertions. Explicit synthetic image centres qualify phase/queue ownership, not geometry. Accepted real FireRed 368069098b predates this change and qualifies only the preceding ball fixes. Full trainer-specific poses, tween notification/extensions, switches, other views and FPS remain separately pending. Hosted CI is separate.

Owned QA profiles/copies only, 20 GiB free-space floor; private files and player saves/profiles untouched.

Builds on the offered public component stack (#376 import, #374 progress, #377 paint split). The branch also reuses the original entry observation/binding component already offered in #329; older native controllers remain. Review the phase-specific module/fixture change as 76aa58b4..47ce08bd. Qualification retains previously offered cartridge/art/stage prerequisites, which raw older main still needs for full integration.

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
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