Jump to content

Intel HD4600 banding/gradient/16-bit colors issue Y510p


intruder16
 Share

130 posts in this topic

Recommended Posts

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #1</string>
    <key>Find</key>
    <data>vhgAAADrZD0AAAEA</data>
    <key>Replace</key>
    <data>vhgAAADrBz0AAAEA</data>
</dict>

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #2</string>
    <key>Find</key>
    <data>AAAYAAAAHgAAABIAAAAkAAAA8fz2+w==</data>
    <key>Replace</key>
    <data>AAASAAAAHgAAABIAAAAkAAAA8fz2+w==</data>
</dict>

Edit: Included base64 version

Link to comment
Share on other sites

These two patches are invalid still ...

 

Hmm, my bad then - apparently hex have to be lowercase to work in Clover? Or should I convert it to base64? ...

No it would not matter the case but hex will work only in Clover Configurator ... the patch format you are given is not for Clover Configurator but instead for editing the config.plist directly which only accept Base64 so yes you have to convert Hex to Base64.

 

But still, the bits are not available in the AppleIntelFramebufferAzul.kext binary and the patch is invalid.

 

 

Edit: Okay you fixed the Hex to Base64 already ...

Link to comment
Share on other sites

@eplightning:

 

I am trying to decompile the AppleIntelFranebufferAzul kext but i'm not sure how to properly do it. I've never done this.

 

If you have some time can you show me or point me to a guide perhaps on how to do this?

 

Which debug symbols did you sourced?

 

I'm following up on the Linux i915 driver.

Link to comment
Share on other sites

@eplightning:

 

I am trying to decompile the AppleIntelFranebufferAzul kext but i'm not sure how to properly do it. I've never done this.

 

If you have some time can you show me or point me to a guide perhaps on how to do this?

 

Which debug symbols did you sourced?

 

I'm following up on the Linux i915 driver.

 

I'm using IDA Pro, pretty much supports all binary formats.

 

Have you tried the latest patch? Does it still not work with Clover?

Link to comment
Share on other sites

..Have you tried the latest patch? Does it still not work with Clover?

 

I have not tried it yet. The hex string (base64->hex) is still not in AppleIntelFramebufferAzul's binary. I've tried finding it on both 10.10.2 & 10.10.3's.

 

But i'll try asap anyway and report.

Link to comment
Share on other sites

Attached AppleIntelFramebufferAzul.kext for 10.10.3.

Yosemite on VM must be frustrating.

 

Well it's slow but I only need to for installation and some testing so doesn't really matter.

 

And kext you sent is certainly different from mine, I'll post updated patch soon.

Link to comment
Share on other sites

Alright these two patches should work with 10.10.3 kext:

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #1</string>
    <key>Find</key>
    <data>vhgAAADrZj0AAAEA</data>
    <key>Replace</key>
    <data>vhgAAADrBz0AAAEA</data>
</dict>

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #2</string>
    <key>Find</key>
    <data>AIAYAAAAHgAAABIAAAAkAAAARFAtSA==</data>
    <key>Replace</key>
    <data>AIASAAAAHgAAABIAAAAkAAAARFAtSA==</data>
</dict>
Link to comment
Share on other sites

Alright these two patches should work with 10.10.3 kext:

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #1</string>
    <key>Find</key>
    <data>vhgAAADrZj0AAAEA</data>
    <key>Replace</key>
    <data>vhgAAADrBz0AAAEA</data>
</dict>

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #2</string>
    <key>Find</key>
    <data>AIASAAAAHgAAABIAAAAkAAAARFAtSA==</data>
    <key>Replace</key>
    <data>AIASAAAAHgAAABIAAAAkAAAARFAtSA==</data>
</dict>

 

It is probably best to publish patches in hex, as it make it easier to enter without editing the file with a text editor (can introduce errors). It is also easier to use the strings for a search in a hex editor (such as hexfiend), or to apply the patches with patcho (so disassembly can be compared).

 

You can do hex patches with <string>. These are equivalent to the above:

 

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #1</string>
    <key>Find</key>
    <string>be18000000eb663d00000100</string>
    <key>Replace</key>
    <string>be18000000eb073d00000100</string>
</dict>
<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Take Three - Patch #2</string>
    <key>Find</key>
    <string>0080120000001e000000120000002400000044502d48</string>
    <key>Replace</key>
    <string>0080120000001e000000120000002400000044502d48</string>
</dict>
Note: Patch #2 does nothing. The Find and Replace are identical. In addition, the Find pattern in the second patch is not found in the binary.Probably not intentional.
Link to comment
Share on other sites

It is probably best to publish patches in hex, as it make it easier to enter without editing the file with a text editor (can introduce errors). It is also easier to use the strings for a search in a hex editor (such as hexfiend), or to apply the patches with patcho (so disassembly can be compared).

 

You can do hex patches with <string>. These are equivalent to the above:

 

Note: Patch #2 does nothing. The Find and Replace are identical. In addition, the Find pattern in the second patch is not found in the binary.Probably not intentional.

 

 

Yes I did that at the beginning, but later on I was a little confused because of posts telling me that Clover can't apply it (turned out I used wrong kext).

 

And yes, it was unintentional, edited post with correct pattern.

Link to comment
Share on other sites

... but later on I was a little confused because of posts telling me that Clover can't apply it ...

Clover accepts both <data> and <string> for KextsToPatch Find/Replace specifications.

 

<string>

- hex digits, upper or lower case

- spaces and commas are ignored, other non-hex characters cause error

- string should have even length (multiple of 2, as in 2 nibbles/byte)

 

<data>

- encoded as base64 (plist editors will do this for you)

  • Like 1
Link to comment
Share on other sites

Yes I did that at the beginning, but later on I was a little confused because of posts telling me that Clover can't apply it ...

You were right .. apologies !

 

Clover accepts both <data> and <string> for KextsToPatch Find/Replace specifications.

 

<string>

- hex digits, upper or lower case

- spaces and commas are ignored, other non-hex characters cause error

- string should have even length (multiple of 2, as in 2 nibbles/byte)

 

<data>

- encoded as base64 (plist editors will do this for you)

 

This is new information to me, thanks for pointing this out.

Link to comment
Share on other sites

@RehabMan:

 

Always a pleasure to hear your suggestions.

 

Clover accepts both <data> and <string> for KextsToPatch Find/Replace specifications.

<string>
- hex digits, upper or lower case
- spaces and commas are ignored, other non-hex characters cause error
- string should have even length (multiple of 2, as in 2 nibbles/byte)

<data>
- encoded as base64 (plist editors will do this for you)

 

I knew that. I don't know why i misinterpreted this info before.

 

The best "documentation" for Clover is in the Clover source code :-)

 

Right. But it gives you a headache sometimes. 


@eplightning:

 

I'll try your patches now.

Link to comment
Share on other sites

Another set of patches, doesn't touch bpp now - instead focusing on making sure driver computes few parameters exactly like on Linux.

<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Force lane count to 2 and bw to 0x0a in SetupOptimalLaneCount</string>
    <key>Find</key>
    <string>55 48 89 E5 49 89 D0 44 8B 9E 9C 34 00 00 44 8A 8E ED 20 00 00 45 84 C9 74 09 0F B6 8E E1 20 00 00</string>
    <key>Replace</key>
    <string>55 48 89 E5 49 89 D0 B9 02 00 00 00 41 BB 0A 00 00 00 E9 A1 00 00 00 C9 74 09 0F B6 8E E1 20 00 00</string>
</dict>
<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Always call SetupOptimalLaneCount in SetupClocks</string>
    <key>Find</key>
    <string>00 00 00 03 75 10 4C 89 E7 48 89</string>
    <key>Replace</key>
    <string>00 00 00 03 90 90 4C 89 E7 48 89</string>
</dict>
<dict>
    <key>Name</key>
    <string>AppleIntelFramebufferAzul</string>
    <key>Comment</key>
    <string>Force PORT_CLK_SEL_A to PORT_CLK_SEL_LCPLL_810</string>
    <key>Find</key>
    <string>48 8B 8B 98 00 00 00 8B 49 1C 49 8B 96 40 05 00 00</string>
    <key>Replace</key>
    <string>B9 00 00 00 40 90 90 90 90 90 49 8B 96 40 05 00 00</string>
</dict>

If it still doesn't work try to add my previous patch for forcing bpp to 6 in addition to this patchset. If still no progress then I'm out of ideas for now :c

Link to comment
Share on other sites

  • 1 month later...
 Share

×
×
  • Create New...