diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp index 6ecc8c3d..4f9cde1a 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp @@ -44,7 +44,7 @@ volatile CustomizeTable C = { * Value should be divided evenly by 12'500. * Not enabled by default. */ -.commonEmcMemVolt = 1237500, +.commonEmcMemVolt = 1212500, /* Erista CPU: * - Max Voltage in mV @@ -117,6 +117,17 @@ volatile CustomizeTable C = { .marikoCpuHighUV = 8, +.cpuMaxFreq = 1963500, + +.gpuMaxFreq = 1267200, + +.eristaCPUvMax = 1300, + +.marikoCPUvMax = 1235, + +.MemVltMax = 1350000, + +.marikoVDDQMax = 650000, /* Advanced Settings: * - Erista CPU DVFS Table: */ @@ -147,14 +158,14 @@ volatile CustomizeTable C = { * 2397000 might not work for some SoCs. */ .marikoCpuDvfsTable = { - { 204000, { 721589, -12695, 27 }, {} }, - { 306000, { 747134, -14195, 27 }, {} }, - { 408000, { 776324, -15705, 27 }, {} }, - { 510000, { 809160, -17205, 27 }, {} }, - { 612000, { 845641, -18715, 27 }, {} }, - { 714000, { 885768, -20215, 27 }, {} }, - { 816000, { 929540, -21725, 27 }, {} }, - { 918000, { 976958, -23225, 27 }, {} }, + { 204000, { 721589, -12695, 27 }, { 1120000 } }, + { 306000, { 747134, -14195, 27 }, { 1120000 } }, + { 408000, { 776324, -15705, 27 }, { 1120000 } }, + { 510000, { 809160, -17205, 27 }, { 1120000 } }, + { 612000, { 845641, -18715, 27 }, { 1120000 } }, + { 714000, { 885768, -20215, 27 }, { 1120000 } }, + { 816000, { 929540, -21725, 27 }, { 1120000 } }, + { 918000, { 976958, -23225, 27 }, { 1120000 } }, { 1020000, { 1028021, -24725, 27 }, { 1120000 } }, { 1122000, { 1082730, -26235, 27 }, { 1120000 } }, { 1224000, { 1141084, -27735, 27 }, { 1120000 } }, @@ -173,14 +184,14 @@ volatile CustomizeTable C = { }, .marikoCpuDvfsTableSLT = { - { 204000, { 732856, -17335, 113 }, {} }, - { 306000, { 760024, -18195, 113 }, {} }, - { 408000, { 789258, -19055, 113 }, {} }, - { 510000, { 789258, -19055, 113 }, {} }, - { 612000, { 853926, -20775, 113 }, {} }, - { 714000, { 889361, -21625, 113 }, {} }, - { 816000, { 926862, -22485, 113 }, {} }, - { 918000, { 966431, -23345, 113 }, {} }, + { 204000, { 732856, -17335, 113 }, { 1120000 } }, + { 306000, { 760024, -18195, 113 }, { 1120000 } }, + { 408000, { 789258, -19055, 113 }, { 1120000 } }, + { 510000, { 789258, -19055, 113 }, { 1120000 } }, + { 612000, { 853926, -20775, 113 }, { 1120000 } }, + { 714000, { 889361, -21625, 113 }, { 1120000 } }, + { 816000, { 926862, -22485, 113 }, { 1120000 } }, + { 918000, { 966431, -23345, 113 }, { 1120000 } }, { 1020000, { 1008066, -24205, 113 }, { 1120000 } }, { 1122000, { 1051768, -25065, 113 }, { 1120000 } }, { 1224000, { 1097537, -25925, 113 }, { 1120000 } }, diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp index 9a613b24..be9e1c0a 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.hpp @@ -16,7 +16,7 @@ #pragma once -#define CUST_REV 11 +#define CUST_REV 1 #include "oc_common.hpp" #include "pcv/pcv_common.hpp" @@ -69,6 +69,14 @@ typedef struct CustomizeTable { u8 marikoCpuHighVoltOffset; u8 marikoB3; u8 marikoCpuHighUV; + + u32 cpuMaxFreq; + u32 gpuMaxFreq; + u32 eristaCPUvMax; + u32 marikoCPUvMax; + u32 MemVltMax; + u32 marikoVDDQMax; + CustomizeCpuDvfsTable eristaCpuDvfsTable; CustomizeCpuDvfsTable marikoCpuDvfsTable; CustomizeCpuDvfsTable marikoCpuDvfsTableSLT; @@ -78,6 +86,7 @@ typedef struct CustomizeTable { CustomizeGpuDvfsTable marikoGpuDvfsTableHiOPT; //EristaMtcTable* eristaMtcTable; //MarikoMtcTable* marikoMtcTable; + } CustomizeTable; //static_assert(sizeof(CustomizeTable) == sizeof(u8) * 4 + sizeof(u32) * 10 + sizeof(CustomizeCpuDvfsTable) * 5 + sizeof(void*) * 2); //static_assert(sizeof(CustomizeTable) == 7000); diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv.cpp index 59cf3ba2..9f2036c1 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv.cpp @@ -111,17 +111,17 @@ void SafetyCheck() { } sValidator validators[] = { - { C.commonCpuBoostClock, 1020'000, 3000'000, true }, - { C.commonEmcMemVolt, 1000'000, 1350'000 }, - { C.eristaCpuMaxVolt, 1100, 1300 }, - { C.eristaEmcMaxClock, 1600'000, 2131'200 }, - { C.marikoCpuMaxVolt, 800, 1160 }, - { C.marikoEmcMaxClock, 1600'000, 3200'000 }, - { C.marikoEmcVddqVolt, 550'000, 650'000 }, - { eristaCpuDvfsMaxFreq, 1785'000, 3000'000 }, - { marikoCpuDvfsMaxFreq, 1785'000, 3000'000 }, - { eristaGpuDvfsMaxFreq, 768'000, 1536'000 }, - { marikoGpuDvfsMaxFreq, 768'000, 1536'000 }, + { C.commonCpuBoostClock, 1020'000, C.cpuMaxFreq, true }, + { C.commonEmcMemVolt, 1000'000, C.MemVltMax }, + { C.eristaCpuMaxVolt, 1100, C.eristaCPUvMax }, + { C.eristaEmcMaxClock, 1600'000, 2428'800 }, + { C.marikoCpuMaxVolt, 800, C.marikoCPUvMax }, + { C.marikoEmcMaxClock, 1600'000, 3504'000 }, + { C.marikoEmcVddqVolt, 550'000, C.marikoVDDQMax }, + { eristaCpuDvfsMaxFreq, 1785'000, C.cpuMaxFreq }, + { marikoCpuDvfsMaxFreq, 1785'000, C.cpuMaxFreq }, + { eristaGpuDvfsMaxFreq, 768'000, C.gpuMaxFreq }, + { marikoGpuDvfsMaxFreq, 768'000, C.gpuMaxFreq }, }; for (auto& i : validators) { diff --git a/build_kip.sh b/build_kip.sh new file mode 100644 index 00000000..e69de29b diff --git a/docs/main.js b/docs/main.js index cac733d6..b21622a6 100644 --- a/docs/main.js +++ b/docs/main.js @@ -25,7 +25,7 @@ var __awaiter = this && this.__awaiter || function(e, t, i, n) { o((n = n.apply(e, t || [])).next()) })) }; -const CUST_REV_ADV = 11; +const CUST_REV_ADV = 1; var CustPlatform; ! function(e) { e[e.Undefined = 0] = "Undefined", e[e.Erista = 1] = "Erista", e[e.Mariko = 2] = "Mariko", e[e.All = 3] = "All" @@ -110,9 +110,218 @@ class GpuEntry extends CustEntry { e.value = String(this.value) } } -var CustTable = [new CustEntry("mtcConf", "DRAM Timing", CustPlatform.All, 4, ["0: AUTO_ADJ_ALL: Auto adjust mtc table with LPDDR4 3733 Mbps specs, 8Gb density. Change timing with Advanced Config (Default)", "1: CUSTOM_ADJ_ALL: Adjust only non-zero preset timings in Advanced Config", "2: NO_ADJ_ALL: Use 1600 mtc table wihout adjusting (Timing becomes tighter if you raise dram clock)."], 0, [0, 2], 1), new CustEntry("commonCpuBoostClock", "Boost Clock in kHz", CustPlatform.All, 4, ["System default: 1785000", "Boost clock will be applied when applications request Boost Mode via performance configuration."], 1785e3, [102e4, 3e6], 1, !1), new CustEntry("commonEmcMemVolt", "EMC Vdd2 Voltage in uV", CustPlatform.All, 4, ["Acceptable range: 1100000 ≤ x ≤ 1250000, and it should be divided evenly by 12500.", "Erista Default: 1125000", "Mariko Default: 1100000", "Official lpddr4(x) range: 1060mV~1175mV (1100mV nominal)", "OCS need high voltage unlike l4t because of not scaling mtc table well. However it is recommended to stay within official limits", "Not enabled by default"], 0, [11e5, 125e4], 12500), new CustEntry("eristaCpuMaxVolt", "Erista CPU Max Voltage in mV", CustPlatform.Erista, 4, ["Acceptable range: 1120 ≤ x ≤ 1300", "L4T Default: 1235"], 1235, [1120, 1300], 1), new CustEntry("eristaEmcMaxClock", "Erista RAM Max Clock in kHz", CustPlatform.Erista, 4, ["Values should be ≥ 1600000, and divided evenly by 3200.", "Recommended Clocks: 1862400, 2131200 (JEDEC)", "WARNING: RAM overclock could be UNSTABLE if timing parameters are not suitable for your DRAM"], 1862400, [16e5, 2131200], 3200), new CustEntry("marikoCpuMaxVolt", "Mariko CPU Max Voltage in mV", CustPlatform.Mariko, 4, ["System default: 1120", "Acceptable range: 1120 ≤ x ≤ 1300", "Changing this value affects cpu voltage calculation"], 1235, [1120, 1300], 5), new CustEntry("marikoEmcMaxClock", "Mariko RAM Max Clock in kHz", CustPlatform.Mariko, 4, ["Values should be ≥ 1600000, and divided evenly by 3200.", "Recommended Clocks: 1862400, 2131200, 2400000 (JEDEC)", "Some clocks above 2400Mhz might not boot, because OCS doesn't scale table very well", "WARNING: RAM overclock could be UNSTABLE if timing parameters are not suitable for your DRAM."], 1996800, [16e5, 2502400], 3200), new CustEntry("marikoEmcVddqVolt", "EMC Vddq (Mariko Only) Voltage in uV", CustPlatform.Mariko, 4, ["Acceptable range: 550000 ≤ x ≤ 650000", "Value should be divided evenly by 5000", "Default: 600000", "Official lpddr4(x) range: 570mV~650mV (600mV nominal)", "Not enabled by default."], 0, [55e4, 65e4], 5e3), new CustEntry("marikoCpuUV", "Enable Mariko CPU Undervolt", CustPlatform.Mariko, 4, ["Reduce CPU power draw", "0 : Default Table", "1 : Undervolt Level 1 (SLT - CPU speedo < 1650)", "2 : Undervolt Level 1 (SLT - CPU speedo >= 1650)"], 0, [0, 2], 1), new CustEntry("marikoGpuUV", "Enable Mariko GPU Undervolt", CustPlatform.Mariko, 4, ["Reduce GPU power draw", "Your GPU might not withstand undervolt, and can hang your console, or crash games", "Undervolting too much will drop GPU performance even if it seems stable", "GPU voltages are dynamic and will change with temperature and gpu speedo", "0 : Default Table", "1 : Undervolt Level 1 (SLT: Aggressive)", "2 : Undervolt Level 2 (HiOPT: Drastic)", "3 : Custom static GPU Voltage Table (Use Gpu Configuation below)"], 0, [0, 3], 1), new CustEntry("commonGpuVoltOffset", "GPU Volt Offset", CustPlatform.All, 4, ["Negative Voltage offset value for gpu dynamic voltage calculation", "For example, value of 10 will decrease 10mV gpu volt from all frequencies", "Default gpu vmin: Erista - 812.5mV / Mariko - 610mV", "Acceptable range: 0 ~ 100"], 0, [0, 100], 1)], - AdvTable = [new AdvEntry("marikoEmcDvbShift", "Step up Mariko EMC DVB Table", CustPlatform.Mariko, 4, ["Each number adds 25mV to SoC voltage", "Helps with stability at higher memory clock", "Acceptable range : 0~9"], 0, [0, 9], 1), new AdvEntry("ramTimingPresetOne", "Primary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Select Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tRCD - tRP - tRAS (tRC = tRP + tRAS)", "0 : Do Not Adjust (2400Mhz: 12 - 12 - 28) (CUST_ADJ only)", "1 : 18 - 18 - 42 (Default timing)", "2 : 17 - 17 - 39", "3 : 16 - 16 - 36", "4 : 15 - 15 - 34", "5 : 14 - 14 - 32", "6 : 13 - 13 - 30"], 1, [0, 6], 1), new AdvEntry("ramTimingPresetTwo", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tRRD - tFAW", "0 : Do Not Adjust (2400Mhz: 6.6 - 26.6) (CUST_ADJ only)", "1 : 10 - 40 (Default timing) (3733 specs)", "2 : 7.5 - 30 (4266 specs)", "3 : 6 - 24", "4 : 4 - 16", "5 : 3 - 12"], 1, [0, 5], 1), new AdvEntry("ramTimingPresetThree", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tWR - tRTP", "0 : Do Not Adjust (2400Mhz: ?? - 5) (CUST_ADJ only)", "1 : 18 - 7.5 (Default timing)", "2 : 15 - 7.5", "3 : 15 - 6", "4 : 12 - 6", "5 : 12 - 4", "6 : 8 - 4"], 1, [0, 6], 1), new AdvEntry("ramTimingPresetFour", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tRFC", "0 : Do Not Adjust (2400Mhz: 93.3) (CUST_ADJ only)", "1 : 140 (Default timing)", "2 : 120", "3 : 100", "4 : 80", "5 : 70", "6 : 60"], 1, [0, 6], 1), new AdvEntry("ramTimingPresetFive", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tWTR", "0 : Do Not Adjust (2400Mhz: ??) (CUST_ADJ only)", "1 : 10 (Default timing)", "2 : 8", "3 : 6", "4 : 4", "5 : 2", "6 : 1"], 1, [0, 6], 1), new AdvEntry("ramTimingPresetSix", "Tertiary RAM Timing Preset", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Tertiary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", "Values are : tREFpb", "0 : Do Not Adjust (2400Mhz: 325) (CUST_ADJ only)", "1 : 488 (Default timing)", "2 : 976", "3 : 1952", "4 : 3256", "5 : MAX"], 1, [0, 5], 1), new AdvEntry("ramTimingPresetSeven", "Latency Decrement", CustPlatform.Mariko, 4, ["WARNING: Unstable timings can corrupt your nand", "Latency decrement for both AUTO_ADJ and CUSTOM_ADJ", "This preset decreases Write/Read related delays. Values are Write - Read", "0 : 0 - 0, Do Not Adjust for CUST_ADJ", "1 : '-2' - '-4'", "2 : '-4' - '-8'", "3 : '-6' - '-12'", "4 : '-8' - '-16'", "5 : '-10' - '-20'", "6 : '-12' - '-24'"], 0, [0, 6], 1)], - GpuTable = [new GpuEntry("0", "76.8"), new GpuEntry("1", "153.6"), new GpuEntry("2", "230.4"), new GpuEntry("3", "307.2"), new GpuEntry("4", "384.0"), new GpuEntry("5", "460.8"), new GpuEntry("6", "537.6"), new GpuEntry("7", "614.4"), new GpuEntry("8", "691.2"), new GpuEntry("9", "768.0"), new GpuEntry("10", "844.8"), new GpuEntry("11", "921.6"), new GpuEntry("12", "998.4"), new GpuEntry("13", "1075.2"), new GpuEntry("14", "1152.0"), new GpuEntry("15", "1228.8"), new GpuEntry("16", "1267.2")]; +var CustTable = [ + new CustEntry("mtcConf", "DRAM Timing", CustPlatform.All, 4, [ + "0: AUTO_ADJ_ALL: Auto adjust mtc table with LPDDR4 3733 Mbps specs, 8Gb density. Change timing with Advanced Config (Default)", + "1: CUSTOM_ADJ_ALL: Adjust only non-zero preset timings in Advanced Config", + "2: NO_ADJ_ALL: Use 1600 mtc table wihout adjusting (Timing becomes tighter if you raise dram clock)." + ], 0, [0, 2], 1), + new CustEntry("commonCpuBoostClock", "Boost Clock in kHz", CustPlatform.All, 4, [ + "System default: 1785000", + "Boost clock will be applied when applications request Boost Mode via performance configuration." + ], 2091e3, [204000, 2907000], 1, !1), + + new CustEntry("cpuMaxFreq", "Maximum allowed CPU Frequency", CustPlatform.All, 4, [ + "Default: 1963500", + "This is the maximum frequency for the CPU you can set in sys-clk-ocs2." + ], 1963500, [306000, 2907000], 1, !1), + + new CustEntry("gpuMaxFreq", "Maximum allowed GPU Frequency", CustPlatform.All, 4, [ + "Default: 1267200", + "This is the maximum frequency for the GPU you can set in sys-clk-ocs2." + ], 1267200, [76800, 1305600], 1, !1), + + new CustEntry("commonEmcMemVolt", "EMC Vdd2 Voltage in uV", CustPlatform.All, 4, [ + "Acceptable range: 1100000 ≤ x ≤ 1250000, and it should be divided evenly by 12500.", + "Erista Default: 1125000", + "Mariko Default: 1100000", + "Official lpddr4(x) range: 1060mV~1175mV (1100mV nominal)", + "OCS need high voltage unlike l4t because of not scaling mtc table well. However it is recommended to stay within official limits", + "Not enabled by default" + ], 0, [11e5, 125e4], 12500), + + new CustEntry("eristaCpuMaxVolt", "Erista CPU Max Voltage in mV", CustPlatform.Erista, 4, [ + "Acceptable range: 1120 ≤ x ≤ 1300", + "L4T Default: 1235" + ], 1235, [1000, 1500], 1), + + new CustEntry("eristaEmcMaxClock", "Erista RAM Max Clock in kHz", CustPlatform.Erista, 4, [ + "Values should be ≥ 1600000, and divided evenly by 3200.", + "Recommended Clocks: 1862400, 2131200 (JEDEC)", + "WARNING: RAM overclock could be UNSTABLE if timing parameters are not suitable for your DRAM" + ], 1862400, [16e5, 2131200], 3200), + + new CustEntry("marikoCpuMaxVolt", "Mariko CPU Max Voltage in mV", CustPlatform.Mariko, 4, [ + "System default: 1120", + "Acceptable range: 1120 ≤ x ≤ 1300", + "Changing this value affects cpu voltage calculation" + ], 1235, [1120, 1300], 5), + + new CustEntry("marikoEmcMaxClock", "Mariko RAM Max Clock in kHz", CustPlatform.Mariko, 4, [ + "Values should be ≥ 1600000, and divided evenly by 3200.", + "Recommended Clocks: 1862400, 2131200, 2400000 (JEDEC)", + "Some clocks above 2400Mhz might not boot, because OCS doesn't scale table very well", + "WARNING: RAM overclock could be UNSTABLE if timing parameters are not suitable for your DRAM." + ], 1996800, [16e5, 2502400], 3200), + + new CustEntry("marikoEmcVddqVolt", "EMC Vddq (Mariko Only) Voltage in uV", CustPlatform.Mariko, 4, [ + "Acceptable range: 550000 ≤ x ≤ 650000", + "Value should be divided evenly by 5000", + "Default: 600000", + "Official lpddr4(x) range: 570mV~650mV (600mV nominal)", + "Not enabled by default." + ], 0, [55e4, 65e4], 5e3), + + new CustEntry("marikoCpuUV", "Enable Mariko CPU Undervolt", CustPlatform.Mariko, 4, [ + "Reduce CPU power draw", + "0 : Default Table", + "1 : Undervolt Level 1 (SLT - CPU speedo < 1650)", + "2 : Undervolt Level 1 (SLT - CPU speedo >= 1650)" + ], 0, [0, 2], 1), + new CustEntry("marikoCpuHighUV", "Enable Mariko CPU High Undervolt", CustPlatform.Mariko, 4, [ + "Reduce CPU power draw at high clocks", + ], 0, [0, 12], 1), + new CustEntry("marikoCpuHighVoltOffset", "CPU Voltage offset at high frequencies", CustPlatform.Mariko, 4, [ + "Reduce CPU power draw at high clocks", + ], 0, [0, 100], 1), + + + new CustEntry("marikoGpuUV", "Enable Mariko GPU Undervolt", CustPlatform.Mariko, 4, [ + "Reduce GPU power draw", + "Your GPU might not withstand undervolt, and can hang your console, or crash games", + "Undervolting too much will drop GPU performance even if it seems stable", + "GPU voltages are dynamic and will change with temperature and gpu speedo", + "0 : Default Table", + "1 : Undervolt Level 1 (SLT: Aggressive)", + "2 : Undervolt Level 2 (HiOPT: Drastic)", + "3 : Custom static GPU Voltage Table (Use Gpu Configuation below)" + ], 0, [0, 3], 1), + + new CustEntry("commonGpuVoltOffset", "GPU Volt Offset", CustPlatform.All, 4, [ + "Negative Voltage offset value for gpu dynamic voltage calculation", + "For example, value of 10 will decrease 10mV gpu volt from all frequencies", + "Default gpu vmin: Erista - 812.5mV / Mariko - 610mV", + "Acceptable range: 0 ~ 100" + ], 0, [0, 100], 1) +]; + +var AdvTable = [ + new AdvEntry("marikoEmcDvbShift", "Step up Mariko EMC DVB Table", CustPlatform.Mariko, 4, [ + "Each number adds 25mV to SoC voltage", + "Helps with stability at higher memory clock", + "Acceptable range : 0~9" + ], 0, [0, 9], 1), + + new AdvEntry("ramTimingPresetOne", "Primary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Select Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tRCD - tRP - tRAS (tRC = tRP + tRAS)", + "0 : Do Not Adjust (2400Mhz: 12 - 12 - 28) (CUST_ADJ only)", + "1 : 18 - 18 - 42 (Default timing)", + "2 : 17 - 17 - 39", + "3 : 16 - 16 - 36", + "4 : 15 - 15 - 34", + "5 : 14 - 14 - 32", + "6 : 13 - 13 - 30" + ], 1, [0, 6], 1), + + new AdvEntry("ramTimingPresetTwo", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tRRD - tFAW", + "0 : Do Not Adjust (2400Mhz: 6.6 - 26.6) (CUST_ADJ only)", + "1 : 10 - 40 (Default timing) (3733 specs)", + "2 : 7.5 - 30 (4266 specs)", + "3 : 6 - 24", + "4 : 4 - 16", + "5 : 3 - 12" + ], 1, [0, 5], 1), + + new AdvEntry("ramTimingPresetThree", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tWR - tRTP", + "0 : Do Not Adjust (2400Mhz: ?? - 5) (CUST_ADJ only)", + "1 : 18 - 7.5 (Default timing)", + "2 : 15 - 7.5", + "3 : 15 - 6", + "4 : 12 - 6", + "5 : 12 - 4", + "6 : 8 - 4" + ], 1, [0, 6], 1), + + new AdvEntry("ramTimingPresetFour", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tRFC", + "0 : Do Not Adjust (2400Mhz: 93.3) (CUST_ADJ only)", + "1 : 140 (Default timing)", + "2 : 120", + "3 : 100", + "4 : 80", + "5 : 70", + "6 : 60" + ], 1, [0, 6], 1), + + new AdvEntry("ramTimingPresetFive", "Secondary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Secondary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tWTR", + "0 : Do Not Adjust (2400Mhz: ??) (CUST_ADJ only)", + "1 : 10 (Default timing)", + "2 : 8", + "3 : 6", + "4 : 4", + "5 : 2", + "6 : 1" + ], 1, [0, 6], 1), + + new AdvEntry("ramTimingPresetSix", "Tertiary RAM Timing Preset", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Tertiary Timing Preset for both AUTO_ADJ and CUSTOM_ADJ", + "Values are : tREFpb", + "0 : Do Not Adjust (2400Mhz: 325) (CUST_ADJ only)", + "1 : 488 (Default timing)", + "2 : 976", + "3 : 1952", + "4 : 3256", + "5 : MAX" + ], 1, [0, 5], 1), + + new AdvEntry("ramTimingPresetSeven", "Latency Decrement", CustPlatform.Mariko, 4, [ + "WARNING: Unstable timings can corrupt your nand", + "Latency decrement for both AUTO_ADJ and CUSTOM_ADJ", + "This preset decreases Write/Read related delays. Values are Write - Read", + "0 : 0 - 0, Do Not Adjust for CUST_ADJ", + "1 : '-2' - '-4'", + "2 : '-4' - '-8'", + "3 : '-6' - '-12'", + "4 : '-8' - '-16'", + "5 : '-10' - '-20'", + "6 : '-12' - '-24'" + ], 0, [0, 6], 1) +]; + +var GpuTable = [ + new GpuEntry("0", "76.8"), + new GpuEntry("1", "153.6"), + new GpuEntry("2", "230.4"), + new GpuEntry("3", "307.2"), + new GpuEntry("4", "384.0"), + new GpuEntry("5", "460.8"), + new GpuEntry("6", "537.6"), + new GpuEntry("7", "614.4"), + new GpuEntry("8", "691.2"), + new GpuEntry("9", "768.0"), + new GpuEntry("10", "844.8"), + new GpuEntry("11", "921.6"), + new GpuEntry("12", "998.4"), + new GpuEntry("13", "1075.2"), + new GpuEntry("14", "1152.0"), + new GpuEntry("15", "1228.8"), + new GpuEntry("16", "1267.2"), + new GpuEntry("17", "1305.6") +]; class ErrorToolTip { constructor(e, t) { this.id = e, this.msg = t, this.id = e, this.element = document.getElementById(e), t && this.setMsg(t)