Skip to content

Preserve framebuffer rows in interlaced presentation - #227

Open
GTTeancum wants to merge 1 commit into
ran-j:mainfrom
GTTeancum:codex/preserve-interlaced-framebuffer-rows
Open

Preserve framebuffer rows in interlaced presentation#227
GTTeancum wants to merge 1 commit into
ran-j:mainfrom
GTTeancum:codex/preserve-interlaced-framebuffer-rows

Conversation

@GTTeancum

Copy link
Copy Markdown

Summary

  • preserve all decoded framebuffer rows when SMODE2 selects interlaced field mode
  • remove the presentation-time parity selection and line duplication
  • update the GS presentation regression test to require four distinct source rows

Why

The host presentation buffer already contains a complete 640x448 framebuffer. The previous path selected only even or odd source rows, duplicated each selected row, and alternated parity every VSync. That discarded half the vertical detail and made static content oscillate vertically by one source row.

A true deinterlacer can be added separately if a title supplies field-separated content. The current parity bob is destructive for games that render a complete framebuffer while using interlaced output mode.

Validation

  • Windows Release build succeeds
  • full current test suite passes: 425/425
  • X-Men Legends legal/title/menu frames changed from 224/224 duplicated adjacent row pairs to 0/224
  • the game's 1-pixel vertical vibration stopped, menu text retained full detail, and both edge icons stopped clipping between fields

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