Skip to content

Expose drawable presentation size through rcore and CoreLink - #7

Merged
mstan merged 1 commit into
mainfrom
feat/adaptive-presentation-size
Oct 14, 2026
Merged

mstan merged 1 commit into
mainfrom
feat/adaptive-presentation-size

Conversation

@mstan

@mstan mstan commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

A core cannot adapt its native widescreen projection when the frontend resizes because the runner receives only pads. Add an optional rcore_host_api::presentation_size callback and carry the available drawable pixel area in each CoreLink grant, before aspect letterboxing. The runner freezes that area for the grant, including resims; headless or unavailable dimensions return zero.

The append-only contract becomes rcore draft 9 / CoreLink 2.3. The callback is guarded by host struct_size; the grant retains its 240-byte 2.2 prefix and sends that prefix to older peers. Shared-memory frame layout and protocol major stay unchanged. This is local presentation policy, outside guest input and serialized simulation state.

Validation: MSVC Release build; all 32 CTests passed, including resize/unavailable/recovery callback checks and old-prefix decoding. Actual 2.2 host with 2.3 runner and 2.3 host with 2.2 runner both completed successfully. Independent C layout measurement: host API size 160, callback offset 152.

Prerequisite for the dependent Retro-Launcher adaptive presentation PR and n64lle Fit consumer. Merge this first; no release or merge is requested here.
Related adaptive Smash stack: RetroPortingToolKit/n64lle#97 and RetroPortingToolKit/SuperSmashBrosRecomp#1. Merge Runtime #7 first, then Launcher #35 with its Runtime pin preserved or updated to the merged commit; merge n64lle #97 before the game PR. No merge or release has been performed by the agent.

@mstan
mstan merged commit ec5b5b4 into main Oct 14, 2026
6 checks passed
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.

2 participants