Jump to content
Henry2010

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

29 posts in this topic

Recommended Posts

UPDATE

 

Hm sorry I forgot to update this topic. This tutorial works only in 10.8 here on my hackintosh. I have read that some people made it work in 10.9, but only with Intel's intergrated GPU.

 

Cheers

 

--------------------------

 

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
 

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.
 

 
4, In Terminal, run

 ioreg -l

 
Use Edit - Find to get your DisplayProductID and DisplayVendorID. In my case, I got

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
 

 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

DisplayVendorID-38a3

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

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.
 

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

 
In my case, it was like
 

        <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

 <key>scale-resolutions</key>
 <array>
 </array>

And add a new sibling

<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.
 

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.

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:
 

<?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!

Picture B
 
 
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
 
http://www.insanelymac.com/forum/topic/208410-fixing-scrambledstretched-or-wrong-resolution-laptop-display-problems/
Fixing Scrambled,Stretched, or Wrong Resolution Laptop Display Problems
http://www.insanelymac.com/forum/topic/281412-how-to-advanced-edid-injection/
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

Share this post


Link to post
Share on other sites
Advertisement

With the 10.8.4 update, apple added more mechanism to check if the overridden resolution is compatible with the EDID read from monitor. So it won't work, if your monitor doesn't really support the resolutions. up until 10.8.4 you would get upscaled resolutions with this method...

Share this post


Link to post
Share on other sites

With the 10.8.4 update, apple added more mechanism to check if the overridden resolution is compatible with the EDID read from monitor. So it won't work, if your monitor doesn't really support the resolutions. up until 10.8.4 you would get upscaled resolutions with this method...

I am in 1084 and it works. If it did not work for you, maybe you added a wrong resolution

Share this post


Link to post
Share on other sites

I am in 10.8.3, but I can't find a lot of these things... My DisplayVendorID and DisplayProductID have hexidecimal numbers instead of regular numbers like yours (0x469 and 0x2498). When I search for IODisplayPrefsKy I don't find anything. Also, I don't understand the data section under IODisplayEDID that you have, where did that come from? There's also a data section under scale-resolutions and I don't know where that comes from either. What am I doing wrong, is my computer just not compatible with this hack?

Share this post


Link to post
Share on other sites

I am in 10.8.3, but I can't find a lot of these things... My DisplayVendorID and DisplayProductID have hexidecimal numbers instead of regular numbers like yours (0x469 and 0x2498). When I search for IODisplayPrefsKy I don't find anything. Also, I don't understand the data section under IODisplayEDID that you have, where did that come from? There's also a data section under scale-resolutions and I don't know where that comes from either. What am I doing wrong, is my computer just not compatible with this hack?

If you take your time diving into this topic, I think you'd have a better understanding of the technique being discussed here.

http://www.insanelymac.com/forum/topic/281412-how-to-advanced-edid-injection/

Share this post


Link to post
Share on other sites

I am in 1084 and it works. If it did not work for you, maybe you added a wrong resolution

The reason, why I'm telling, that up until 10.8.4 is, because with the same override file I had 3840x2160, (1920x1080(HiDpi)). After updating to 10.8.4 I lost all resolutions. I have the same result on my macbook pro _and_ on my hackintosh.

 

Here some screens up until 10.8.4:

3840x2160 http://i.imgur.com/SRUsQQY.jpg

1920x1080 (HiDPI) http://i.imgur.com/KEFTyB1.jpg

1920x1080 http://i.imgur.com/OxQ453f.jpg

 

Another screenshot on 10.8.3 http://i.imgur.com/PElXpyz.jpg

If it is true, what you are saying, it could be some Samsung problems, which is being discussed in apple-support forums too.

I am in 10.8.3, but I can't find a lot of these things... My DisplayVendorID and DisplayProductID have hexidecimal numbers instead of regular numbers like yours (0x469 and 0x2498). When I search for IODisplayPrefsKy I don't find anything. Also, I don't understand the data section under IODisplayEDID that you have, where did that come from? There's also a data section under scale-resolutions and I don't know where that comes from either. What am I doing wrong, is my computer just not compatible with this hack?

With `ioreg` you can get everything you want. With the argument "-x" you can print the values on hex-base too.

For example:

 

$ ioreg -l | grep DisplayProductID

would return it in decimal

$ ioreg -lx | grep DisplayProductID

would return it in hexadecimal

 

The information between <data> key is the hexadecimal value encoded in base64. You can use online converter or use plist editor from Xcode.

Share this post


Link to post
Share on other sites

The reason, why I'm telling, that up until 10.8.4 is, because with the same override file I had 3840x2160, (1920x1080(HiDpi)). After updating to 10.8.4 I lost all resolutions. I have the same result on my macbook pro _and_ on my hackintosh.

 

Here some screens up until 10.8.4:

3840x2160 http://i.imgur.com/SRUsQQY.jpg

1920x1080 (HiDPI) http://i.imgur.com/KEFTyB1.jpg

1920x1080 http://i.imgur.com/OxQ453f.jpg

 

Another screenshot on 10.8.3 http://i.imgur.com/PElXpyz.jpg

If it is true, what you are saying, it could be some Samsung problems, which is being discussed in apple-support forums too.

 

With `ioreg` you can get everything you want. With the argument "-x" you can print the values on hex-base too.

For example:

 

$ ioreg -l | grep DisplayProductID

would return it in decimal

$ ioreg -lx | grep DisplayProductID

would return it in hexadecimal

 

The information between key is the hexadecimal value encoded in base64. You can use online converter or use plist editor from Xcode.

I will try that, thank you.

Share this post


Link to post
Share on other sites

As I say, it has to do with the new nvidia drivers came with 10.8.4.

I reverted the geforce kexts und bundles to the 10.8.3 versions and there you go. 1920x1080(HiDPI) is there again...

Share this post


Link to post
Share on other sites

It says 'system-only'-invalid in SwitchResX. Why?

Share this post


Link to post
Share on other sites

Hi, I'm trying to do this on a 1920x1080 laptop display. The only hidpi resolution that shows up is half that of 1920x1080 (Not optimal to say the least) I'm trying to get a grip on how this works. I'm pretty sure I did the tutorial right but more than likely wrong resolutions added. :P

Share this post


Link to post
Share on other sites

Hi, I'm trying to do this on a 1920x1080 laptop display. The only hidpi resolution that shows up is half that of 1920x1080 (Not optimal to say the least) I'm trying to get a grip on how this works. I'm pretty sure I did the tutorial right but more than likely wrong resolutions added. :P

 

you can't go past beyond of what your monitor natively supports. 

Share this post


Link to post
Share on other sites

Hello,

 

Has anybody been able to get this guide working on 10.9? I had it working well in 10.8.5, but on 10.9, I don't see my custom resolutions in Display Preferences. I know the override is being "read" because when I added a "DisplayProductName" (? forget the exact name) key with a test string, that showed up in System Info. I've enabled HiDPI resolutions and do see one that comes up by default (without me needing to provide an override) in Preferences.

 

SwitchResX shows my custom resolutions and I am able to select my custom HiDPI ones there. If I do that, I am at the right resolution and no resolution shows up as selected in Display Preferences. When I uninstall SwitchResX, it seems to undo the set though.

 

Does anybody know what SwitchResX does to switch resolutions? Or why my custom resolutions don't show up in Display Preferences? Any help appreciated.

 

Thanks,

/vv

Share this post


Link to post
Share on other sites

Hello,

 

Has anybody been able to get this guide working on 10.9? I had it working well in 10.8.5, but on 10.9, I don't see my custom resolutions in Display Preferences. I know the override is being "read" because when I added a "DisplayProductName" (? forget the exact name) key with a test string, that showed up in System Info. I've enabled HiDPI resolutions and do see one that comes up by default (without me needing to provide an override) in Preferences.

 

SwitchResX shows my custom resolutions and I am able to select my custom HiDPI ones there. If I do that, I am at the right resolution and no resolution shows up as selected in Display Preferences. When I uninstall SwitchResX, it seems to undo the set though.

 

Does anybody know what SwitchResX does to switch resolutions? Or why my custom resolutions don't show up in Display Preferences? Any help appreciated.

 

Thanks,

/vv

What is your graphics card?

Share this post


Link to post
Share on other sites

I've tried with both the onboard Intel HD3000 and a GTX 660. The resolution I was attempting to reach is within the max resolution supported by both cards.

 

When I had it working on 10.8.5, my monitor was powered off my GTX 660 with the default OSX drivers

 

/vv

Share this post


Link to post
Share on other sites

I've tried with both the onboard Intel HD3000 and a GTX 660. The resolution I was attempting to reach is within the max resolution supported by both cards.

 

When I had it working on 10.8.5, my monitor was powered off my GTX 660 with the default OSX drivers

 

/vv

And which resolution might that be?

Share this post


Link to post
Share on other sites

2048x1280 for a 1024x640 (HiDPI)

Well, all I know is, they(nvidia and nvidia team in apple) added new mechanism in nvidia drivers onwards the 10.8.4 and later (including 10.9), to check the added or overridden resolutions. I had to revert to the older nvidia drivers from 10.8.3 while I'm being on 10.8.4 and 10.8.5 and it did work. But for 10.9 I'm out of luck. The old drivers aren't even linking on the 10.9… I already tried the nvidia web drivers too.

Share this post


Link to post
Share on other sites

OSX 10.9.1 / UX301LA / Intel Iris 5100 / 13-Inch 2560 x 1440 native resolution

 

All things are to small, but sharp...

 

I tryed to add 1920x1080, 1600x900 hidpi resolutions...

 

Doesn't working...

<?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>5126</integer>
	<key>DisplayVendorID</key>
	<integer>19728</integer>
	<key>IODisplayEDID</key>
	<data>
	AP///////wBNEAYUAAAAAAAXAQSlHRF4Bt5Qo1RMmSYPUFQAAAABAQEBAQEBAQEBAQEB
	AQEBVl4AoKCgKVAwIDUAJqUQAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAA
	AAAAAAAAAAAA/ABMUTEzM1QxSlcxNAogAKU=
	</data>
	<key>scale-resolutions</key>
	<array>
		<data>
		AAAHgAAABDgAAAAB
		</data>
		<data>
		AAAGQAAAA4QAAAAB
		</data>
		<data>
		AAAFVgAAAwAAAAAB
		</data>
	</array>
</dict>
</plist>

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

 

"Domain (/Library/Preferences/com.apple.windowserver) not found"

 

Thank you :-)

Share this post


Link to post
Share on other sites

Ok, not need anymore, i found out how to get HiDPI on Retina Macbook Smbios:

 

You need to use

00000B40 00000654 00000001 00200000

instead of

00000B40 00000654 00000001

in the description. (just add 00200000 at the end)

 

Example as Picture (Attached)

post-735125-0-40351600-1397163639_thumb.jpg

Share this post


Link to post
Share on other sites

hi! i tried this in 10.10.1 to get my external TV to work. i want it to run at 1360x786 and 2040x1180 (both resolutions run fine with windows)

 

so i created this file:

 
<?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>1815</integer>

        <key>DisplayVendorID</key>

        <integer>1970170734</integer>

        <key>IODisplayEDID</key>

        <data>

        AP///////wAAABcHAAAAAAoKAQEMHhe+6C3JoFdHmCcSSEwAAAABAQEBAQEBAQEBAQEB

        AQEBAAAA/gBTUlhGYWtlRURJRAogAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB

        AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAFo=

        </data>

        <key>default-resolution</key>

        <data>

        AAAFUAAAAxIAAAABACAAAA==

        </data>

        <key>scale-resolutions</key>

        <array>

                <data>

                AAAFUAAAAxIAAAABACAAAA==

                </data>

                <data>

                AAAHAAAABJwAAAABACAAAA==

                </data>

        </array>

</dict>

</plist>

 

as you can see in the screenshot the resolutions are not shown (even not when pressing the alt-key)

 

what am i doing wrong?

 

hope someone can help me with that.

 

Greetings

 

 

post-500265-0-18741200-1422461521_thumb.png

Share this post


Link to post
Share on other sites

hi! i tried this in 10.10.1 to get my external TV to work. i want it to run at 1360x786 and 2040x1180 (both resolutions run fine with windows)

 

so i created this file:

 
<?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>1815</integer>

        <key>DisplayVendorID</key>

        <integer>1970170734</integer>

        <key>IODisplayEDID</key>

        <data>

        AP///////wAAABcHAAAAAAoKAQEMHhe+6C3JoFdHmCcSSEwAAAABAQEBAQEBAQEBAQEB

        AQEBAAAA/gBTUlhGYWtlRURJRAogAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB

        AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAFo=

        </data>

        <key>default-resolution</key>

        <data>

        AAAFUAAAAxIAAAABACAAAA==

        </data>

        <key>scale-resolutions</key>

        <array>

                <data>

                AAAFUAAAAxIAAAABACAAAA==

                </data>

                <data>

                AAAHAAAABJwAAAABACAAAA==

                </data>

        </array>

</dict>

</plist>

 

as you can see in the screenshot the resolutions are not shown (even not when pressing the alt-key)

 

what am i doing wrong?

 

hope someone can help me with that.

 

Greetings

It stopped working for me too from the 10.8.3 through 10.9.* up to 10.10.2. They added new mechanisms to check the resolution overrides. They can't exceed, what the monitor reports as his maximum. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By philippd
      Hey there
       
      So I managed to do a vanilla install of 10.14 on my new machine.
      I have 2 exact same displays hooked up to my ASUS STRIX RX470 8G.
      Display 1: connected via HDMI
      Display 2: connected via DVI to HDMI cable
       
      Display #1 works perfectly fine, but display #2 has a really ugly pink/ magenta tint to it.
       
      In Clover (in fact even in the first half of booting) the second display has the colors just right.
      Then, my screen glitches/ flashes for a second
      The display #1 continues to work properly, #2 turns pink.
       
      Any help would be very much appreciated!
    • By SeePurple
      The display sleep does not work correctly. Starting with Mac 10.12.4, the display sometimes does not wake up. The backlight works, there is no image, a black screen. Currently installed 10.14.1. All the same. If the display is sent to sleep, then sometimes it can wake up in a black screen with a working backlight. From the description, it is not difficult to guess that the display sometimes wakes up correctly and sometimes wakes up in a black screen. In the course of the experiments, I also saw that the display sometimes woke up and showed the boot screen (the Apple logo and progress bar), a second after that the desktop appeared. This behavior occurs only when the display wakes up on a black screen and then I close and open the laptop cover again, after which the boot screen sometimes appears for a second, but sometimes nothing appears, the system just hangs.
      I hope I clearly described the symptoms of the problem.
       
       
      The screenshot was taken after the experiment. I sent the display to sleep, then woke it up. He woke up in a black image with burning lights. Then I closed and opened the laptop bucket, pressed the space bar and waited a few seconds. After a few seconds, the boot screen with the Apple logo appeared and then the desktop appeared. Immediately made a screenshot.
       
      Asus k501lb
      Intel HD 5500
      Core i-5 5200U ( Broadwell )
      Display: au optronics B156HTN03.8

       

    • By Alexandru
      Hello InsanelyMacForum,
       
      I managed to boot into Mac OS Sierra with my Intel Core 2 Duo, Nvidia 9400 GT and 4 GB of Ram machine, got internet and sound working, but the issue appears when I boot with Nvidia Web Driver. I get these acid colours, but Graphics Acceleration is working fine. I tried to inject EDID from my display, but no results as well. Would be really grateful if someone could provide some help. Thank you!

    • By b31k
      Report Problem Files.zip
    • By bojarek8
      Hello Gentlemens
       
      I am asking you with a great request for help with a problem I can not deal with. 
      I hope I have chosen a good section on this topic
       
      I have been using my Hackintosh for some time now 
      it does not cause me any more problems except for the one that irritates me
       
      My problem: 
       
      the system does not recognize my monitor and detects it as a 
      monitor monitor VGA
      13,9'' (800 x 600)
      Gigabyte GeForce 9600 GT 512  MB
       
       
      My monitor model: LG Flatron W2243S 
       

       
       
      As you can see in the attached picture, the system does not recognize the monitor as a built-in screen
       
      My main problem is that when the screen resolution is set to 1920x1080, black bars appear on the sides of the screen
      It is not very comfortable, that's why I would like to change it and make the image look the whole width of the monitor
      The monitor is connected to the graphics card with an adapter from the VGA connector to the DVI connector
       
      this is my conifig.plist 
      https://drive.google.com/open?id=1kBoGpfR8ooGAm-Y9C8Qu7rZetDWI8t6w
       
       
       
      I hope that I described my problem in a comprehensible way, thank you very much for your help  
       
       
×