Jump to content

FixEDID V2.3.2, Application to generate overrides automatically for Apple Displays

FixEDID Display EDID iMac Cinema HD Thunderbolt MacBook MacBook Air HiDPI scale-resolutions

  • Please log in to reply
279 replies to this topic

#161
Amble

Amble

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

Hi,

Thanks for this great app :)

 

I would need to chance my EDID but ran into some problems. Actually I did get it working yesterday, but after I reinstalled Maverics today I can't get it working anymore. I only have one display, internal laptop LCD.

 

What I did was:

 

Dumped my EDID with DarwinDumper.

00ffffffffffff0030e458020000000000150104802313780a1be59e595098260e505400000001010101010101010101010101010101643240b8628424304060354059c210000019982140b8628424304060354059c21000001900000000000000000000000000000000000000000002000c49ff0a3c64292d4164000000001f 

Opened EDID.hex on HexEdit and changed one number, then saved it.

00ffffffffffff0030e458020000000000150104902313780a1be59e595098260e505400000001010101010101010101010101010101643240b8628424304060354059c210000019982140b8628424304060354059c21000001900000000000000000000000000000000000000000002000c49ff0a3c64292d4164000000001f

On FixEDID 1.9, loaded edited EDID.hex, changed display type to MacBook Pro display, then make.

 

Checked info.plist from DisplayMergeNub.kext and it had this EDID

0FFFFFF FFFFFF00 061014A0 00000000 0A160104 A51D1278 026FB1A7 554C9E25 0C505400 00000101 01010101 01010101 01010101 01016432 40B86284 24304060 354059C2 10000019 982140B8 62842430 40603540 59C21000 00190000 00FC0043 6F6C6F72 204C4344 0A202020 00000002 000C49FF 0A3C6429 2D416400 00000026

I changed it to my edited EDID and installed kext with Kext Wizard, rebooted but I still had my original EDID when checked with ioreg -l, also Kext Wizard didn't show DisplayMergeNub in loaded kexts.

 

I wonder what i'm doing wrong here?



#162
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Hi,
Thanks for this great app :)

I would need to chance my EDID but ran into some problems. Actually I did get it working yesterday, but after I reinstalled Maverics today I can't get it working anymore. I only have one display, internal laptop LCD.

What I did was:

Dumped my EDID with DarwinDumper.

00ffffffffffff0030e458020000000000150104802313780a1be59e595098260e505400000001010101010101010101010101010101643240b8628424304060354059c210000019982140b8628424304060354059c21000001900000000000000000000000000000000000000000002000c49ff0a3c64292d4164000000001f
Opened EDID.hex on HexEdit and changed one number, then saved it.
00ffffffffffff0030e458020000000000150104902313780a1be59e595098260e505400000001010101010101010101010101010101643240b8628424304060354059c210000019982140b8628424304060354059c21000001900000000000000000000000000000000000000000002000c49ff0a3c64292d4164000000001f
On FixEDID 1.9, loaded edited EDID.hex, changed display type to MacBook Pro display, then make.

Checked info.plist from DisplayMergeNub.kext and it had this EDID
0FFFFFF FFFFFF00 061014A0 00000000 0A160104 A51D1278 026FB1A7 554C9E25 0C505400 00000101 01010101 01010101 01010101 01016432 40B86284 24304060 354059C2 10000019 982140B8 62842430 40603540 59C21000 00190000 00FC0043 6F6C6F72 204C4344 0A202020 00000002 000C49FF 0A3C6429 2D416400 00000026
I changed it to my edited EDID and installed kext with Kext Wizard, rebooted but I still had my original EDID when checked with ioreg -l, also Kext Wizard didn't show DisplayMergeNub in loaded kexts.

I wonder what i'm doing wrong here?
It's probably due to caching.
remove caches, remove injector, reboot. remake the injector, install it reboot and it should work

#163
Amble

Amble

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

It's probably due to caching.
remove caches, remove injector, reboot. remake the injector, install it reboot and it should work

 

Thats what I did. I've tried everything but can't get it to work anymore.

 

In the created kext, IOKitPersonalities/Monitor Apple ID Injection contains correct display product id and vendor id but in IOKitPersonalities/Monitor Apple ID Injection/IOProviderMergeProperties everything is wrong, all the ID's, displayprefskey and EDID. EDID is something entirely else than what I have on the hex file I used when creating the kext, also FixEDID displayed correct ID's when I created this.

 

Any ideas what might be wrong? Below are the files I used when I created this kext.

 

Attached File  ioreg.zip   782.54KB   2 downloads

Attached File  EDID.hex.zip   234bytes   5 downloads

Attached Files



#164
Amble

Amble

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

I did a clean install again. Ran DarwinDumper, used my original unedited EDID in FixEDID, selected "Apple MacBook Pro Display" left other settings default, and then make. Installed and cleared cache with Kext Wizard, rebooted but there is no chance in EDID, also DisplayMergeNub.kext is not loaded.

 

Attached File  EDID.hex.zip   234bytes   0 downloads

Attached File  DisplayMergeNub.kext.zip   15.1KB   2 downloads



#165
Smith@@™

Smith@@™

    InsanelyMac LOL

  • Retired
  • 2,928 posts
  • Gender:Male
  • Location:Somewhere over the rainbow...ITALIA!
  • Interests:Dark matter and dark energy. E basta. HD3000. E basta.

Also for me, DisplayMergeNub is not loaded, HP laptop..



#166
Amble

Amble

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

Any ideas why this won't work on some laptops?



#167
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Any ideas why this won't work on some laptops?

Unfortunately: no.
All the tests I've done so far all worked.
I haven't seen yet a case where the driver didn't work...

#168
Amble

Amble

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

Unfortunately: no.
All the tests I've done so far all worked.
I haven't seen yet a case where the driver didn't work...

 

Could you check if the above kext I created with FixEDID has anything weird. The problem is that it won't load. I have AMD 7570M.

 

I tried it again when I did a clean install. I didn't do anything else after install, except added correct framebuffer and some other options on Clover's config.plist graphics section to enable QE/CI.

<key>Graphics</key>
	<dict>
		<key>FBName</key>
		<string>Typha</string>
		<key>Inject</key>
		<dict>
			<key>ATI</key>
			<true/>
			<key>Intel</key>
			<false/>
			<key>NVidia</key>
			<false/>
		</dict>
		<key>LoadVBios</key>
		<true/>
	</dict>

I then ran DarwinDumper, used that EDID.hex in FixEDID, selected "Apple MacBook Pro Display" left other settings default, and then make. Installed and cleared cache with Kext Wizard, rebooted but DisplayMergeNub.kext is not loaded.



#169
Smith@@™

Smith@@™

    InsanelyMac LOL

  • Retired
  • 2,928 posts
  • Gender:Male
  • Location:Somewhere over the rainbow...ITALIA!
  • Interests:Dark matter and dark energy. E basta. HD3000. E basta.

Now works, it's loaded. I remaked all on new clean installation. 



#170
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

I made a new version of the TV VGA driver for windows.
Now it supports an Apple ICM profile.
This works on non-plug and play TV's with resolutions of 1280x960 and 1600x1200 (2 drivers).
Works on Windows 7, Windows 8, Windows 8.1 (tested as I made overrides for some friends too for their plug and play monitors)

EDIT: Slighly updated version.

This one first removes the old override data and then sets the new data and sets the modes...

Attached Files



#171
Ramalama

Ramalama

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 255 posts
  • Gender:Not Telling
  • Location:Germany

Andy? :-)

 

Im messing here with my internal LCD screen... it's 2560x1440 on 13,3Inch and it's connected through internal Displayport... not lvds...

 

So i hope you can understand me, if i say there is all too small on this screen... i can change to 1600x900, but it's not sharp at all...

 

On the retina MacBookPro 10,1/11,1/2 you have this hidpi options, there is all nice scaled and sharp...

 

I tryed to make self some Overridings, with resolution options... but they didn't make any effect, no hidpi options...

 

I have only one hidpi option if i change smbios to MacbookAir 6,2, thats 1280x720... It's very sharp and all (HiDPI), but i hope you can understand me, if i say, there is everything too big!

Especially if you came from 2560x1440...

 

Is there any chance to get more hiDPI options? 1600x900 as HiDPI would be very nice, or at least anything over 1280x720 and under 2560x1440 xD

 

I hope you can help :-)

 

Thank you very much! :-)

Cheers :-)

Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   4d 10 06 14 00 00 00 00 00 17
version:         01 04
basic params:    a5 1d 11 78 06
chroma info:     de 50 a3 54 4c 99 26 0f 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    56 5e 00 a0 a0 a0 29 50 30 20 35 00 26 a5 10 00 00 18
descriptor 2:    00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
descriptor 3:    00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
descriptor 4:    00 00 00 fc 00 4c 51 31 33 33 54 31 4a 57 31 34 0a 20
extensions:      00
checksum:        a5

Manufacturer: SHP Model 1406 Serial Number 0
Made week 0 of 2013
EDID version: 1.4
Digital display
8 bits per primary color channel
DisplayPort interface
Maximum image size: 29 cm x 17 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
Default (sRGB) color space is primary color space
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 241.500 MHz, 294 mm x 165 mm
               2560 2608 2640 2720 hborder 0
               1440 1443 1448 1481 vborder 0
               -hsync -vsync 
Dummy block
Dummy block
Monitor name: LQ133T1JW14
Checksum: 0xa5 (valid)
EDID block does NOT conform to EDID 1.3!
	Missing monitor ranges



------------------------------
00ffffffffffff004d1006140000000000170104a51d117806de50a3544c99260f505400000001010101010101010101010101010101565e00a0a0a029503020350026a510000018000000100000000000000000000000000000000000100000000000000000000000000000000000fc004c5131333354314a5731340a2000a5
------------------------------
AP///////wAGEBSgAAAAAAoWAQSlHRJ4Am+xp1VMniUMUFQAAAABAQEBAQEBAQEBAQEBAQEBVl4AoKCgKVAwIDUAJqUQAAAYAAAA/QA4TB5TEQAKICAgICAgAAAA/wBDWTY0MjBaNlVHMQoAAAAA/ABDb2xvciBMQ0QKICAgAGY=
------------------------------


#172
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...
read here...
http://www.insanelym...esktop-display/

#173
Ramalama

Ramalama

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 255 posts
  • Gender:Not Telling
  • Location:Germany

 

I readed that already :-( And done that...

i put in 3840x2160, 3200x1800, 2732x1536 and 2560x1440 (Thats native)

in hope that i can get 1920x1080 HiDPI, 1600x900 HiDPI, 1366x768 HiDPI, 1280x720 HiDPI...

 

And what i get is only 1280x720 HiDPI... But thats extreme big... i get this too without any overrides...

 

On the other thread, no one answers... :-(

 

If i put this resolutions in the display plist, i get that resolutions, but as normal resolutions, and not HiDPI resolutions :-(

 

Maybe you can help :-)

 

Cheers :-)

<?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>37426</integer>
	<key>DisplayVendorID</key>
	<integer>1552</integer>
	<key>IODisplayEDID</key>
	<data>
	AP///////wAGEDaSACINAgMTAQSlNCB4Jm6hp1VMnSUOUFQAAAABAQEBAQEBAQEBAQEB
	AQEBVl4AoKCgKVAwIDUAJqUQAAAYAAAA/wAyQTkwMzQxWjBLMAogAAAA/QA4TB5TEQAK
	ICAgICAgAAAA/ABMRUQgQ2luZW1hCiAgAO4=
	</data>
	<key>scale-resolutions</key>
	<array>
		<data>
		AAAMgAAABwgAAAAB
		</data>
		<data>
		AAAPAAAACHAAAAAB
		</data>
		<data>
		AAAKAAAABaAAAAAB
		</data>
		<data>
		AAAKrAAABgAAAAAB
		</data>
	</array>
</dict>
</plist>

Attached Files



#174
cavallo

cavallo

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 350 posts
  • Gender:Male

The app is finished.
After running it automatically get the display data from the first display.
If you want to make a patch for the second, change the number above on 2 instead of 1 and press the set display data button.
If you have a second screen it will now get the required data.
Use DarwinDumper (2.7.6 or better) to get your EDID.

Open the EDID.hex file with the open button.

Select the Apple Display type to emulate.
Press the Make button.
Now on your desktop you will get the following new files:
- A displayoverride for your display which is patched (probably don't want to use this).
- A EDID binary which is patched (handy for 2nd check with edie-decode).
- DisplayMergeNub.kext auto tailored for your config (probably want to install this).

EDIT: New version V1.1
- Modified driver creation to use the new DisplayMergeNub
- Fixed a bug to get 2nd / 3rd / etc display with button (caused crash)
- Added basic params override for display to be set as LCD
- Fixed Info.plist creation code
EDIT: 1.1b
- Fixed OSBundleLibraries in Info.plist generation
EDIT: 1.2
- Fixed driver file copy bug in case of spaces in path
- Added Apple LED Cinema display data and option
- Added option for only EDID injection (unpatched)
EDIT: 1.3
- Added support for the display classes AppleDisplay and AppleBacklightDisplay (for some notebooks)
EDIT: 1.4
- Added IODisplayPrefs check in DisplayMergeNub.kext
- Added build target for DisplayMergeNub.kext
- Added IODisplayPrefs key in FixEDID for matching on that key
- Added optimization for multiple monitors (identical), now you can override each display, even on multiple GPU's individually
- Fixed a mistake in just edid override
EDIT: 1.5
- Added override for IODisplayPrefs (check/don't check)
- Added used display class for the selected monitor auto detection (AppleDisplay/AppleBacklightDisplay)
- Updated DisplayMergeNub.kext for handling boolean for IODisplayPrefs use or not
EDIT: 1.5b
- Recompiled 32-bit kext binary for 10.5 and above
- Recompiled 64-bit kext binary for 10.6 and above
- Merged both binaries in one universal binary so the kext now works on 10.5 and better
EDIT: 1.6
- Added hex2int conversion in ObjC manner (thanks to

Marchrius for the hex2int routine)

- Changed code to only parse vendor and device once and then convert to int and set the decimal value
- So thanks to Marchrius setting the vendor and device values is a lot faster now

EDIT: 1.7

- Added version override to EDID V1.4 (fixes some issues)

- Added option for adding / fixing monitor ranges descriptor (missing in some EDID's but required by EDID V1.3 or V1.4)

- Option for adding / fixing monitor ranges is by default enabled but can be disabled by unchecking the checkbox

EDIT: 1.8

- Disabled checkbox for monitor range patch by default (patch can be enabled by clicking on the checkbox)

- Rewrote the routine for getting the IODisplayPrefs key and setting the vendor and device id in both decimal and hexadecimal (thanks to Marchrius for supplying the faster routine, I modified it slightly for multiple displays) it now gets the vendor and device id from the IODisplayPrefs key instead of running 2 tasks for getting them. It also is now NSTask and NSPipe based (thanks again to Marchrius). It really is about 4 times faster.

- Made override for monitor ranges more generic, it should now work on any display

EDIT: 1.9

- List with all the displays implemented from which you can choose (credits:  Marchrius)

- Reads only once the displays unless refresh is clicked (credits:  Marchrius)

- Faster setting of display data (credits:  Marchrius)

- New UI (credits:  Marchrius)

 

If you have Monitor_Apple.kext or DisplayMergeNub.kext installed and which to patch, remove the kext in /S/L/E and caches, reboot, run DarwinDumper and then run the app, otherwise the display values will be wrong...

Enjoy and please give me feedback ;)
Source is included :D

It Works on my Lenovo B590, but fit's important to read post number 4



#175
ghajini08

ghajini08

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts

Attached File  EDID.zip   1.36KB   5 downloadsAttached File  Screen Shot 2014-01-19 at 18.42.36.png   957.14KB   13 downloads

@Andy Vandijck,

Hi have a look at my screenshot please. As you can see I have changed the resolution to 1440x900. Now what the screenshot doesn't show is that my screen has black borders around an inch and half thick on both sides.....essentially rendering my screen with a 4:3 vertical borders. is there any way I can actually get the higher resolutions to stretch across my entire screen rather than box itself?

 

The screenshot doesn't show the black borders as the screen limit itself is the edge of the the new resolution. Also at first my screen was detected as 13 inches ....but after a reboot it magically got detected as 15 inch. Finally, the display prefs show my screen as "Inbuilt display", is this the correct way the modified kext should work using fixedid?

I have attached my EDID dumped via darwin dumper.



#176
polkaholga

polkaholga

    InsanelyMac Geek

  • Donators
  • 151 posts
  • Gender:Male
  • Location:Otherland

@ Andy

 

Thanks for all the work you're doing.

Just one minor thing, The one monitor i'm mimicking as internal iMac display doesn't show it's right size.

It's a 27 as in PIC_2, but it says 21 in PIC_1...

What could i do about this ?

Sorry for the OT....

 

at  Applications/Utilities/System Information.app/Contents/Resources/English.lproj/SPinfo.strings

1 line needs to be changed...

from:  DISP_INCH            = "%@-inch";

to:      DISP_INCH            = "27-inch";



#177
artur-pt

artur-pt

    InsanelyMacaholic

  • Local Moderators
  • 4,725 posts
  • Gender:Male
  • Location:Portugal
  • Interests:TechManiaco

hello Andy

 

can u see again what is the problem with this files extracted from darwin dumper

 

Attached File  EDID.zip   2.29KB   5 downloads

 

that is from my new notebook

 

i have problems loading hd4000graphics.kext

 

without the kext i have QE

 

with the kext i have QE/CI.. but the screen flicks and all kind of artifacts

 

thanks



#178
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

New version with support for changing display class...

Enjoy :D



#179
Ramalama

Ramalama

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 255 posts
  • Gender:Not Telling
  • Location:Germany

Nice :-)

 

Thank you AnV very much! :-)



#180
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,641 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

EDID.zip Screen Shot 2014-01-19 at 18.42.36.png
@Andy Vandijck,
Hi have a look at my screenshot please. As you can see I have changed the resolution to 1440x900. Now what the screenshot doesn't show is that my screen has black borders around an inch and half thick on both sides.....essentially rendering my screen with a 4:3 vertical borders. is there any way I can actually get the higher resolutions to stretch across my entire screen rather than box itself?

The screenshot doesn't show the black borders as the screen limit itself is the edge of the the new resolution. Also at first my screen was detected as 13 inches ....but after a reboot it magically got detected as 15 inch. Finally, the display prefs show my screen as "Inbuilt display", is this the correct way the modified kext should work using fixedid?
I have attached my EDID dumped via darwin dumper.

best for display does the trick normally.
it's the same EDID patched with new color data and Apple EDID info.
the kext just overrides this, but keeps the resolution data...





Also tagged with one or more of these keywords: FixEDID, Display, EDID, iMac, Cinema HD, Thunderbolt, MacBook, MacBook Air, HiDPI, scale-resolutions

  Topic Stats Last Post Info

1 user(s) are reading this topic

0 members, 0 guests, 1 anonymous users

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