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
263 replies to this topic

#61
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

Hi Andy thank you for your kext. I noteced with your kext HDMI sound not work.without is working.

Attached Files



#62
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

Hi Andy thank you for your kext. I noteced with your kext HDMI sound not work.without is working.

That's odd...
Try iMac model...
Look below, I also have HDMI audio and it works with it
EDIT: You used the right EDID binary? It's not the same as your other display.
Could you save in IORegistryExplorer and upload me the zipped .ioreg file?
I'll fix it for you.
Make sure you remove the injector and reboot before you make it

I made a new version: V1.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

Attached Files



#63
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

Thanks Andy.After set iMac worked HDMI.

Thank you.WAOO

Attached Files



#64
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

SomeOne made inject 5000conroller

http://www.osx86.net...70-hd_5xxx.html

Hi Andy, I try to make for our 6950/6970 Can you fix this AMD6000Injector please

 

This is ori ati kexts from 10.9 dp2

http://www.mediafire...ri_10.9_dp2.zip

Attached Files



#65
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

If work or not I can test Thank you.



#66
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

Little update: V1.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

So it now works on 10.5 and better fully.


 

SomeOne made inject 5000conroller

http://www.osx86.net...70-hd_5xxx.html

Hi Andy, I try to make for our 6950/6970 Can you fix this AMD6000Injector please

 

This is ori ati kexts from 10.9 dp2

http://www.mediafire...ri_10.9_dp2.zip

 

I'll check.

Could you give me your .ioreg file from IORegistryExplorer please?

Thanks

EDIT: Test the attached file, it should work with controller and Cayman IOAccelerator

Attached Files



#67
Marchrius

Marchrius

    Lo scippatore di emozioni

  • Pandora Team
  • 320 posts
  • Gender:Male
  • Location:Ferrara, Italia
  • Interests:Studente di Informatica.
    Passione/Hobby: Informatica in generale, hackintosh, musica Rock...

Hi Andy,

 

First of all grat app! I've used it for my esternal Majestic (broken EDID) TV LCD HDMI (now an iMac display ahahah) :)

 

I'm curious and I've seen the source of the app.

 

When you grep the DeviceID and other ID you use for four time the function system and then you parse each file and the code is very very very long!  :shock:

 

I've changed the code and I attach at this post the diff files.

 

P.S. I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task...

 

Tell me if the code was helpful...

Attached Files



#68
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

my ioreg rename AMDRadeonX3000 look inside folder

give me 5 mts i test your kext and detail.

Attached Files



#69
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

Hi Andy After install your kest with all ort kexts. graphics with dsdt

stack there look image

view this image ple

http://www.mediafire...pb7kcps4n640480



#70
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

Hi Andy,

First of all grat app! I've used it for my esternal Majestic (broken EDID) TV LCD HDMI (now an iMac display ahahah) :)

I'm curious and I've seen the source of the app.

When you grep the DeviceID and other ID you use for four time the function system and then you parse each file and the code is very very very long! :shock:

I've changed the code and I attach at this post the diff files.

P.S. I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task...

Tell me if the code was helpful...

Thanks for your contribution.
I'll check it this evening :D

#71
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

I've made a function that convert the hex string (w/o the "0x") in long int to convert the DisplayProductID and DisplayVendorID without re-run the task...

 

Tell me if the code was helpful...

Thanks Marchrius, I added the routine in ObjC manner and changed the routine that sets the values.

The code was very useful.

Thanks a lot again for your contribution, it really speeds up the set routine (3 ioreg parses instead of 5)

 

New version: V1.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



#72
manor

manor

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 319 posts
  • Gender:Male

Hi andy always black screen come with original kexts with AMD6000Injector.kext with out injector also same

I note AMD GraphicsAcc   Device in slot —1

Can look my image I was upload ioreg.

Thank you



#73
Marchrius

Marchrius

    Lo scippatore di emozioni

  • Pandora Team
  • 320 posts
  • Gender:Male
  • Location:Ferrara, Italia
  • Interests:Studente di Informatica.
    Passione/Hobby: Informatica in generale, hackintosh, musica Rock...
Hi Anvy,

I'm here again! :P
 
-(void)GetScreenVendorDevice:(id)sender
{
    ScreenNrString = [ScreenNr stringValue];
    screennr = atoi([ScreenNrString cStringUsingEncoding:NSUTF8StringEncoding]);

    if (screennr == 0)
    {
        NSRunAlertPanel(@"Invalid screen nr!", @"Correct the screen nr!", @"OK", nil, nil);

        return;
    }
    
    NSMutableDictionary *displayInfo = [[NSMutableDictionary alloc] init];
    NSString* outStr;
    NSTask *task = [NSTask  new];
    NSPipe *pipe = [NSPipe pipe];

    //IODisplayPrefsKey
    [task setLaunchPath:@"/bin/sh"];
    
    [task setArguments:[NSArray arrayWithObjects:@"-c", @"ioreg -lxw0 |  grep IODisplayPrefsKey | cut -d\"=\" -f2 | cut -d\"\\\"\" -f2",  nil]];
    [task setStandardOutput:pipe];
    [task launch];
    
    outStr = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease];
    outStr = [outStr substringToIndex:[outStr length]-1];
    [displayInfo setObject:outStr forKey:@"IODisplayPrefsKey"];
    outStr = [outStr lastPathComponent];
    [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:1] forKey:@"DisplayVendorID"];
    [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:2] forKey:@"DisplayProductID"];


    [DeviceID setStringValue:[displayInfo objectForKey:@"DisplayProductID"]];
    
    [DeviceDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayProductID"] UTF8String])]];
    
    [VendorID setStringValue:[displayInfo objectForKey:@"DisplayVendorID"]];
    
    [VendorDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayVendorID"] UTF8String])]];
    
    [DisplayPrefsKey setStringValue:[displayInfo objectForKey:@"IODisplayPrefsKey"]];

    if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleDisplay"].length>0)
    {
        [DisplayClassButton selectItemAtIndex:0];
        displayclass = 1;
    } else if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleBacklightDisplay"].length>0) {
        [DisplayClassButton selectItemAtIndex:1];
        displayclass = 2;
    }
}
With this part you can do only one ioreg call (trought the nstask) and you can speed up the function.
 
Replace, if you haven't make modifications to this function, and tell me is all ok...

#74
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

Hi Anvy,

I'm here again! :P

-(void)GetScreenVendorDevice:(id)sender
{
    ScreenNrString = [ScreenNr stringValue];
    screennr = atoi([ScreenNrString cStringUsingEncoding:NSUTF8StringEncoding]);

    if (screennr == 0)
    {
        NSRunAlertPanel(@"Invalid screen nr!", @"Correct the screen nr!", @"OK", nil, nil);

        return;
    }
    
    NSMutableDictionary *displayInfo = [[NSMutableDictionary alloc] init];
    NSString* outStr;
    NSTask *task = [NSTask  new];
    NSPipe *pipe = [NSPipe pipe];

    //IODisplayPrefsKey
    [task setLaunchPath:@"/bin/sh"];
    
    [task setArguments:[NSArray arrayWithObjects:@"-c", @"ioreg -lxw0 |  grep IODisplayPrefsKey | cut -d\"=\" -f2 | cut -d\"\\\"\" -f2",  nil]];
    [task setStandardOutput:pipe];
    [task launch];
    
    outStr = [[[NSString alloc] initWithData:[[pipe fileHandleForReading] readDataToEndOfFile] encoding:NSUTF8StringEncoding] autorelease];
    outStr = [outStr substringToIndex:[outStr length]-1];
    [displayInfo setObject:outStr forKey:@"IODisplayPrefsKey"];
    outStr = [outStr lastPathComponent];
    [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:1] forKey:@"DisplayVendorID"];
    [displayInfo setObject:[[outStr componentsSeparatedByString:@"-"] objectAtIndex:2] forKey:@"DisplayProductID"];


    [DeviceID setStringValue:[displayInfo objectForKey:@"DisplayProductID"]];
    
    [DeviceDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayProductID"] UTF8String])]];
    
    [VendorID setStringValue:[displayInfo objectForKey:@"DisplayVendorID"]];
    
    [VendorDecID setStringValue:[NSString stringWithFormat:@"%ld",hex2int((char*)[[displayInfo objectForKey:@"DisplayVendorID"] UTF8String])]];
    
    [DisplayPrefsKey setStringValue:[displayInfo objectForKey:@"IODisplayPrefsKey"]];

    if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleDisplay"].length>0)
    {
        [DisplayClassButton selectItemAtIndex:0];
        displayclass = 1;
    } else if ([[[DisplayPrefsKey stringValue] lastPathComponent] rangeOfString:@"AppleBacklightDisplay"].length>0) {
        [DisplayClassButton selectItemAtIndex:1];
        displayclass = 2;
    }
}
With this part you can do only one ioreg call (trought the nstask) and you can speed up the function.

Replace, if you haven't make modifications to this function, and tell me is all ok...

Can this handle multiple displays?
It doesn't look like it.
In case of multiple displays this indeed does not work right but it is a fun idea.
I'll adapt it ;)

EDIT: I also tested 3 displays

iMac and LED Cinema display can handle HDMI audio

Thunderbolt display can't handle HDMI audio

Cinema HD display and MacBook Pro display (obviously not needed for HDMI) not tested. 

 

@Marchrius: Thanks another time for your contribution, I adapted it to be able to handle multiple display entries and it still is very close to your code.

It now works really fast. (1 run through NSTask into and NSPipe directly instead of 3 separate system ran tasks with file reading)

It also gets the vendor and device id from the IODisplayPrefs key now.

Feel free to look at the code from FixEDID V1.8 ;)



#75
pico joe

pico joe

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 138 posts
  • Gender:Male
Hi Andy, nice app.. great works, http://cl.ly/image/302a2t020N1T

:thumbsup_anim:



#76
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

New version: V1.9

Fully implemented Marchrius his improvements which he gave me over PM.

Credits for the improvements of 1.9 fully go to Marchrius.

See opening post for changes :D



#77
nyolc8

nyolc8

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 802 posts
  • Gender:Male
  • Location:Budapest, Hungary

Please... make a description why is this needed exactly... and why this is better (if it's better) than using the display as it is. :)



#78
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

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

Please... make a description why is this needed exactly... and why this is better (if it's better) than using the display as it is. :)

The advantages are:

- Better colors

- Apple recognized display instead of default display



#79
nyolc8

nyolc8

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 802 posts
  • Gender:Male
  • Location:Budapest, Hungary

The advantages are:

- Better colors

- Apple recognized display instead of default display

Now that is the thing I don't get... how I get better colors? The system just uses another color profile, or this is something different?



#80
AkimoA

AkimoA

    AMD

  • Local Moderators
  • 221 posts
  • Gender:Male
  • Location:Black Forest (GER)

Thanks Andy,  i do like your mergers  :)

 

http://cl.ly/image/211y0I2H1g3Z







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

2 user(s) are reading this topic

0 members, 2 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