ACPI patches create or modify ACPI tables — primarily System Secondary Description Tables (SSDTs) — that fix hardware detection, power management, sleep and wake behaviour, backlight control, and a range of chipset-specific quirks. OpCore Simplify evaluates your hardware report and automatically selects every relevant patch before building the EFI. You can review and adjust the selection in the ACPI Patches customization screen before the build runs.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lzhoang2801/OpCore-Simplify/llms.txt
Use this file to discover all available pages before exploring further.
Several patches (BATP, PLUG, GPI0, PRW, and others that modify existing ACPI namespace objects) require a full ACPI dump from your system. If the tool detects that these patches are needed but no ACPI dump was provided, it will prompt you to supply one. The easiest way to obtain an ACPI dump is to export your hardware report with Hardware Sniffer while the ACPI dump option is enabled.
All ACPI Patches
The table below lists everyPatchInfo entry defined in the tool’s patch dataset, along with the function each patch serves and the conditions under which it is automatically applied.
| Patch Name | Description | When Applied |
|---|---|---|
| ALS | Fake or enable Ambient Light Sensor device for storing the current brightness / auto-brightness level | Laptops with an ambient light sensor device in the ACPI table, or where the existing ALS node needs to be enabled |
| APIC | Avoid kernel panic by pointing the first CPU entry to an active CPU on HEDT systems | Intel HEDT platforms (X99, X299, Cascade Lake-X/W) where the first APIC processor entry may point to a disabled CPU |
| BATP | Enables displaying the battery percentage on laptops | Portable systems (laptops and all-in-ones) — requires ACPI dump |
| BUS0 | Add a System Management Bus device to fix AppleSMBus issues | Systems missing a BUS0 / SBUS device in the ACPI namespace |
| Disable Devices | Disable unsupported PCI devices such as the GPU, Wi-Fi card, and SD card reader | Applied for each device that the compatibility checker marks as unsupported, using the Optimus/Bumblebee method or the disable-gpu device property |
| FakeEC | OS-Aware Fake EC (by CorpNewt) | Desktop systems that lack a proper Embedded Controller definition; prevents macOS from stalling at boot |
| RCSP | Remove conditional ACPI scope declaration | Systems where the DSDT contains a conditional Scope declaration that confuses macOS ACPI parser |
| CMOS | Fix HP Real-Time Clock Power Loss (005) Post Error | HP systems that display a “005 - Real-Time Clock Power Loss” POST error due to macOS writing to RTC memory |
| FixHPET | Patch Out IRQ Conflicts (by CorpNewt) | Systems with IRQ conflicts on the HPET, RTC, or PIC devices — commonly required on older Intel platforms |
| GPI0 | Enable GPIO device for I2C TouchPads to function properly | Laptops with I2C touchpad (VoodooI2C); requires ACPI dump to check that the GPI0 device exists and is disabled |
| IMEI | Creates a fake IMEI device to ensure Intel iGPU acceleration functions properly | Intel Sandy Bridge / Ivy Bridge systems where the Management Engine Interface device is missing from DSDT |
| MCHC | Add a Memory Controller Hub Controller device to fix AppleSMBus | Systems missing an MCHC device; required for proper AppleSMBus operation on many Intel platforms |
| PMC | Add a PMCR device to enable NVRAM support for 300-series mainboards | Intel 300-series (Coffee Lake) boards that lack a PMCR device; required for native NVRAM |
| PM (Legacy) | Block CpuPm and Cpu0Ist ACPI tables to avoid panics for Intel Ivy Bridge and older CPUs | Intel Sandy Bridge and Ivy Bridge systems running macOS Ventura or later, where the old CpuPm/Cpu0Ist tables cause boot panics |
| PLUG | Redefines CPU objects as Processor and sets plugin-type = 1 (by CorpNewt) | Intel Haswell (4th Gen) and newer desktop/laptop CPUs to enable native CPU power management via X86PlatformPlugin — requires ACPI dump |
| PNLF | Defines a PNLF device to enable backlight controls on laptops | Laptops with Intel iGPU or AMD iGPU where screen brightness control is needed |
| RMNE | Creates a Null Ethernet to allow macOS system access to iServices | Systems with no supported Ethernet NIC; pairs with the NullEthernet kext to provide a stable MAC address for iServices |
| RTC0 | Creates a new RTC device to resolve PCI Configuration issues on HEDT systems | Intel HEDT platforms (X99, X299) where the standard RTC device causes PCI configuration conflicts |
| RTCAWAC | Context-Aware AWAC Disable and RTC Enable/Fake/Range Fix (by CorpNewt) | Intel 300-series and newer boards that use an AWAC system clock instead of the legacy RTC; disables AWAC and re-enables the compatible RTC device |
| PRW | Fix sleep state values in _PRW methods to prevent immediate wake in macOS | Any system where _PRW methods return a sleep state value that causes macOS to wake immediately after sleeping (GPRW, UPRW, and HP-specific variants) |
| Surface Patch | Special patch for all Surface Pro / Book / Laptop hardware | Detected Microsoft Surface devices — integrates with the BigSurface kext |
| UNC | Disables unused uncore bridges to prevent kernel panic on HEDT systems | Intel HEDT platforms where unused UNC0/UNC1 uncore bridge devices trigger kernel panics during boot |
| USB Reset | Disable USB Hub devices to manually rebuild the ports | Applied when USB mapping requires a clean slate; disables existing hub definitions so USBToolBox can remap correctly |
| USBX | Creates a USBX device to inject USB power properties | Intel Skylake (6th Gen) and newer systems that lack a USBX device; provides correct USB power values for macOS |
| WMIS | Certain models forget to return result from ThermalZone | Systems where the ACPI ThermalZone methods do not return a value, causing thermal management issues |
| XOSI | Spoofs the operating system to Windows, enabling devices locked behind non-Windows systems on macOS | Systems where ACPI devices (especially I2C controllers and GPIO) are gated behind _OSI("Windows …") checks |
DSDT Pre-Patches
Before generating SSDTs, OpCore Simplify applies binary patches directly to the DSDT to repair corruption or duplication that would prevent proper SSDT generation. These run silently in the background and are not user-configurable.| Board Vendor | Issue Fixed | Pre-Patch Applied |
|---|---|---|
| Gigabyte | Duplicate _PRW methods under GPP7 scope | Binary rename removes the conflicting _PRW definition |
| Gigabyte | Duplicate UP00 device definitions under GPP7 scope | Binary rename deduplicates the UP00 device |
| ASRock | Duplicate _PRW methods under GPP6 scope | Binary rename removes the conflicting _PRW definition |
| MSI | Duplicate PTXH device definitions under GPP1 scope | Binary rename deduplicates the PTXH device |
These pre-patches are board-vendor-specific workarounds for ACPI authoring bugs that are common enough across product lines to be included as defaults. They have no effect on boards from other vendors.
IRQ Conflicts Fixed by FixHPET
TheFixHPET patch resolves IRQ conflicts by removing problematic IRQ assignments from the HPET, RTC, and PIC devices. The specific IRQ numbers targeted are:
| IRQ Number | Device | Why It Conflicts |
|---|---|---|
| 0 | System Timer | Reserved by legacy timer; conflicts with HPET in macOS |
| 2 | PIC Cascade | Cascaded interrupt controller line; causes HPET routing issues |
| 8 | RTC | Real-time clock interrupt; conflicts with macOS RTC driver |
| 11 | PCI IRQ | Shared legacy PCI interrupt; causes audio and USB conflicts on older platforms |
Illegal Device Name Renames
macOS ACPI parser enforces a stricter naming convention than Windows. OpCore Simplify identifies the following device names as illegal and patches them to names that macOS accepts correctly. The specific rename targets are determined at patch-generation time based on your DSDT content.| Illegal Name | Reason |
|---|---|
XHC1 | macOS USB stack expects the extensible host controller to be named XHC, not XHC1 |
EHC1 | Non-standard EHCI controller name that confuses the macOS USB driver |
EHC2 | Non-standard second EHCI controller name that confuses the macOS USB driver |
PXSX | Generic PCIe slot placeholder name that macOS does not handle correctly for USB and other PCI devices |
ACPI Dump Requirement
Patches that read or modify existing DSDT content — rather than purely adding new devices — cannot be generated correctly without a live ACPI dump from the target machine. Patches that require an ACPI dump include:- BATP — reads battery EC fields from the DSDT to generate the correct EC patch
- PLUG — locates CPU processor objects to inject
plugin-type - GPI0 — checks whether the GPIO device exists and whether it needs to be enabled
- PRW — scans
_PRWmethods throughout the DSDT to patch sleep state return values - Any patch that modifies device
_STAreturn values based on existing ACPI namespace structure