ACPI
Downloading SSDTTime
Section titled “Downloading SSDTTime”Since SSDTTime does not have any releases and it’s a Python project, download the source code instead by clicking on Code then Download ZIP.

Running SSDTTime
Section titled “Running SSDTTime”After extracting the archive, Windows users should run SSDTTime.bat.
Linux users will have to open their terminal inside the extracted SSDTTime/SSDTTime-master directory then run python3 SSDTTime.py. Make sure you have Python 3 installed.
macOS users should run SSDTTime.command.
Upon launching the tool, it will automatically download iASL, which (de)compiles ACPI tables. You should then be greeted with the following screen.

Specifying the target system’s ACPI
Section titled “Specifying the target system’s ACPI”Select option P on the target system to dump the ACPI tables needed for SSDTTime’s operations.
If you’re not running SSDTTime on the target system, select D instead to pick the folder with the ACPI tables dumped from that target machine.
The software should now show the loaded ACPI tables at the top like in the screenshot below.

Generating the SSDTs
Section titled “Generating the SSDTs”Info about the options
At the time of writing, there are 12 options available
-
FixHPETFixes
IRQ(Interrupt Request) conflicts in the ACPI tables. These conflicts can cause some hardware like sound to not work properly. -
FakeECCreates a fake Embedded Controller device for macOS to work properly and disables the original EC.
-
FakeEC LaptopCreates a fake Embedded Controller device for macOS to work properly, but does not disable the original EC, because laptops need it for battery status, FN keys, etc.
-
USBXCreates an USBX device which contains USB power properties necessary for proper functionality. This also requires a valid EC device.
-
PluginTypeSets the
plugin-typeproperty to1on the first CPU core, enablingX86PlatformPlugin, which allows for CPU and GPU power management (support varies). It also redefines the processors withProcessorobjects instead ofDeviceobjects if required, since macOS doesn’t support the newer standard. -
PMCDefines the
PMCRdevice on systems that don’t have it to allow nativeNVRAMsupport. -
RTCAWACDisables the new
AWAC(Alarm Wake ACPI Clock) and enables theRTC(Real-Time Clock) instead. -
USB ResetDisables the
RHUBdevices in ACPI for all USB controllers to allow macOS to enumerate USB ports properly on borked ACPI systems. -
PCI BridgeDefines the PCI bridges for a device path specified as some devices might not have their PCI bridges defined which will make OpenCore unable to inject properties using the
DevicePropertieskey in the configuration. -
PNLFCreates a fake
PNLFdevice with an user-selectable_UID(basically the profile it uses) to allow for native brightness control on laptops. -
XOSISpoofs the operating system to Windows, allowing any peripherals locked behind non-macOS to be active on macOS.
-
Fix DMARRemoves Reserved Memory Regions from the
DMARtable. It is required to get some devices like Intel I225-based ethernet controllers on Intel systems.
All systems must choose the below
-
USBX,Choose the default option (
Bkey). -
RTCAWAC,If it says you don’t need it, skip this SSDT.
-
PluginType, -
and
USB Reset.
AMD desktops must also choose the following
FakeEC.
AMD laptops must also choose the following
-
FakeEC Laptop, -
XOSI,Choose default (
Akey) -
and any backlight-related SSDTs required in the NootedRed page.
Example procedure
Based on an ASRock B550m Phantom.








Copying the AML files from the Results folder
Section titled “Copying the AML files from the Results folder”The Results folder will look similar to the below after you’re done.

Now, copy all the files that start with SSDT and end in .aml inside of the root of the Results folder to Drive/EFI/OC/ACPI.
Merging the OC patches using PatchMerge
Section titled “Merging the OC patches using PatchMerge”Finally, merge patches_OC.plist by using the PatchMerge script included with SSDTTime. Run it the same way as SSDTTime.

Press 1 to select the Config.plist created in an earlier step, then drag and drop your Config.plist onto the window, and press enter.

Afterwards, press 2 to start the merging process.

The modified Config.plist with the patches merged in will appear in the Results folder.
Check that it’s okay, then replace your original Config.plist with the newly generated one.