From 039f24e5f417b4f60fcd501242ca432c2974d034 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Mon, 16 Feb 2026 10:44:59 +0000 Subject: [PATCH 1/2] Fix GUI indices for Audio and DSDT, and remove broken audio mask - Corrected Audio selection index in SubMenuAudioPort (119 -> 118) - Updated GUI handling in REFIT_MENU_SCREEN.cpp for DSDT (116 -> 115) and Audio (119 -> 118) - Removed broken bitmask (& 0x2F) for audio output index in ApplyInputs - Ensured kext blocking logic remains untouched This resolves the UI hang when selecting audio outputs and allows correct saving of sound and DSDT settings to NVRAM. --- rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp | 38 ++++++++++++++-------------- rEFIt_UEFI/refit/menu.cpp | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp b/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp index 4154ab5294..3030a8427c 100644 --- a/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp +++ b/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp @@ -535,9 +535,9 @@ UINTN REFIT_MENU_SCREEN::InputDialog() OldChosenSmbios = Pos; } else if (Item->IValue == 90) { OldChosenConfig = Pos; - } else if (Item->IValue == 116) { + } else if (Item->IValue == 115) { OldChosenDsdt = Pos? Pos - 1: 0xFFFF; - } else if (Item->IValue == 119) { + } else if (Item->IValue == 118) { OldChosenAudio = Pos; } MenuExit = MENU_EXIT_ENTER; @@ -1144,9 +1144,9 @@ void REFIT_MENU_SCREEN::TextMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamT j = OldChosenConfig; } else if (Entries[0].getREFIT_MENU_SWITCH() && Entries[0].getREFIT_MENU_SWITCH()->Item->IValue == 65) { j = OldChosenSmbios; - } else if (Entries[0].getREFIT_MENU_SWITCH() && Entries[0].getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (Entries[0].getREFIT_MENU_SWITCH() && Entries[0].getREFIT_MENU_SWITCH()->Item->IValue == 115) { j = OldChosenDsdt; - } else if (Entries[0].getREFIT_MENU_SWITCH() && Entries[0].getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (Entries[0].getREFIT_MENU_SWITCH() && Entries[0].getREFIT_MENU_SWITCH()->Item->IValue == 118) { j = OldChosenAudio; } @@ -1209,9 +1209,9 @@ void REFIT_MENU_SCREEN::TextMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamT OldChosenItem = OldChosenConfig; } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 65) { OldChosenItem = OldChosenSmbios; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = OldChosenDsdt; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } @@ -1271,9 +1271,9 @@ void REFIT_MENU_SCREEN::TextMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamT OldChosenItem = OldChosenConfig; } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 65) { OldChosenItem = OldChosenSmbios; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = OldChosenDsdt; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } @@ -1309,9 +1309,9 @@ void REFIT_MENU_SCREEN::TextMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamT OldChosenItem = OldChosenConfig; } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 65) { OldChosenItem = OldChosenSmbios; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = OldChosenDsdt; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } @@ -1621,9 +1621,9 @@ void REFIT_MENU_SCREEN::GraphicsMenuStyle(IN UINTN Function, IN CONST CHAR16 *Pa Chosen = OldChosenSmbios; } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 90) { Chosen = OldChosenConfig; - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 115) { Chosen = (OldChosenDsdt == 0xFFFF) ? 0: (OldChosenDsdt + 1); - } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (entry.getREFIT_MENU_SWITCH()->Item->IValue == 118) { Chosen = OldChosenAudio; } } @@ -1755,9 +1755,9 @@ void REFIT_MENU_SCREEN::GraphicsMenuStyle(IN UINTN Function, IN CONST CHAR16 *Pa OldChosenItem = OldChosenSmbios; } else if (Entry->getREFIT_MENU_SWITCH()->Item->IValue == 90) { OldChosenItem = OldChosenConfig; - } else if (Entry->getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (Entry->getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = (OldChosenDsdt == 0xFFFF) ? 0: (OldChosenDsdt + 1); - } else if (Entry->getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (Entry->getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } DrawMenuText(ResultString, (i == ScrollState.CurrentSelection) ? MenuWidth : 0, @@ -1821,9 +1821,9 @@ void REFIT_MENU_SCREEN::GraphicsMenuStyle(IN UINTN Function, IN CONST CHAR16 *Pa OldChosenItem = OldChosenSmbios; } else if (EntryL->getREFIT_MENU_SWITCH()->Item->IValue == 90) { OldChosenItem = OldChosenConfig; - } else if (EntryL->getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (EntryL->getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = (OldChosenDsdt == 0xFFFF) ? 0: OldChosenDsdt + 1; - } else if (EntryL->getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (EntryL->getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } // clovy @@ -1854,9 +1854,9 @@ void REFIT_MENU_SCREEN::GraphicsMenuStyle(IN UINTN Function, IN CONST CHAR16 *Pa OldChosenItem = OldChosenSmbios; } else if (EntryC->getREFIT_MENU_SWITCH()->Item->IValue == 90) { OldChosenItem = OldChosenConfig; - } else if (EntryC->getREFIT_MENU_SWITCH()->Item->IValue == 116) { + } else if (EntryC->getREFIT_MENU_SWITCH()->Item->IValue == 115) { OldChosenItem = (OldChosenDsdt == 0xFFFF) ? 0: OldChosenDsdt + 1; - } else if (EntryC->getREFIT_MENU_SWITCH()->Item->IValue == 119) { + } else if (EntryC->getREFIT_MENU_SWITCH()->Item->IValue == 118) { OldChosenItem = OldChosenAudio; } } @@ -1933,7 +1933,7 @@ void REFIT_MENU_SCREEN::AddMenuCheck(CONST CHAR8 *Text, UINTN Bit, INTN ItemNum) void REFIT_MENU_SCREEN::AddMenuItem_(REFIT_MENU_ENTRY_ITEM_ABSTRACT* InputBootArgs, INTN Inx, CONST CHAR8 *Line, XBool Cursor) { InputBootArgs->Title.takeValueFrom(Line); - if (Inx == 3 || Inx == 116) { + if (Inx == 3 || Inx == 115) { InputBootArgs->Row = 0; } else { InputBootArgs->Row = Cursor?InputItems[Inx].SValue.length():0xFFFF; diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index ec2c325e78..698928e144 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -2244,7 +2244,7 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuAudioPort() InputBootArgs = new REFIT_MENU_SWITCH; InputBootArgs->Title.SWPrintf("%ls_%s", AudioList[i].Name.wc_str(), AudioOutputNames[AudioList[i].Device]); InputBootArgs->Row = i; - InputBootArgs->Item = &InputItems[119]; + InputBootArgs->Item = &InputItems[118]; InputBootArgs->AtClick = ActionEnter; InputBootArgs->AtRightClick = ActionDetails; SubScreen->AddMenuEntry(InputBootArgs, true); From d6a8450663e670d57af344f32f3ce0af5a581cfc Mon Sep 17 00:00:00 2001 From: YBronst Date: Mon, 16 Feb 2026 19:15:21 +0200 Subject: [PATCH 2/2] fix audio indices and update Quirks layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description This PR provides a comprehensive fix for audio selection issues in the Clover GUI and synchronizes the Quirks menu with the current `config.plist` structure. ### ๐Ÿž Bug Fixes * **Audio Selection & UI Hangs:** * Fixed incorrect index mapping in `menu.cpp` (shifted from 119 to 118). * Updated `REFIT_MENU_SCREEN.cpp` with correct IValue IDs (`115` for DSDT, `118` for Audio) to ensure selection events are processed. * Removed a faulty `& 0x2F` bitmask in `ApplyInputs` that was truncating audio indices on multi-output systems. ### โš™๏ธ Quirks Menu Improvements * **Sync with config.plist:** Reorganized the Quirks menu to match the exact order of the configuration file. * **New Parameters:** Added all missing quirks (e.g., `AppleXcpmExtraMsrs`, `ForceOcWriteFlash`, `SignalAppleOS`). * **Refactoring:** Moved `XhciPortLimit` and `ProvideCurrentCpuInfo` from "Binaries patching" to the Quirks menu for structural consistency. * **Scalability:** Increased `InputItems` array size to `200` to support the expanded list of settings. ### ๐Ÿงช Impact * Resolves reported UI freezes when interacting with audio settings. * Ensures kext blocking and all quirks are correctly indexed and functional via `FillInputs`/`ApplyInputs`. --- rEFIt_UEFI/gui/shared_with_menu.cpp | 2 +- rEFIt_UEFI/gui/shared_with_menu.h | 2 +- rEFIt_UEFI/refit/menu.cpp | 143 +++++++++++++++++++++++++++- 3 files changed, 140 insertions(+), 7 deletions(-) diff --git a/rEFIt_UEFI/gui/shared_with_menu.cpp b/rEFIt_UEFI/gui/shared_with_menu.cpp index 25ddd5d24d..22ba98ef3d 100644 --- a/rEFIt_UEFI/gui/shared_with_menu.cpp +++ b/rEFIt_UEFI/gui/shared_with_menu.cpp @@ -68,7 +68,7 @@ CONST XString8 ArgOptional[NUM_OPT] = { }; CONST CHAR16 *VBIOS_BIN = L"misc\\c0000.bin"; -INPUT_ITEM InputItems[135]; // INPUT_ITEM is a class, therefore default initialization is taking place. +INPUT_ITEM InputItems[200]; // INPUT_ITEM is a class, therefore default initialization is taking place. INTN TextStyle; //why global? It will be class SCREEN member UINT32 EncodeOptions(const XString8Array& Options) diff --git a/rEFIt_UEFI/gui/shared_with_menu.h b/rEFIt_UEFI/gui/shared_with_menu.h index 52f853acdf..d8238dd5c7 100644 --- a/rEFIt_UEFI/gui/shared_with_menu.h +++ b/rEFIt_UEFI/gui/shared_with_menu.h @@ -17,7 +17,7 @@ extern INTN TextStyle; //why global? It will be class SCREEN member extern CONST CHAR16 *VBIOS_BIN; -extern INPUT_ITEM InputItems[135]; +extern INPUT_ITEM InputItems[200]; void DecodeOptions(REFIT_MENU_ITEM_BOOTNUM *Entry); UINT32 EncodeOptions(const XString8Array& Options); diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index 698928e144..20d216051c 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -436,6 +436,43 @@ void FillInputs(XBool New) InputItems[InputItemsCount].ItemType = BoolValue; //131 InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.XhciPortLimit; + InputItems[InputItemsCount].ItemType = BoolValue; //132 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcBooterQuirks.ForceOcWriteFlash; + InputItems[InputItemsCount].ItemType = BoolValue; //133 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.AppleXcpmExtraMsrs; + InputItems[InputItemsCount].ItemType = BoolValue; //134 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.AppleXcpmForceBoost; + InputItems[InputItemsCount].ItemType = BoolValue; //135 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.ClearTaskSwitchBit; + InputItems[InputItemsCount].ItemType = BoolValue; //136 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.DisableIoMapper; + InputItems[InputItemsCount].ItemType = BoolValue; //137 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.DisableIoMapperMapping; + InputItems[InputItemsCount].ItemType = BoolValue; //138 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.DisableLinkeditJettison; + InputItems[InputItemsCount].ItemType = BoolValue; //139 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.DummyPowerManagement; + InputItems[InputItemsCount].ItemType = BoolValue; //140 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.ExtendBTFeatureFlags; + InputItems[InputItemsCount].ItemType = BoolValue; //141 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.ExternalDiskIcons; + InputItems[InputItemsCount].ItemType = BoolValue; //142 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.IncreasePciBarSize; + InputItems[InputItemsCount].ItemType = BoolValue; //143 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.ForceAquantiaEthernet; + InputItems[InputItemsCount].ItemType = BoolValue; //144 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.PowerTimeoutKernelPanic; + InputItems[InputItemsCount].ItemType = BoolValue; //145 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.ThirdPartyDrives; + InputItems[InputItemsCount].ItemType = BoolValue; //146 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.OcKernelQuirks.AutoModernCPUQuirks; + InputItems[InputItemsCount].ItemType = Decimal; //147 + InputItems[InputItemsCount++].SValue.SWPrintf("%04d", gSettings.Quirks.OcBooterQuirks.ResizeGpuBars); + InputItems[InputItemsCount].ItemType = BoolValue; //148 + InputItems[InputItemsCount++].BValue = gSettings.Quirks.FuzzyMatch; + InputItems[InputItemsCount].ItemType = ASString; //149 + InputItems[InputItemsCount++].SValue.SWPrintf("%s", gSettings.Quirks.OcKernelCache.c_str()); + //menu for drop table if (GlobalConfig.ACPIDropTables.notEmpty()) { for ( size_t idx = 0 ; idx < GlobalConfig.ACPIDropTables.length() ; ++idx ) { @@ -1111,6 +1148,85 @@ void ApplyInputs(void) gSettings.Quirks.OcKernelQuirks.XhciPortLimit = InputItems[i].BValue != 0; DBG("applied XhciPortLimit=%s\n", gSettings.Quirks.OcKernelQuirks.XhciPortLimit ? "Y" : "N" ); } + i++; //132 + if (InputItems[i].Valid) { + gSettings.Quirks.OcBooterQuirks.ForceOcWriteFlash = InputItems[i].BValue != 0; + } + i++; //133 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.AppleXcpmExtraMsrs = InputItems[i].BValue != 0; + } + i++; //134 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.AppleXcpmForceBoost = InputItems[i].BValue != 0; + } + i++; //135 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.ClearTaskSwitchBit = InputItems[i].BValue != 0; + } + i++; //136 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.DisableIoMapper = InputItems[i].BValue != 0; + } + i++; //137 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.DisableIoMapperMapping = InputItems[i].BValue != 0; + } + i++; //138 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.DisableLinkeditJettison = InputItems[i].BValue != 0; + } + i++; //139 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.DummyPowerManagement = InputItems[i].BValue != 0; + } + i++; //140 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.ExtendBTFeatureFlags = InputItems[i].BValue != 0; + } + i++; //141 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.ExternalDiskIcons = InputItems[i].BValue != 0; + } + i++; //142 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.IncreasePciBarSize = InputItems[i].BValue != 0; + } + i++; //143 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.ForceAquantiaEthernet = InputItems[i].BValue != 0; + } + i++; //144 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.PowerTimeoutKernelPanic = InputItems[i].BValue != 0; + } + i++; //145 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.ThirdPartyDrives = InputItems[i].BValue != 0; + } + i++; //146 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelQuirks.AutoModernCPUQuirks = InputItems[i].BValue != 0; + } + i++; //147 + if (InputItems[i].Valid) { + INTN Minus = 0; + if (InputItems[i].SValue[0] == '-') { + Minus = 1; + } + gSettings.Quirks.OcBooterQuirks.ResizeGpuBars = (int8_t)StrDecimalToUintn(InputItems[i].SValue.data(Minus)); + if (Minus) { + gSettings.Quirks.OcBooterQuirks.ResizeGpuBars = -gSettings.Quirks.OcBooterQuirks.ResizeGpuBars; + } + } + i++; //148 + if (InputItems[i].Valid) { + gSettings.Quirks.FuzzyMatch = InputItems[i].BValue != 0; + } + i++; //149 + if (InputItems[i].Valid) { + gSettings.Quirks.OcKernelCache = InputItems[i].SValue; + } if (NeedSave) { ApplySettings(); @@ -1981,7 +2097,6 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuBinaries() SubScreen->AddMenuItemInput(105, "Kernel XCPM", false); SubScreen->AddMenuItemInput(48, "Kernel PM", false); SubScreen->AddMenuItemInput(120, "Panic No Kext Dump", false); - SubScreen->AddMenuItemInput(127, "Provide CPU Info", false); SubScreen->AddMenuEntry(SubMenuKernelPatches(), true); SubScreen->AddMenuInfo_f("----------------------"); SubScreen->AddMenuItemInput(46, "AppleIntelCPUPM Patch", false); @@ -1989,7 +2104,6 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuBinaries() // SubScreen->AddMenuItemInput(45, "No 8 Apples Patch", false); SubScreen->AddMenuItemInput(61, "Dell SMBIOS Patch", false); SubScreen->AddMenuEntry(SubMenuKextsToBlock(), true); - SubScreen->AddMenuItemInput(131, "Unlimit Xhci Ports", false); // SubScreen->AddMenuItemInput(115, "No Caches", false); // SubScreen->AddMenuItemInput(44, "Kext patching allowed", false); SubScreen->AddMenuEntry(SubMenuKextPatches(), true); @@ -2509,27 +2623,46 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuQuirks() // submenu description SubScreen->AddMenuInfoLine_f("Choose options to fix memory"); + SubScreen->AddMenuItemInput(133, "AppleXcpmExtraMsrs", false); + SubScreen->AddMenuItemInput(134, "AppleXcpmForceBoost", false); SubScreen->AddMenuCheck("AvoidRuntimeDefrag", QUIRK_DEFRAG, 101); + SubScreen->AddMenuItemInput(135, "ClearTaskSwitchBit", false); SubScreen->AddMenuCheck("DevirtualiseMmio", QUIRK_MMIO, 101); + SubScreen->AddMenuItemInput(136, "DisableIoMapper", false); + SubScreen->AddMenuItemInput(137, "DisableIoMapperMapping", false); + SubScreen->AddMenuItemInput(138, "DisableLinkeditJettison", false); SubScreen->AddMenuCheck("DisableSingleUser", QUIRK_SU, 101); SubScreen->AddMenuCheck("DisableVariableWrite", QUIRK_VAR, 101); SubScreen->AddMenuCheck("DiscardHibernateMap", QUIRK_HIBER, 101); + SubScreen->AddMenuItemInput(139, "DummyPowerManagement", false); SubScreen->AddMenuCheck("EnableSafeModeSlide", QUIRK_SAFE, 101); SubScreen->AddMenuCheck("EnableWriteUnprotector", QUIRK_UNPROT, 101); + SubScreen->AddMenuItemInput(140, "ExtendBTFeatureFlags", false); + SubScreen->AddMenuItemInput(141, "ExternalDiskIcons", false); + SubScreen->AddMenuItemInput(143, "ForceAquantiaEthernet", false); SubScreen->AddMenuCheck("ForceExitBootServices", QUIRK_EXIT, 101); + SubScreen->AddMenuItemInput(132, "ForceOcWriteFlash", false); + SubScreen->AddMenuItemInput(148, "FuzzyMatch", false); + SubScreen->AddMenuItemInput(142, "IncreasePciBarSize", false); + SubScreen->AddMenuItemInput(149, "KernelCache:", true); + SubScreen->AddMenuItemInput(144, "PowerTimeoutKernelPanic", false); SubScreen->AddMenuCheck("ProtectMemoryRegions", QUIRK_REGION, 101); SubScreen->AddMenuCheck("ProtectSecureBoot", QUIRK_SECURE, 101); SubScreen->AddMenuCheck("ProtectUefiServices", QUIRK_UEFI, 101); + SubScreen->AddMenuItemInput(127, "ProvideCurrentCpuInfo", false); + SubScreen->AddMenuItemInput(146, "AutoModernCPUQuirks", false); SubScreen->AddMenuCheck("ProvideCustomSlide", QUIRK_CUSTOM, 101); -//decimal SubScreen->AddMenuItemInput(121, "ProvideMaxSlide:", true); SubScreen->AddMenuCheck("RebuildAppleMemoryMap", QUIRK_MAP, 101); SubScreen->AddMenuItemInput(126, "ResizeAppleGpuBars:", true); + SubScreen->AddMenuItemInput(147, "ResizeGpuBars:", true); SubScreen->AddMenuCheck("SetupVirtualMap", QUIRK_VIRT, 101); + SubScreen->AddMenuCheck("SignalAppleOS", QUIRK_OS, 101); SubScreen->AddMenuCheck("SyncRuntimePermissions", QUIRK_PERM, 101); - + SubScreen->AddMenuItemInput(145, "ThirdPartyDrives", false); SubScreen->AddMenuItemInput(129, "TscSyncTimeout:", true); - + SubScreen->AddMenuItemInput(131, "XhciPortLimit", false); + SubScreen->AddMenuEntry(&MenuEntryReturn, false); ModifyTitles(Entry);