Skip to content

Missing HiDPI resolution listing on a Retina MacBook Pro. #18964

@dvessel

Description

@dvessel

Is there an existing issue for this?

  • This is a bug in RetroArch frontend
  • I have searched the existing issues

Description

On a Retina display, navigate to Settings > Video > Output then select Screen Resolution and note the resolution list. They are all low-dpi resolutions that are not exposed in System Settings > Display by default. None of the HiDPI Retina resolutions are not present and if any of the resolutions are selected, the screen goes black until you revert it manually from retroarch.cfg.

I was working on a swift script to work around this limitation (only to select alternate refresh rates) and I ran into the same problem. CGDisplayCopyAllDisplayModes returns only lo-DPI resolutions by default. I don’t have any experience with Swift but in my search, I found a way to reveal the correct display modes. Remembering how RetroArch lists display modes, I searched the codebase and it looks like it’s doing the same here and here.

It must be called like so:

CGDisplayCopyAllDisplayModes(
    displayID,
    // HiDPI modes (Retina) ignored without this:
    [kCGDisplayShowDuplicateLowResolutionModes: kCFBooleanTrue!] as CFDictionary
  )

The other problem is video_refresh_rate being set to zero causing the screen to go black after the selection.

Expected behavior

No response

Steps to reproduce the bug

  1. navigate to Settings > Video > Output
  2. make any selection
  3. screen goes black

Version/Commit

1.22.2

Bisect Results

No response

Present in the nightly version

Yes, this is reproduced in the nightly build

Platform & operating system

macOS Tahoe 26.4.1 M1

Affected Cores

No response

Environment information

No response

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions