Contribute
Register

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

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
13,463
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
I have a laptop with a built-in screen and with one external HDMI port.
If I correctly make all the settings in accordance with this magnificent Guide, would it be correct to use both of these options:
1. Laptop cold start with external monitor connected via HDMI
2. Hot-plug an external monitor when the laptop is running
Theoretically both options should work, but we see a lot of different issues with laptops. This guide is primarily focused on desktop systems with retail motherboards, but some people have found limited success with laptops as well.
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
13,463
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Hi in this thread it describes setting the DVMT pre allocation to 96MB by poking values into the UEFI firmware variables and then patching AppleIntelFrameBufferAzul, this is to get 4K working on a Dell 7020 with just Intel HD 4600 graphics.
It says;
"Name: AppleIntelFramebufferAzul
Find:
0300220D 00030303 00000002 00003001
Replace:
0300220D 00030303 00000004 00000003 "

I have tried to understand what is being set and think the "00000004" that is being set refers to DVMT pre allocation and it is being set to 64MB, if that is correct, should it be set to 96MB because that's what we have set it in the UEFI firmware?

Ie should i change the replacement with;
0300220D 00030303 00000006 00000003 ?
(which I think sets it to 96mb)
I have tested the change and it does not break anything immediately and wonder if there are any tests that will show that the right setting is in place?

Thanks
No, we should not change those hex values!

DVMT is being set to 96MB inside the firmware itself (inside BIOS). Those hex bytes are modifying the AppleIntelFrameBufferAzul to enable 4K, but this patch does not affect DVMT Pre-Alloc.

Are you getting 4K output with the original unmodified patch?
 

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
13,463
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Hi,guys. The card of my laptop is Intel HD530, and use the platform id 0x191B0000,and the spec is:
View attachment 425267
View attachment 425268
Actually,the index 0 connector should be the built in display.But when i plug my HDMI wire, there was nothing changes.
By the way,I use SMBIOS: Macbookpro 13,3, as same as the framebuffer's model.
So,why my laptop cannot detect HDMI wire.

Appreciate any answers.
We can take a closer look if you can do the following:
  • Download and run IORegistryExplorer
  • Then just select File --> Save As...
  • Upload the saved file
 
Joined
Sep 6, 2019
Messages
19
Motherboard
Lenovo SuperX 5B
CPU
i7-6700H
Graphics
HD530 / GTX 960M
Mobile Phone
  1. Android
We can take a closer look if you can do the following:
  • Download and run IORegistryExplorer
  • Then just select File --> Save As...
  • Upload the saved file

Thanks your reply,i will attach the ioreg,but i can not find any problem about it.
 

Attachments

  • ioreg.ioreg
    13.8 MB · Views: 18

CaseySJ

Moderator
Joined
Nov 11, 2018
Messages
13,463
Motherboard
Gigabyte Z490 Vision D
CPU
i5-10400
Graphics
RX 580
Mac
  1. MacBook Air
  2. MacBook Pro
  3. Mac Pro
Classic Mac
  1. Quadra
Mobile Phone
  1. iOS
Thanks your reply,i will attach the ioreg,but i can not find any problem about it.
When you connect your external monitor with HDMI cable, Hackintool should highlight the port in red. If nothing gets highlighted, then it is necessary to change Bus ID.

Currently you have:

Index BusID Pipe Type
0 0x00 18 DP
1 0x06 18 HDMI
2 0x05 18 HDMI


Have you tried other values for BusID such as:

Index BusID Pipe Type
0 0x00 18 DP
1 0x01 18 HDMI
2 0x02 18 HDMI


or

Index BusID Pipe Type
0 0x00 18 DP
1 0x02 18 HDMI
2 0x01 18 HDMI


or

Index BusID Pipe Type
0 0x00 18 DP
1 0x04 18 HDMI
2 0x01 18 HDMI

or

Index BusID Pipe Type
0 0x00 18 DP
1 0x01 18 HDMI
2 0x04 18 HDMI
 
Joined
Sep 6, 2019
Messages
19
Motherboard
Lenovo SuperX 5B
CPU
i7-6700H
Graphics
HD530 / GTX 960M
Mobile Phone
  1. Android
When you connect your external monitor with HDMI cable, Hackintool should highlight the port in red. If nothing gets highlighted, then it is necessary to change Bus ID.

Currently you have:

Index BusID Pipe Type
0 0x00 18 DP
1 0x06 18 HDMI
2 0x05 18 HDMI


Have you tried other values for BusID such as:

Index BusID Pipe Type
0 0x00 18 DP
1 0x01 18 HDMI
2 0x02 18 HDMI


or

Index BusID Pipe Type
0 0x00 18 DP
1 0x02 18 HDMI
2 0x01 18 HDMI


or

Index BusID Pipe Type
0 0x00 18 DP
1 0x04 18 HDMI
2 0x01 18 HDMI

or

Index BusID Pipe Type
0 0x00 18 DP
1 0x01 18 HDMI
2 0x04 18 HDMI

I have tried all of above BusID,but, unfortunately, there aren't work.
 
Joined
Jan 21, 2012
Messages
954
Motherboard
HP 8300 Elite
CPU
i5-3570
Graphics
GT 710
Mobile Phone
  1. Android
No, we should not change those hex values!

DVMT is being set to 96MB inside the firmware itself (inside BIOS). Those hex bytes are modifying the AppleIntelFrameBufferAzul to enable 4K, but this patch does not affect DVMT Pre-Alloc.

Are you getting 4K output with the original unmodified patch?
Thanks for the explanation.
Yes, 4k using the original patch, altering it to the new number seemed not to change anything but I did read that that byte was setting the DVMT but can't find the info that showed that.
Do you know; where can you find the info on what the byte in question does?
Or what the issues are with the HD4600? There seem to be a lot of similar reports - black screen/wake issues that are overcome by turning on "allow legacy option roms".

Edit: your reply set off some thoughts and I reverted both of the firmware changes and tried only using the Framebuffer patch- it all works - still not certain if we need to unlock Cfg in uefi firmware to make the change effective - ie will it work without ever making the change (or do you need to make it but can then roll back). Still testing.
 
Last edited:
Joined
Sep 6, 2019
Messages
19
Motherboard
Lenovo SuperX 5B
CPU
i7-6700H
Graphics
HD530 / GTX 960M
Mobile Phone
  1. Android
I have tried all of above BusID,but, unfortunately, there aren't work.

I change the smbios to Macbookpro13,1 and then it can work.
1568090962121.png

1568090975757.png



But there is another problem:
Stuck few second when login to system after boot.

By the way, how to understand the SMBIOS effects HDMI output.
 

Attachments

  • ioreg.ioreg
    13.8 MB · Views: 24
Joined
Dec 31, 2013
Messages
684
Motherboard
Huawei Matebook D
CPU
i5-8250U
Graphics
UHD 620
Mobile Phone
  1. iOS
The fix (or workaround) for HDMI hot-plug issues is to set all Pipes to the same number such as 8 or 18. For example, if you have enabled 3 connectors, all of their Pipe values should be the same.

Also try the following settings with Hackintool 2.8.0. After specifying connector Bus IDs, Pipes, and Types, make the selections shown below and click Generate Patch.

View attachment 425279 View attachment 425278
This may have some effect on the HDMI hot-plug issue, but probably won't affect sleep/wake issues from closing the lid.
All pipes are set to the same number. I've used Hackintool 2.7.9 though.
I will generate another Patch using exactly those settings, thanks!

I found out the issue with closing the lid. It was an option in the Bios that was about sleep with different methods.
Now closing the lid makes the PC sleep and opening it TWICE make it wake from sleep.

Now the situation is this:
- ONLY AFTER the 1st sleep HDMI unplug leads to no issues.
- BEFORE ANY asleep HDMI unplug leads to a black internal monitor that requires hard shut down.

Also I'm experiencing issues after rendering in Final Cut Pro X with H264 High Quality settings (I guess is a dual pass encoding). The machine can't complete that rendering.
if I render H264 Normal Quality (1 pass) the encoding is completed.
BUT in both cases after a rendering a log out leads to a black screen, and the machine isn't able to reboot as it gets stuck on black screen.

This notebook has an i5-8250U with UHD 620. You suggest spoofing an UHD 630. Is that correct?

Thanks for your help.
 

jaymonkey

Moderator
Joined
Aug 27, 2011
Messages
3,895
Motherboard
ASRock-Z97 EX6
CPU
i7-4790K OC @ 4.8GHz
Graphics
Vega 64LC + HD4600
Mac
  1. MacBook Air
  2. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
But there is another problem: Stuck few second when login to system after boot.


@RMTT,

Some MacbookPro13,X models shipped with a TouchID sensor ... When those SMBIOS are used on a Hackintosh you will have a delay at login and when entering a admin password because your laptop does not have a TouchID sensor.

You can use this Lilu plugin to disable TouchID in MacOS to get rid of the delay :-


Cheers
Jay
 
Top