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.
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.
USS Normandy NCC-1701-E — IOService — AppleDisplay 2013-06-23 22-07-09.jpg 483.34KB 297 downloads
4, In Terminal, run
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
And then create a blank text file named DisplayProductID-***. In my case it was
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>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
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!
SwitchResX Preferences 2013-06-23 17-55-35.jpg 58.24KB 151 downloads
VE2201XG 2013-06-23 17-54-38.jpg 178.39KB 122 downloads
Do NOT try to choose 2560 x 1440, though. You will get a white screen or worse. Choose 1280 x 720 HiDPI instead.
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
Gigabyte H61M-DS2 rev.2.2 F8
Samsung DDR3 1600 4G
Hitachi 320 GB (WIN 7 X86 SP1)
Seagate 500 GB (10.8.4)
NEC VE2201XG Display 1280x720 HiDPI