Contribute
Register

[Guide] Add your custom retina / HiDPI resolution for your desktop display

Status
Not open for further replies.
Joined
Mar 29, 2012
Messages
20
Motherboard
Gigabyte H61M-DS2
CPU
E3-1225 v2
Graphics
RX460 2GB
Mac
  1. iMac
Hi. Excuse me for my English. I'm trying to make it simple.

1, Prepare SwitchResX, PlistEdit Pro and IORegExplorer. SwitchResX is not a must but I recommend it.

2, Enable HiDPI if you haven't done it

Code:
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool YES;
sudo defaults delete /Library/Preferences/com.apple.windowserver DisplayResolutionDisabled;

Log out and log back in if you'd like to be sure. Also works if you have Quartz Debug.

3, Extract EDID in SwitchResX. Or from IOReg as in Picture A.

3mVl2Lv.jpg


4, In Terminal, run
Code:
 ioreg -l

Use Edit - Find to get your DisplayProductID and DisplayVendorID. In my case, I got
Code:
DisplayVendorID = 14499
DisplayProductID = 26609

You also need to find IODisplayPrefsKey but it would must easier to get that in IOReg, as shown in Picture A. In my case I got this

Code:
 IODisplayPrefsKey = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/PEG0@1/IOPCI2PCIBridge/PEGP@0/ATY,Ipomoea@0/ATIFramebufferNI/display0/AppleDisplay-38a3-67f1

Hence the value: AppleDisplay-38a3-67f1

5, Create a folder on the desktop and name it DisplayVendorID-****. In my case it was
Code:
DisplayVendorID-38a3

And then create a blank text file named DisplayProductID-***. In my case it was
Code:
DisplayProductID-67f1

Use the Get Info panel to make sure this text file HAS NO EXTENSION.

6, Edit this DisplayProductID-*** file in PlistEdit Pro. Add the following children and edit their values with your own DisplayProductID DisplayVendorID and EDID data.

Code:
<key>DisplayProductID</key>
 <integer>****</integer>
Code:
 <key>DisplayVendorID</key>
 <integer>****</integer>
Code:
 <key>IODisplayEDID</key>
 <data>
****
 </data>

In my case, it was like

Code:
        <key>DisplayProductID</key>
        <integer>26609</integer>
        <key>DisplayVendorID</key>
        <integer>14499</integer>
        <key>IODisplayEDID</key>
        <data>
        AP///////wA4o/FnAQEBAQYWAQOAMBt4KpLFollVnicOUFS/7wCBQIGAlQCzANHAAQEB
        AQEBAjqAGHE4LUBYLEUA3QwRAAAeAAAA/QA4Sx5QEQAKICAgICAgAAAA/ABWRTIyMDFY
        RwogICAgAAAA/wAyMjExMTUzME5DCiAgAFM=
        </data>

7, To add your custom resolution, create a new child like this
Code:
 <key>scale-resolutions</key>
 <array>
 </array>
And add a new sibling
Code:
<data></data>

8, Convert your custom resolution with a Hexadecimal Converter/Decimal Converter

My GPU supports 2560 x 1600 max. My display supports 1920 x 1080 max. So I will need 2560 x 1440 for retina.

Code:
00000A00 000005A0 00000001

00000A00 = 2560
000005A0 = 1440
00000001 This one doesn't really matter.

I also added 1366 x 768 because I could not stand 1360 x 768 provided by OS X.
Code:
00000556 00000300 00000001

Someone with 780 SLI or 7990 Cross-Fire may set 3840 x 2160 for 1920 x 1080 HiDPI. lol

Therefore, in your PlistEdit Pro it should look similar to mine:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>DisplayProductID</key>
        <integer>26609</integer>
        <key>DisplayVendorID</key>
        <integer>14499</integer>
        <key>IODisplayEDID</key>
        <data>
        AP///////wA4o/FnAQEBAQYWAQOAMBt4KpLFollVnicOUFS/7wCBQIGAlQCzANHAAQEB
        AQEBAjqAGHE4LUBYLEUA3QwRAAAeAAAA/QA4Sx5QEQAKICAgICAgAAAA/ABWRTIyMDFY
        RwogICAgAAAA/wAyMjExMTUzME5DCiAgAFM=
        </data>
        <key>scale-resolutions</key>
        <array>
                <data>
                AAAKAAAABaAAAAAB
                </data>
                <data>
                AAAFVgAAAwAAAAAB
                </data>
        </array>
</dict>
</plist>

9, Copy your DisplayVendorID folder to /System/Library/Displays/Overrides

Now you can take a look in SwitchResX. Your custom resolutions should show up as "scaled" and "system-inactive". If you don't have SwitchResX it doesn't matter either.

Restart and voila!
u099tvn.jpg

Picture B
ZI7junm.jpg

Picture C

Do NOT try to choose 2560 x 1440, though. You will get a white screen or worse. Choose 1280 x 720 HiDPI instead.


Note:

A. Some other tutorial shows how to add custom resolutions with Switchres and Quartz Debug. It seems for laptops only. I was unable to add resolutions on my Hackintosh. Instead I got irrelevant DisplayVendorID folders in /System/Library/Displays/Overrides . Make sure you delete these folders before applying this tutorial.

B. I have not tested it with multiple displays, laptops or even TV. It is possible to be the same and, following this tutorial, you can add multiple EDID profiles to /System/Library/Displays/Overrides

C. Known issues: Lag a tiny bit when switching spaces. Also white screen for less than a second after logging in but before your retina desktop shows up. But it works fine on my Hackintosh now.

D. Do tell me if it would burn your GPU when you play games. lol

A lot of thanks to Apple, Steve, Hackintosh hackers, this forum, and especially authors of these two posts


Fixing Scrambled,Stretched, or Wrong Resolution Laptop Display Problems


HOW TO: Advanced EDID Injection


Ciao

Henry

Pentium G840
Gigabyte H61M-DS2 rev.2.2 F8
Samsung DDR3 1600 4G
MSI R6670-MD2GD3v2
Hitachi 320 GB (WIN 7 X86 SP1)
Seagate 500 GB (10.8.4)
NEC VE2201XG Display 1280x720 HiDPI
 
does my screen got to be connected with HDMI or DVI is okay ? sorry for newbie question
 
Do you know if this works past 1080p?
There is a great tool Retina Desktop Manager that does all this automatically and makes it super easy to turn on HiDPI for any resolution but seems to cap at 1080p. I have a 2560x1440p resolution on my monitors and can't seem to get past 1080p using HiDPI.

I'd love to use HiDPI as the difference is huge, but it scales the display to the 1080p max (although the monitor is still running at full native resolution, everything is just too big).
 
dude,
when i export my EDID i don't see anything even close to this ----> AP///////wA4o/FnAQEBAQYWAQOAMBt4KpLFollVnicOUFS/7wCBQIGAlQCzANHAAQEB AQEBAjqAGHE4LUBYLEUA3QwRAAAeAAAA/QA4Sx5QEQAKICAgICAgAAAA/ABWRTIyMDFY
RwogICAgAAAA/wAyMjExMTUzME5DCiAgAFM=

where did you copy this line from , i don't even see it on your first screen shot.
also you didn't say if to put that text file in the folder and i assume that yes i should . thanks for the tutorial but try to be more accurate so people can actually follow it . also when i open that text file you asked to create with no extension , the plist editor pro shows error when open the file . i don't know why people keep creating text tutorial , there is youtube and you can actually save a lot of time for people , anyway thanks :banghead:
 
dude,
when i export my EDID i don't see anything even close to this ----> AP///////wA4o/FnAQEBAQYWAQOAMBt4KpLFollVnicOUFS/7wCBQIGAlQCzANHAAQEB AQEBAjqAGHE4LUBYLEUA3QwRAAAeAAAA/QA4Sx5QEQAKICAgICAgAAAA/ABWRTIyMDFY
RwogICAgAAAA/wAyMjExMTUzME5DCiAgAFM=

where did you copy this line from , i don't even see it on your first screen shot.
also you didn't say if to put that text file in the folder and i assume that yes i should . thanks for the tutorial but try to be more accurate so people can actually follow it . also when i open that text file you asked to create with no extension , the plist editor pro shows error when open the file . i don't know why people keep creating text tutorial , there is youtube and you can actually save a lot of time for people , anyway thanks :banghead:

export it in hex by using this command : ioreg -lx
it still won't look the same as what is above, until you put it into plistedit pro - once you do that it will convert it into something like the above

That was the easy part ;)

Even after doing all of this my hack doesn't show the custom resolutions, from what i have read it looks like an nvidia issue (newer drivers seem to block custom resolutions) but i've been too lazy to try this with the intel graphics to confirm.


anyway, hope this helps :) i was stuck on this step for a bit myself


 
thanks man i got some help with this and used some internet website for this . but i wonder now , even that i didn't mange to get the desired resolution , my Steam app crashes since then , and i have no idea if its related . pls if you can check this . :banghead:
 
Forcing your monitor to run above its native resolution does nothing for you. Your displays resolution is based on _fixed_ pixels, you can't simply use a software setting to magically add more pixels to it. I just can't see why you would go through so much trouble just to still be using exact same res?
 
Status
Not open for further replies.
Back
Top