docs/PATCHEXPLAIN.md
In our patcher, there are numerous patches used to ensure a stable system. Here, we're going to go over what patches are used and why we recommend or even require them.
Below is a rundown of the main logic that OpenCore Legacy Patcher uses to gain native support in macOS. Note that OpenCore's configuration is documented within OpenCorePkg as well as on an online version provided by us:
::: details Configuration Explanation
EHCx and XHC1 Patches
BUF0 to BUF1 Patch
_INI to XINI Patch
HW_BID to OC_BID
PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
PciRoot(0x0)/Pci(0x2,0x0)
smc-version in AppleSMC.kext, requires SMC-Spoof.kext for full functionalitykern.hv_vmm_present Patch
-v keepsyms=1 debug=0x100
-liludbgall
msgbuf=1048576
agdpmod=pikera
shikigva=80 unfairgva=1shikigva=128 unfairgva=1 -wegtree
-revasset
amfi=0x80
:::
Below is an explanation of what Kexts OpenCore Legacy Patcher will inject into memory on boot-up.
::: details Injected Kext Explanation
:::
Unfortunately certain on-disk patches are required to achieve full functionality. Below is a breakdown of patches supported
::: details Audio Patches (11.0+)
:::
::: details Legacy Wireless Patches (12.0+)
Applicable for BCM94328, BCM94322 and Atheros Wifi cards
:::
::: details NVIDIA Kepler Graphics Acceleration Patches (12.0+)
:::
::: details Intel Ivy Bridge Graphics Acceleration Patches (12.0+)
::: details Intel Haswell Graphics Acceleration Patches (13.0+)
:::
::: details Intel Broadwell Graphics Acceleration Patches (13.0+)
:::
::: details Intel Skylake Graphics Acceleration Patches (13.0+)
:::
::: details AMD Legacy Vega Graphics Acceleration Patches (13.0+)
:::
::: details AMD Legacy Polaris Graphics Acceleration Patches (13.0+)
:::
::: details AMD Legacy GCN Graphics Acceleration Patches
:::
::: details non-Metal Graphics Acceleration Patches (11.0+)
addMemoryRegion/removeMemoryRegion patch added changing the first conditional jump to non conditional jump
0xdb52 and 0xdbc6, replace following bytes with 0xebNVIDIA Binaries
0x5CF9A replace following bytes with 0xEBaddMemoryRegion/removeMemoryRegion calls
0x5527 and 0x77993, replace following bytes with 0x909090909090NVIDIA Web Drivers Binaries
AMD/ATI Binaries
Intel 5th Gen Binaries
Intel 6th Gen Binaries
:::