Skip to content

Add Windows 11 25H2 support with anti-DirectFlip overlay#93

Open
DeDuplicate wants to merge 1 commit intolauralex:masterfrom
DeDuplicate:win25h2-pr
Open

Add Windows 11 25H2 support with anti-DirectFlip overlay#93
DeDuplicate wants to merge 1 commit intolauralex:masterfrom
DeDuplicate:win25h2-pr

Conversation

@DeDuplicate
Copy link
Copy Markdown

Summary

  • Add Windows 11 25H2 (build 26200+) support with updated AOB patterns and COverlayContext hooks
  • Fix per-monitor LUT identification on 25H2 (DeviceClipBox at offset 0x7698 as float)
  • Add anti-DirectFlip overlay to prevent games from bypassing the LUT filter via DirectFlip/MPO

Details

25H2 Hook Changes

  • New AOB patterns for COverlayContext::Present, IsCandidateDirectFlipCompatible, and OverlaysEnabled
  • 25H2 Present hook path: texture obtained via overlaySwapChain vtable chain instead of swap chain
  • DeviceClipBox moved to offset 0x7698 from realObj (stored as float, not int)

Anti-DirectFlip Overlay

  • On 25H2, IsCandidateDirectFlipCompatible is never called, so hooking it cannot prevent DirectFlip
  • A persistent, nearly-invisible (alpha=1/255), click-through (WS_EX_TRANSPARENT), topmost window forces DWM to always composite
  • Ensures the LUT filter stays active even when fullscreen games take focus

Test plan

  • Tested on Windows 11 25H2 build 26200 with dual 2560x1440 monitors
  • LUT applies only to the configured monitor
  • LUT persists when fullscreen games (Call of Duty) take focus
  • HDR/SDR backbuffer format detection works correctly
  • Disable/re-apply cycle works without crashes

- New AOB patterns for COverlayContext hooks on 25H2
- 25H2 Present hook: texture via overlaySwapChain vtable chain
- Per-monitor LUT: DeviceClipBox at offset 0x7698 (float RECT)
- Anti-DirectFlip overlay: persistent click-through topmost window
  forces DWM compositing so LUT stays active in fullscreen games
- OverlayTestMode memory patch via OverlaysEnabled AOB

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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