Contribute
Register

[FIX] Corrupt color depth in High Sierra/Mojave

Status
Not open for further replies.
No sign of any attempt to inject EDID in those files.
Sorry, as it didn't work, I reversed back to no EDID injection. Updated files with EDID Injection. I also threw in DarwinDumper EDID binary and FixEDID resulting binary. And ioreg EDID terminal output.
 

Attachments

  • debug.zip
    4.2 MB · Views: 111
This method actually does sort of fix the color banding (terrible shadows) but it does also make the color profile with washed colors (terrible colors), however after you boot simply go change to the Display color profile and you get the colors back to normal.

But it didn't fix the other issue that I have with HDMI:
- When I plug the HDMI cable, the internal display runs like on a small refresh rate, the cursor is laggy (external display output is all ok) the behavior/issue is only on the internal display
- As soon as I unplug the HDMI cable, the screen will remain black and I'm forced to force reboot laptop by holding down the Power button.

HOWEVER, while I attached the HDMI cable and cursor laggy on internal screen, if I close the Laptop LID (HDMI output will stop as laptop will try to go on sleep) and I re-open the LID as soon as image disappears from External HDMI display, when internal display wakes: it will wake at normal refresh rate, no laggy cursor and if I detach the hdmi display, the display will only refresh and still be normal (instead of black screen).

So my workaround if I want to use HDMI is:
as soon as I connect and image shows up on TV/Ex Display, I have to close the LID for 2-3 sec and open it again, that way internal display comes back to normal.

Color banding and terribly shadows are a tradeoff situation for now Either Terrible colors or terrible shadows, you choose one.

What I'm curious is that on High Sierra 10.13.6 the issue somehow was resolved and I didn't need any patched EDID or Override at all, pure backgrounds, pure colors, no HDMI issues.
 
@RehabMan in the Device/Properties there are two EDID related patches present which im curious to know the difference between these two, which one should I use and on what case the other:

AAPL00,override-no-connect ; AAPL00,override-no-edid

Clover uses override-no-connect.
Not sure if override-no-edid still works, athough it has been used in the past (may only work with older graphics kexts).
 
Sorry, as it didn't work, I reversed back to no EDID injection. Updated files with EDID Injection. I also threw in DarwinDumper EDID binary and FixEDID resulting binary. And ioreg EDID terminal output.

The ioreg you attached shows no EDID injection.
Not surprising as there is neither EDID property in config.plist/Devices/Properties/PciRoot(0)/Pci(0x02,0).
 
What I'm curious is that on High Sierra 10.13.6 the issue somehow was resolved and I didn't need any patched EDID or Override at all, pure backgrounds, pure colors, no HDMI issues.

Drivers revised by Apple. New problems on hacks to work around. Nothing new.
 
Drivers revised by Apple. New problems on hacks to work around. Nothing new.
Well yes, but I'm curious to give a try to Public Beta 10.1 and see if maybe somehow that solves my issue as for now its a PITA.

Also the Alexandred VoodooI2C kext updates have issues so I have non working Right click...

I might switch this Laptop to Windows and use my old but gold Lenovo B570e for Hackintosh as pretty much everything works buttery smooth on it and it's the only one that survived every major update without breaking a sweat.

The only sad part is that support for macOS Mojave is gone for it, but 10.13.6 should do just fine (until those issues get fixed).
 
The ioreg you attached shows no EDID injection.
Not surprising as there is neither EDID property in config.plist/Devices/Properties/PciRoot(0)/Pci(0x02,0).

Could you point me towards how to enable EDID injection then? Maybe a link to some guide or something? All guides I encounter seem to only modify the EDID value under Graphics and enable Injection, none mentioned any Device Property (Including this one), and I can't seem to find any more information about EDID under Device Properties, even in the Clover Wiki.
 
Could you point me towards how to enable EDID injection then? Maybe a link to some guide or something?

you can try injecting EDID via DSDT/SSDT patching with MacIASL, there is a corresponding patch called "Generic with EDID" in Rehabman's repo, connected to his MacIASL. You must detect where (DSDT or SSDT-***) appropriate device is located (actually the patch will tell you if it is applicable), edit the patch inserting your custom EDID instead of the default one and apply this patch. refer to guide: https://www.tonymacx86.com/threads/guide-patching-laptop-dsdt-ssdts.152573/
 
Could you please post your original and fixed EDID?

my original EDID was:

Code:
00ffffffffffff000daf20170000000002150103802615780ad895a3554d9d270f5054000000010101010101010101010101010101012e3680a070381f40302035007ed710000018000000fe004e3137334847452d4c31310a20000000fe00434d4f0a202020202020202020000000fe004e3137334847452d4c31310a20006e

my current working custom EDID is:

Code:
00FFFFFF FFFFFF00 0610F29C 00000000 1A150104 951A0E78 02EF0597 57549227 22505400 00000101 01010101 01010101 01010101 01012E36 80A07038 1F403020 35007ED7 10000018 000000FC 00436F6C 6F72204C 43440A20 20200000 00FE0043 4D4F0A20 20202020 20202020 000000FE 004E3137 33484745 2D4C3131 0A200086

but I'm not sure it is applicable to your system, you must generate your own one. first make sure that it is injecting correctly, check it with ioreg or via terminal as described.
 
Last edited:
Check for all differences between patched EDID and native EDID. Easy enough to do with a tool like diffmerge, or even Hex Fiend.

@RehabMan I compared the DarwinDumper EDID dump and it's the following.

Original one:

---

header: 00 ff ff ff ff ff ff 00
serial number: 0d af 20 17 00 00 00 00 02 15
version: 01 03
basic params: 80 26 15 78 0a
chroma info: d8 95 a3 55 4d 9d 27 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: 2e 36 80 a0 70 38 1f 40 30 20 35 00 7e d7 10 00 00 18
descriptor 2: 00 00 00 fe 00 4e 31 37 33 48 47 45 2d 4c 31 31 0a 20
descriptor 3: 00 00 00 fe 00 43 4d 4f 0a 20 20 20 20 20 20 20 20 20
descriptor 4: 00 00 00 fe 00 4e 31 37 33 48 47 45 2d 4c 31 31 0a 20
extensions: 00
checksum: 6e

Manufacturer: CMO Model 1720 Serial Number 0
Made week 2 of 2011
EDID version: 1.3
Digital display
Maximum image size: 38 cm x 21 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Chroma Info:
Red X: 0.639648 Y: 0.333008
Green X: 0.302734 Y: 0.613281
Blue X: 0.154297 Y: 0.059570
White X: 0.313477 Y: 0.329102

Established timings supported:
Standard timings supported:
Detailed mode: Clock 138.700 MHz, 382 mm x 215 mm
1920 1968 2000 2080 hborder 0
1080 1083 1088 1111 vborder 0
-hsync -vsync
ASCII string: N173HGE
ASCII string: CMO
ASCII string: N173HGE
Checksum: 0x6e (valid)

---

Working custom one:

---

header: 00 ff ff ff ff ff ff 00
serial number: 06 10 f2 9c 00 00 00 00 1a 15
version: 01 04
basic params: 95 1a 0e 78 02
chroma info: ef 05 97 57 54 92 27 22 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: 2e 36 80 a0 70 38 1f 40 30 20 35 00 7e d7 10 00 00 18
descriptor 2: 00 00 00 fc 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20
descriptor 3: 00 00 00 fe 00 43 4d 4f 0a 20 20 20 20 20 20 20 20 20
descriptor 4: 00 00 00 fe 00 4e 31 37 33 48 47 45 2d 4c 31 31 0a 20
extensions: 00
checksum: 86

Manufacturer: APP Model 9cf2 Serial Number 0
Made week 26 of 2011
EDID version: 1.4
Digital display
6 bits per primary color channel
DisplayPort interface

Maximum image size: 26 cm x 14 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
First detailed timing is preferred timing
Chroma Info:
Red X: 0.592773 Y: 0.341797
Green X: 0.331055 Y: 0.573242
Blue X: 0.152344 Y: 0.132812
White X: 0.313477 Y: 0.329102

Established timings supported:
Standard timings supported:
Detailed mode: Clock 138.700 MHz, 382 mm x 215 mm
1920 1968 2000 2080 hborder 0
1080 1083 1088 1111 vborder 0
-hsync -vsync
Monitor name: Color
ASCII string: CMO
ASCII string: N173HGE
Checksum: 0x86 (valid)

---

Bold are the differences, red are VID and PID, blue is version, purple is chroma and green is checksum, that's all I can understand. How can we interpret other differences? I suppose that "6 bits per primary color channel" and "DisplayPort interface" params are affecting the color depth. is it possible to inject them separately?
 
Last edited:
Status
Not open for further replies.
Back
Top