Jump to content

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

retina hidpi resolution display

  • Please log in to reply
22 replies to this topic

#1
Henry2010

Henry2010

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 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.
 
Attached File  USS Normandy NCC-1701-E — IOService — AppleDisplay 2013-06-23 22-07-09.jpg   483.34KB   179 downloads
 
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!
Attached File  SwitchResX Preferences 2013-06-23 17-55-35.jpg   58.24KB   89 downloads
Picture B
 
 Attached File  VE2201XG 2013-06-23 17-54-38.jpg   178.39KB   67 downloads
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.insanelym...splay-problems/
Fixing Scrambled,Stretched, or Wrong Resolution Laptop Display Problems
http://www.insanelym...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



#2
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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



#3
Henry2010

Henry2010

    InsanelyMac Protégé

  • Members
  • Pip
  • 16 posts

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

#4
jamiethemorris

jamiethemorris

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 514 posts
  • Gender:Male
  • Location:San Rafael, CA

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?



#5
p.H

p.H

    InsanelyMac Legend

  • FAQ Team
  • 743 posts
  • Gender:Male
  • Interests:Hackintosh & NBA & COD4 promod

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.insanelym...edid-injection/



#6
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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.



#7
jamiethemorris

jamiethemorris

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 514 posts
  • Gender:Male
  • Location:San Rafael, CA

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.

#8
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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



#9
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

Well what do you know:

 

5120x2880 https://dl.dropboxus...28 00.55.50.png

2560x1440(HiDPI) https://dl.dropboxus...28 00.56.04.png



#10
packrobottom

packrobottom

    InsanelyMac Protégé

  • Members
  • PipPip
  • 85 posts
  • Gender:Male

how do i revert the geforce kexts and bundles back to 10.8.3 extract them from 10.8.3 combo update and overwrite?



#11
iNekoMac

iNekoMac

    InsanelyMac Protégé

  • Members
  • Pip
  • 25 posts
  • Gender:Not Telling
  • Interests:c++/csharp programming, opengl, ios, cats, xcode

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



#12
mendietinha

mendietinha

    mendi

  • Members
  • PipPipPipPipPipPipPip
  • 720 posts
  • Gender:Male
  • Interests:full hackintosh.

having a bad time to find the correct numbers for max hidpi for my internal lcd with max res 1600x900. but lets go!



#13
lightskreen

lightskreen

    InsanelyMac Protégé

  • Members
  • PipPip
  • 99 posts
  • Gender:Male

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



#14
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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. 



#15
darkera13

darkera13

    InsanelyMac Protégé

  • Members
  • Pip
  • 31 posts
  • Gender:Male

Work with any Resolutions. Tested on HD4000, work like a charm at 1920x1080 HiDPI. Only 1 limited is your display resolution.



#16
vinodv

vinodv

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

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



#17
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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?

#18
vinodv

vinodv

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

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



#19
smolderas

smolderas

    InsanelyMac Protégé

  • Members
  • Pip
  • 21 posts

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?



#20
vinodv

vinodv

    InsanelyMac Protégé

  • Members
  • Pip
  • 5 posts

2048x1280 for a 1024x640 (HiDPI)







Also tagged with one or more of these keywords: retina, hidpi, resolution, display


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy