Is there an existing issue for this?
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
- navigate to Settings > Video > Output
- make any selection
- 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
Is there an existing issue for this?
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.
CGDisplayCopyAllDisplayModesreturns 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:
The other problem is
video_refresh_ratebeing set to zero causing the screen to go black after the selection.Expected behavior
No response
Steps to reproduce the bug
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