Repository navigation
Conversation
# Conflicts: # src/mods/Loader.lua
# Conflicts: # docs/modding.md # src/mods/Loader.lua # src/world/WorldAPI.lua
This was referenced Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gen2Recomped accepted API-3
screen.render_visibleregistrations without a native producer, so a mod could not mirror a native menu while omitting its main-screen render. Dispatch(next, state)through the common StateStack and Game composition paths for native API 1/2, unified API 2 and API 3.Only literal
falsehides a state. Hidden states stop drawing, cannot select the opaque render base/backdrop fallback, and cannot own main-screen palette zones. They retain their stack position, update and input ownership. Separate native opacity calculation for covered-state animation prevents a render-only predicate from changing simulation. Add capability/catalog coverage, a portable example, documentation and pinned-reference CI.Stack / review scope
Depends on #145 and its existing prerequisites. This branch adds one feature commit above
7801f9d715c8c1f9910a7f982ef89a6396e4137e; the main-target diff also includes the unmerged prerequisites. Review only this change.Validation
79ea62f45fb2ea8f65d081a109431e4eb1bbdb36and Gen2Recomped on Red, Yellow, Gold and Crystal.drawScene, verify hidden opaque menus, overlays, empty/fully hidden stacks, palettes, literal-false behavior, continuation routing, errors, unsubscribe/owner cleanup, failed-entry rollback, native keyboard/Input delivery and unchanged covered animations.The feature retains the parent's same ten failing suites and 17 failing assertions, with identical failure output. Separately proposed fixes are included in the green combined integration at
db7ba3283dbd9b5bd9846130c2392ef273c08bf6. Integration resolution preserved existing callback catalog entries and documentation placement; no functional conflict resolution was needed.Reference limits
The pinned Gen1 GBA UI stack does not dispatch this hook despite cataloguing it; cross-engine claims therefore cover its native Gen1/Gold-family producers. Gen2's common stack supplies it on all five generations. Gen1 API 3 supplies a shallow state context view, while Gen2 keeps an opaque state handle: the shared contract is a pure property-based predicate, not table-identity or arbitrary state-mutation parity. These differences are asserted/documented rather than modifying the reference engine. Gen1 API 2 ignores the unified opt-in.
Contract and reproduction commands describe these boundaries and host-specific palette/external-world routing. Tests are ROM-free/headless with presentation isolated; they do not claim GPU pixel equivalence, a cartridge playthrough or physical mirrored-display output.
Hosted CI
GitHub reports
action_requiredfor all 7 pull-request workflows; maintainer approval is required before the fork workflows can run. The new contract workflow has no started jobs. These are not hosted passes. Screen visibility contract run. Local feature and combined-integration results above were completed on the published/tested commits.