Contribute
Register

[GUIDE] General Framebuffer Patching Guide (HDMI Black Screen Problem)

Many thanks CaseySJ!

So, I will try with these values...

In summary: change the Platform ID to 0x3E9B0007
and in connectors:

Index 1, BusID 0x04, Type HDMI
Index 2, BusID 0x00, Type DUMMY
Index 3, BusID 0x06, Type HDMI

or

Index 1, BusID 0x06, Type HDMI
Index 2, BusID 0x00, Type DUMMY
Index 3, BusID 0x04, Type HDMI

just that, anything else to change before apply the patch?

in VRAM info? and in the patch options? (general and advanced)?

sorry for too many questions... as you can see, I'm just learning about all around Hack techs specs

thanks!
I assume you're running Mojave (10.14.x). Please let me know if this is not correct.
 
@CaseySJ I am trying to boot with HD530 but I am always getting kernel panic on boot. On ioreg everything looks loaded but cant never boot with HD530. I attached my files. What am I doing wrong?

392065
 

Attachments

  • Archieves.zip
    1.9 MB · Views: 45
@CaseySJ I am trying to boot with HD530 but I am always getting kernel panic on boot. On ioreg everything looks loaded but cant never boot with HD530. I attached my files. What am I doing wrong?

View attachment 392065
I would first recommend going back to a configuration that is closest to an untouched system as possible. Specifically:
  • Starting with the assumption that macOS is not corrupted and that AppleIntelSKLGraphicsFramebuffer and AppleIntelSKLGraphics are perfectly fine, the kernel panic might be due to something that was added.
  • Therefore remove NoVPAJpeg first and reboot.
  • If problem persists, disable WhateverGreen. This can be done at the Clover Boot Screen by selecting "Options" and adding -wegoff to the Boot Arguments. On next reboot, this flag will disappear -- it is applied only to the current boot.
Also make sure that you are not specifying IntelGFX, Inject Intel, or ig-platform-id from Clover itself. When using WhateverGreen, we must not simultaneously use Clover to inject any graphics properties.
 
I would first recommend going back to a configuration that is closest to an untouched system as possible. Specifically:
  • Starting with the assumption that macOS is not corrupted and that AppleIntelSKLGraphicsFramebuffer and AppleIntelSKLGraphics are perfectly fine, the kernel panic might be due to something that was added.
  • Therefore remove NoVPAJpeg first and reboot.
  • If problem persists, disable WhateverGreen. This can be done at the Clover Boot Screen by selecting "Options" and adding -wegoff to the Boot Arguments. On next reboot, this flag will disappear -- it is applied only to the current boot.
Also make sure that you are not specifying IntelGFX, Inject Intel, or ig-platform-id from Clover itself. When using WhateverGreen, we must not simultaneously use Clover to inject any graphics properties.
I tried all but still getting kernel panic.

Here is the weird thing. I removed all data from properties under the devices enabled all renames again and inject intel and add this ig-platform-id 0x193B0005 Voila! Intel HD530 now working with full accelerations.

But I don't get it this is the proper way to use HD530 cause as far as I know for my system 0x19120000 or 0x19120001 are the correct ig-platform-id. Hackintool now shows like that; Also connector show as a DP which my display has only HDMI.

392081


392083


392077


392079
 
I tried all but still getting kernel panic.

Here is the weird thing. I removed all data from properties under the devices enabled all renames again and inject intel and add this ig-platform-id 0x193B0005 Voila! Intel HD530 now working with full accelerations.

But I don't get it this is the proper way to use HD530 cause as far as I know for my system 0x19120000 or 0x19120001 are the correct ig-platform-id. Hackintool now shows like that; Also connector show as a DP which my display has only HDMI.

View attachment 392081

View attachment 392083

View attachment 392077

View attachment 392079
Because I haven't seen your config.plist, I'm not sure whether WhateverGreen has a problem or whether there was a configuration conflict in the config.plist.

However, platform ID 0x193B0005 looks like a laptop platform (LVDS connector). What happens when you change it to 0x19120000 in Clover (without using WhateverGreen)?

Many platform IDs default to all-DP connectors, which is why this guide (Post #1) exists -- to help us figure out the correct connector settings for our motherboards.

So even though you see "DP" for all connectors and you're using HDMI, does the HDMI output look fine? No pink tint or other issues?
 
Hi CaseySJ..!
yes, I'm running Mojave 10.14.3

So, the values that you said are correct?

I'm going to try the values that you send before ... although I'm afraid that the connector (hdmi) will not work when the Hack is started ...
Inexplicably, with the current PlataformID, which I understand is not the correct one, everything seems to work correctly, full acceleration ... except these problems with the sleep mode

thanks!

I assume you're running Mojave (10.14.x). Please let me know if this is not correct.
 
Great guide and thanks for your work :clap:

Want to report success with my Gigabyte Z370N WiFi i5-8400 with three monitors (dual display too) on 10.13.6. Basically this MB has a DP port and two HDMI ports, problem is that DP is port #4 according to AGDCDiagnose and when using config.list patches posted here and on other forums you'll get port #3 patched as a DP which actually is the HDMI 2.0 port. So you'll end with dual display support only for the two HDMI but if you use DP port you won't.

When I say port #3 or #4 I'm numbering according to Mac so I patched the port count to 4:
392113

And then patched to get index 0 has unused LVDS, usually with 0x3E9B you won't get 0 index on Hackintool so I added it manually.

XML:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                BwCbPg==
                </data>
                <key>device-id</key>
                <data>
                mz4AAA==
                </data>
                <key>enable-hdmi20</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con0-busid</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con0-flags</key>
                <data>
                IAAAAA==
                </data>
                <key>framebuffer-con0-index</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-pipe</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-type</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-con1-busid</key>
                <data>
                BQAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-index</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con2-busid</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-con2-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con2-index</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-con2-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con2-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con3-busid</key>
                <data>
                BgAAAA==
                </data>
                <key>framebuffer-con3-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con3-flags</key>
                <data>
                xwMAAA==
                </data>
                <key>framebuffer-con3-index</key>
                <data>
                AwAAAA==
                </data>
                <key>framebuffer-con3-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con3-type</key>
                <data>
                AAQAAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-portcount</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-unifiedmem</key>
                <data>
                AAAAgA==
                </data>
            </dict

Which get shown like this on Hackintool:
392114
But ioreg shows:

Code:
"framebuffer-unifiedmem" = <00000080>
"framebuffer-con3-pipe" = <12000000>
"framebuffer-con2-index" = <02000000>
"framebuffer-con2-busid" = <04000000>
"framebuffer-con3-enable" = <01000000>
"framebuffer-con3-flags" = <c7030000>
"framebuffer-con2-enable" = <01000000>
"framebuffer-con1-index" = <01000000>
"framebuffer-con1-busid" = <05000000>
"framebuffer-con1-enable" = <01000000>
"framebuffer-con0-index" = <00000000>
"framebuffer-con0-enable" = <01000000>
"framebuffer-con0-busid" = <00000000>
"framebuffer-portcount" = <04000000>
"framebuffer-con0-type" = <02000000>
"framebuffer-con0-pipe" = <00000000>
"framebuffer-con0-flags" = <20000000>
"framebuffer-con1-type" = <00080000>
"framebuffer-con3-index" = <03000000>
"framebuffer-con1-pipe" = <12000000>
"framebuffer-patch-enable" = <01000000>
"framebuffer-con2-type" = <00080000>
"framebuffer-con3-busid" = <06000000>
"framebuffer-con2-pipe" = <12000000>
"framebuffer-con3-type" = <00040000>

I think this happens since the DP port is the last one port #4 on Mac, and Hackintool seems to want con3 to index -1:

Code:
AGDCDiagnose Version: 3.20.14
## ScanPort - Start ##

[1] IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)

[2] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 4
Ports: 0x1e mst:0x1c ddc:0x1c aux:0x1c
Streams: dp:0 dvi:0 mst:2 max:3
FB: 00 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 01 : Group:   0 Address[ 2.0], Flags:[online associated ], Stream:Enabled
FB: 02 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 03 : Group:   0 Address[ 4.0], Flags:[online associated ], Stream:Enabled
Port: 01 : empty
Port: 02 : device present  [TMDS]
Port: 03 : empty
Port: 04 : [DP, 1.2, 4 x HBR2] set [4 x HBR2 : status: 7777]  Sink OUI:0-0-0  [0-0-0-0-0-0] HW Version: 0 FW Version:0.0

Leaving port count to 3 won't get you Port 4. AGDCDiagnose was a great help here since it gave the clue that the DP was Address[ 4.0] and I needed to increase Port Count and find some way to get.

BTW with 2048MB VRAM it seems we can get more HiDPI options :)
392116
My desk is a mess :)


392117



392118

Boots fine but is slower since I takes ~10 seconds to detect all screens maybe some other tweaking helps. Another annoyance is that when I power down my TV (screen at the left plugged to HDMI 1.4) it isn't detached so I have to unplugged the HDMI port to get one screen only.

Hope this help those who want to use DP and HDMI on theirs Z370N WiFi
 
Last edited:
Because I haven't seen your config.plist, I'm not sure whether WhateverGreen has a problem or whether there was a configuration conflict in the config.plist.

I attached my config.plist and other files previous post.

However, platform ID 0x193B0005 looks like a laptop platform (LVDS connector). What happens when you change it to 0x19120000 in Clover (without using WhateverGreen)?

I didn't test it. The reason I did all this, is there a problem with my RX560 or Display? I must use HD530 for a while for a test.

Many platform IDs default to all-DP connectors, which is why this guide (Post #1) exists -- to help us figure out the correct connector settings for our motherboards.
Thanks for that. :thumbup:

So even though you see "DP" for all connectors and you're using HDMI, does the HDMI output look fine? No pink tint or other issues?

There is no problem. Everything is ok no glitch no pinks tint or other issues.
 
Great guide and thanks for your work :clap:

Want to report success with my Gigabyte Z370N WiFi i5-8400 with three monitors (dual display too) on 10.13.6. Basically this MB has a DP port and two HDMI ports, problem is that DP is port #4 according to AGDCDiagnose and when using config.list patches posted here and on other forums you'll get port #3 patched as a DP which actually is the HDMI 2.0 port. So you'll end with dual display support only for the two HDMI but if you use DP port you won't.

When I say port #3 or #4 I'm numbering according to Mac so I patched the port count to 4:
View attachment 392113

And then patched to get index 0 has unused LVDS, usually with 0x3E9B you won't get 0 index on Hackintool so I added it manually.

XML:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                BwCbPg==
                </data>
                <key>device-id</key>
                <data>
                mz4AAA==
                </data>
                <key>enable-hdmi20</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con0-busid</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con0-flags</key>
                <data>
                IAAAAA==
                </data>
                <key>framebuffer-con0-index</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-pipe</key>
                <data>
                AAAAAA==
                </data>
                <key>framebuffer-con0-type</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-con1-busid</key>
                <data>
                BQAAAA==
                </data>
                <key>framebuffer-con1-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-index</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con1-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con1-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con2-busid</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-con2-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con2-index</key>
                <data>
                AgAAAA==
                </data>
                <key>framebuffer-con2-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con2-type</key>
                <data>
                AAgAAA==
                </data>
                <key>framebuffer-con3-busid</key>
                <data>
                BgAAAA==
                </data>
                <key>framebuffer-con3-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-con3-flags</key>
                <data>
                xwMAAA==
                </data>
                <key>framebuffer-con3-index</key>
                <data>
                AwAAAA==
                </data>
                <key>framebuffer-con3-pipe</key>
                <data>
                EgAAAA==
                </data>
                <key>framebuffer-con3-type</key>
                <data>
                AAQAAA==
                </data>
                <key>framebuffer-patch-enable</key>
                <data>
                AQAAAA==
                </data>
                <key>framebuffer-portcount</key>
                <data>
                BAAAAA==
                </data>
                <key>framebuffer-unifiedmem</key>
                <data>
                AAAAgA==
                </data>
            </dict

Which get shown like this on Hackintool:
View attachment 392114
But ioreg shows:

Code:
"framebuffer-unifiedmem" = <00000080>
"framebuffer-con3-pipe" = <12000000>
"framebuffer-con2-index" = <02000000>
"framebuffer-con2-busid" = <04000000>
"framebuffer-con3-enable" = <01000000>
"framebuffer-con3-flags" = <c7030000>
"framebuffer-con2-enable" = <01000000>
"framebuffer-con1-index" = <01000000>
"framebuffer-con1-busid" = <05000000>
"framebuffer-con1-enable" = <01000000>
"framebuffer-con0-index" = <00000000>
"framebuffer-con0-enable" = <01000000>
"framebuffer-con0-busid" = <00000000>
"framebuffer-portcount" = <04000000>
"framebuffer-con0-type" = <02000000>
"framebuffer-con0-pipe" = <00000000>
"framebuffer-con0-flags" = <20000000>
"framebuffer-con1-type" = <00080000>
"framebuffer-con3-index" = <03000000>
"framebuffer-con1-pipe" = <12000000>
"framebuffer-patch-enable" = <01000000>
"framebuffer-con2-type" = <00080000>
"framebuffer-con3-busid" = <06000000>
"framebuffer-con2-pipe" = <12000000>
"framebuffer-con3-type" = <00040000>

I think this happens since the DP port is the last one port #4 on Mac, and Hackintool seems to want con3 to index -1:

Code:
AGDCDiagnose Version: 3.20.14
## ScanPort - Start ##

[1] IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)

[2] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 4
Ports: 0x1e mst:0x1c ddc:0x1c aux:0x1c
Streams: dp:0 dvi:0 mst:2 max:3
FB: 00 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 01 : Group:   0 Address[ 2.0], Flags:[online associated ], Stream:Enabled
FB: 02 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 03 : Group:   0 Address[ 4.0], Flags:[online associated ], Stream:Enabled
Port: 01 : empty
Port: 02 : device present  [TMDS]
Port: 03 : empty
Port: 04 : [DP, 1.2, 4 x HBR2] set [4 x HBR2 : status: 7777]  Sink OUI:0-0-0  [0-0-0-0-0-0] HW Version: 0 FW Version:0.0

Leaving port count to 3 won't get you Port 4. AGDCDiagnose was a great help here since it gave the clue that the DP was Address[ 4.0] and I needed to increase Port Count and find some way to get.

BTW with 2048MB VRAM it seems we can get more HiDPI options :)
View attachment 392116
My desk is a mess :)


View attachment 392117


View attachment 392118

Boots fine but is slower since I takes ~10 seconds to detect all screens maybe some other tweaking helps. Another annoyance is that when I power down my TV (screen at the left plugged to HDMI 1.4) it isn't detached so I have to unplugged the HDMI port to get one screen only.

Hope this help those who want to use DP and HDMI on theirs Z370N WiFi
First of all, I like your spirit! You spent some time and effort to test different settings and research different solutions. That is what hacking is all about! But I also need to ask you some "tough" questions:
  • There is a connector patch already available in Post #1 for the Gigabyte H370N WiFi. Your board is the Z370N WiFi.
    392131
  • Both of these boards have 2 HDMI and 1 DP -- same video port layout.
  • The H370N WiFi uses the following settings:
Index 1, BusID 0x01, Type HDMI
Index 2, BusID 0x06, Type HDMI
Index 3, BusID 0x05, Type DP
PortCount = 3

  • Did you try this configuration on your motherboard?
  • The configuration you describe is as follows:
Index 0, BusID 0x00, Type LVDS
Index 1, BusID 0x05, Type HDMI
Index 2, BusID 0x04, Type HDMI
Index 3, BusID 0x06, Type DP
PortCount = 4

  • Because HDMI and DP can work with several different BusIDs, it is possible that both configurations are workable on your motherboard.
 
First of all, I like your spirit! You spent some time and effort to test different settings and research different solutions. That is what hacking is all about! But I also need to ask you some "tough" questions:
  • There is a connector patch already available in Post #1 for the Gigabyte H370N WiFi. Your board is the Z370N WiFi.
    View attachment 392131
  • Both of these boards have 2 HDMI and 1 DP -- same video port layout.
  • The H370N WiFi uses the following settings:
Index 1, BusID 0x01, Type HDMI
Index 2, BusID 0x06, Type HDMI
Index 3, BusID 0x05, Type DP
PortCount = 3

Yes I did and it didn't work because somehow it marked the HDMI 2.0 port (row 3) as a DP port. And that config stated that DP wasn't tested neither, has I posted two HDMI in dual monitor should work with those configs, but dual DP+HDMI or DP+HDMI1+HDMI2 won't.

So I looked at AGDCDiagnose output and it always showed that the FB was attached to Address[ 4] when I was using DP port. When I booted with HDMI1 it showed a FB on Address[ 2] and when booted with HDMI2 it showed Address[ 3] but always was showing only 3 ports but signaling the FB patched to a fourth port :crazy:

This was the output with only HDMI2 plugged:

Code:
AGDCDiagnose Version: 3.20.14
## ScanPort - Start ##

[1] IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)

[2] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 3
Ports: 0xe mst:0xc ddc:0xc aux:0xc
Streams: dp:0 dvi:0 mst:2 max:3
FB: 00 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 01 : Group:   0 Address[ 3.0], Flags:[online associated ], Stream:Enabled
FB: 02 : Group:   0 Address[ 0.0], Flags:[offline ], Stream:N/A
Port: 01 : empty
Port: 02 : empty
Port: 03 : [DP, 1.2, 4 x HBR2] set [4 x HBR2 : status: 7777] DVI/HDMI Branch OUI:0-96-173 MC2800 [77-67-50-56-48-48] HW Version: 34 FW Version:1.66

So then I patched Port Count to 4 and AGDCDiagnose started to show Port 04, so the next step was to signal that Port has the DP.

  • The configuration you describe is as follows:
Index 0, BusID 0x00, Type LVDS
Index 1, BusID 0x05, Type HDMI
Index 2, BusID 0x04, Type HDMI
Index 3, BusID 0x06, Type DP
PortCount = 4

  • Because HDMI and DP can work with several different BusIDs, it is possible that both configurations are workable on your motherboard.

Maybe but I think PortCount must be 4, I should mention that I choose BusID 0x05 and 0x04 for HDMIs based on your post plugging each of them alone and taking note of the red input on Hackintool, the thing I was missing was Index/Row 3 because Hackintool seems to like it to be -1 :confused:
 
Last edited:
Back
Top