Merge branch 'Horizon-OC:develop' into develop
This commit is contained in:
@@ -458,7 +458,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
}
|
}
|
||||||
@@ -532,6 +532,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
}
|
}
|
||||||
@@ -609,6 +610,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
|
|
||||||
@@ -689,6 +691,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
}
|
}
|
||||||
@@ -762,6 +765,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
}
|
}
|
||||||
@@ -835,6 +839,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
splExit();
|
splExit();
|
||||||
|
sysclkIpcInitialize();
|
||||||
});
|
});
|
||||||
Hinted = envIsSyscallHinted(0x6F);
|
Hinted = envIsSyscallHinted(0x6F);
|
||||||
}
|
}
|
||||||
|
|||||||
53
Source/sys-clk/bitmap.py
Normal file
53
Source/sys-clk/bitmap.py
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
from PIL import Image
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
|
||||||
|
def image_to_rgba8888_array(image_path, output_path):
|
||||||
|
# Open and convert to RGBA
|
||||||
|
img = Image.open(image_path).convert('RGBA')
|
||||||
|
width, height = img.size
|
||||||
|
|
||||||
|
# Get pixel data
|
||||||
|
pixels = img.tobytes()
|
||||||
|
|
||||||
|
# Write as C header file
|
||||||
|
with open(output_path, 'w') as f:
|
||||||
|
f.write('// This is a generated automatically generated file, do not edit manually.\n')
|
||||||
|
f.write(f'// {os.path.basename(image_path)} - {width}x{height}\n')
|
||||||
|
f.write(f'const unsigned int IMG_WIDTH = {width};\n')
|
||||||
|
f.write(f'const unsigned int IMG_HEIGHT = {height};\n')
|
||||||
|
f.write('const unsigned char IMG_DATA[] = {\n ')
|
||||||
|
|
||||||
|
for i, byte in enumerate(pixels):
|
||||||
|
f.write(f'0x{byte:02X}')
|
||||||
|
if i < len(pixels) - 1:
|
||||||
|
f.write(', ')
|
||||||
|
if (i + 1) % 12 == 0:
|
||||||
|
f.write('\n ')
|
||||||
|
|
||||||
|
f.write('\n};\n')
|
||||||
|
|
||||||
|
print(f'Converted: {width}x{height} -> {len(pixels)} bytes')
|
||||||
|
print(f'Output: {output_path}')
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='PNG -> RGB8888 script'
|
||||||
|
)
|
||||||
|
parser.add_argument('input', help='Input image file (e.g. cat.png)')
|
||||||
|
parser.add_argument(
|
||||||
|
'-o', '--output',
|
||||||
|
help='Output header file (default: <input>.h)'
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
output_path = args.output
|
||||||
|
if not output_path:
|
||||||
|
base, _ = os.path.splitext(args.input)
|
||||||
|
output_path = base + '.h'
|
||||||
|
|
||||||
|
image_to_rgba8888_array(args.input, output_path)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
@@ -39,7 +39,7 @@ include ${TOPDIR}/lib/libultrahand/ultrahand.mk
|
|||||||
# version control constants
|
# version control constants
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
#TARGET_VERSION := $(shell git describe --dirty --always --tags)
|
#TARGET_VERSION := $(shell git describe --dirty --always --tags)
|
||||||
APP_VERSION := 0.33
|
APP_VERSION := 0.34
|
||||||
TARGET_VERSION := $(APP_VERSION)
|
TARGET_VERSION := $(APP_VERSION)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include "../format.h"
|
#include "../format.h"
|
||||||
#include "fatal_gui.h"
|
#include "fatal_gui.h"
|
||||||
|
#include "labels.h"
|
||||||
AppProfileGui::AppProfileGui(std::uint64_t applicationId, SysClkTitleProfileList* profileList)
|
AppProfileGui::AppProfileGui(std::uint64_t applicationId, SysClkTitleProfileList* profileList)
|
||||||
{
|
{
|
||||||
this->applicationId = applicationId;
|
this->applicationId = applicationId;
|
||||||
@@ -50,7 +51,13 @@ void AppProfileGui::openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfil
|
|||||||
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
|
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
std::map<uint32_t, std::string> labels = {};
|
||||||
|
|
||||||
|
if (module == SysClkModule_CPU) {
|
||||||
|
labels = IsMariko() ? cpu_freq_label_m : cpu_freq_label_e;
|
||||||
|
} else if (module == SysClkModule_GPU) {
|
||||||
|
labels = IsMariko() ? gpu_freq_label_m : gpu_freq_label_e;
|
||||||
|
}
|
||||||
tsl::changeTo<FreqChoiceGui>(this->profileList->mhzMap[profile][module] * 1000000, hzList, hzCount, module, [this, listItem, profile, module](std::uint32_t hz) {
|
tsl::changeTo<FreqChoiceGui>(this->profileList->mhzMap[profile][module] * 1000000, hzList, hzCount, module, [this, listItem, profile, module](std::uint32_t hz) {
|
||||||
this->profileList->mhzMap[profile][module] = hz / 1000000;
|
this->profileList->mhzMap[profile][module] = hz / 1000000;
|
||||||
listItem->setValue(formatListFreqMHz(this->profileList->mhzMap[profile][module]));
|
listItem->setValue(formatListFreqMHz(this->profileList->mhzMap[profile][module]));
|
||||||
@@ -62,7 +69,7 @@ void AppProfileGui::openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfil
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}, true
|
}, true, labels
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,7 +289,7 @@ void AppProfileGui::addProfileUI(SysClkProfile profile)
|
|||||||
ValueThresholds lcdThresholds(60, 65);
|
ValueThresholds lcdThresholds(60, 65);
|
||||||
if(!IsHoag() && configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) {
|
if(!IsHoag() && configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) {
|
||||||
if(profile != SysClkProfile_Docked)
|
if(profile != SysClkProfile_Docked)
|
||||||
this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 40, configList.values[HorizonOCConfigValue_EnableUnsafeDisplayFreqs] ? 72 : 60, 1, " Hz", 1, 0, lcdThresholds);
|
this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 40, configList.values[HorizonOCConfigValue_EnableUnsafeDisplayFreqs] ? IsAula() ? 65 : 72 : 60, 1, " Hz", 1, 0, lcdThresholds);
|
||||||
else
|
else
|
||||||
this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 5, " Hz", 1, 0);
|
this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 5, " Hz", 1, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
// this is a generated file, do not edit manually.
|
||||||
// cat.png - 96x128
|
// cat.png - 96x128
|
||||||
static const unsigned int CAT_WIDTH = 96;
|
static const unsigned int CAT_WIDTH = 96;
|
||||||
static const unsigned int CAT_HEIGHT = 128;
|
static const unsigned int CAT_HEIGHT = 128;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include "fatal_gui.h"
|
#include "fatal_gui.h"
|
||||||
#include "global_override_gui.h"
|
#include "global_override_gui.h"
|
||||||
#include "value_choice_gui.h"
|
#include "value_choice_gui.h"
|
||||||
|
#include "labels.h"
|
||||||
GlobalOverrideGui::GlobalOverrideGui()
|
GlobalOverrideGui::GlobalOverrideGui()
|
||||||
{
|
{
|
||||||
for (std::uint16_t m = 0; m < SysClkModule_EnumMax; m++) {
|
for (std::uint16_t m = 0; m < SysClkModule_EnumMax; m++) {
|
||||||
@@ -38,6 +38,14 @@ void GlobalOverrideGui::openFreqChoiceGui(SysClkModule module)
|
|||||||
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
|
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::map<uint32_t, std::string> labels = {};
|
||||||
|
|
||||||
|
if (module == SysClkModule_CPU) {
|
||||||
|
labels = IsMariko() ? cpu_freq_label_m : cpu_freq_label_e;
|
||||||
|
} else if (module == SysClkModule_GPU) {
|
||||||
|
labels = IsMariko() ? gpu_freq_label_m : gpu_freq_label_e;
|
||||||
|
}
|
||||||
tsl::changeTo<FreqChoiceGui>(
|
tsl::changeTo<FreqChoiceGui>(
|
||||||
this->context->overrideFreqs[module], hzList, hzCount, module,
|
this->context->overrideFreqs[module], hzList, hzCount, module,
|
||||||
[this, module](std::uint32_t hz) {
|
[this, module](std::uint32_t hz) {
|
||||||
@@ -52,7 +60,8 @@ void GlobalOverrideGui::openFreqChoiceGui(SysClkModule module)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
true);
|
true, labels
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GlobalOverrideGui::openValueChoiceGui(
|
void GlobalOverrideGui::openValueChoiceGui(
|
||||||
@@ -283,7 +292,7 @@ void GlobalOverrideGui::listUI()
|
|||||||
#if IS_MINIMAL == 0
|
#if IS_MINIMAL == 0
|
||||||
ValueThresholds lcdThresholds(60, 65);
|
ValueThresholds lcdThresholds(60, 65);
|
||||||
if(!IsHoag() && configList.values[HorizonOCConfigValue_OverwriteRefreshRate])
|
if(!IsHoag() && configList.values[HorizonOCConfigValue_OverwriteRefreshRate])
|
||||||
this->addModuleListItemValue(HorizonOCModule_Display, "Display", 40, configList.values[HorizonOCConfigValue_EnableUnsafeDisplayFreqs] ? 72 : 60, 1, " Hz", 1, 0, lcdThresholds);
|
this->addModuleListItemValue(HorizonOCModule_Display, "Display", 40, configList.values[HorizonOCConfigValue_EnableUnsafeDisplayFreqs] ? IsAula() ? 65 : 72 : 60, 1, " Hz", 1, 0, lcdThresholds);
|
||||||
#endif
|
#endif
|
||||||
this->addModuleToggleItem(HorizonOCModule_Governor);
|
this->addModuleToggleItem(HorizonOCModule_Governor);
|
||||||
}
|
}
|
||||||
|
|||||||
46
Source/sys-clk/overlay/src/ui/gui/labels.cpp
Normal file
46
Source/sys-clk/overlay/src/ui/gui/labels.cpp
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#include <map>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
std::map<uint32_t, std::string> cpu_freq_label_m = {
|
||||||
|
{612000000, "Sleep Mode"},
|
||||||
|
{1020000000, "Stock"},
|
||||||
|
{1224000000, "Dev OC"},
|
||||||
|
{1785000000, "Boost Mode"},
|
||||||
|
{1963000000, "Safe Max"},
|
||||||
|
{2397000000, "Unsafe Max"},
|
||||||
|
{2703000000, "Absolute Max"},
|
||||||
|
};
|
||||||
|
|
||||||
|
std::map<uint32_t, std::string> cpu_freq_label_e = {
|
||||||
|
{612000000, "Sleep Mode"},
|
||||||
|
{1020000000, "Stock"},
|
||||||
|
{1224000000, "Dev OC"},
|
||||||
|
{1785000000, "Boost Mode & Safe Max"},
|
||||||
|
{2091000000, "Unsafe Max"},
|
||||||
|
{2295000000, "Absolute Max"},
|
||||||
|
};
|
||||||
|
std::map<uint32_t, std::string> gpu_freq_label_e = {
|
||||||
|
{76800000, "Boost Mode"},
|
||||||
|
{307200000, "Handheld"},
|
||||||
|
{345600000, "Handheld"},
|
||||||
|
{384000000, "Handheld"},
|
||||||
|
{422400000, "Handheld"},
|
||||||
|
{460800000, "Handheld Safe Max"},
|
||||||
|
{768000000, "Docked"},
|
||||||
|
{921600000, "Safe Max"},
|
||||||
|
{960000000, "Unsafe Max"},
|
||||||
|
{1075200000, "Aboslute Max"},
|
||||||
|
};
|
||||||
|
|
||||||
|
std::map<uint32_t, std::string> gpu_freq_label_m = {
|
||||||
|
{76800000, "Boost Mode"},
|
||||||
|
{307200000, "Handheld"},
|
||||||
|
{384000000, "Handheld"},
|
||||||
|
{460800000, "Handheld"},
|
||||||
|
{614400000, "Handheld Safe Max"},
|
||||||
|
{768000000, "Docked"},
|
||||||
|
{1075200000, "Safe Max"},
|
||||||
|
{1305600000, "Unsafe Max"},
|
||||||
|
{1536000000, "Aboslute Max"},
|
||||||
|
};
|
||||||
9
Source/sys-clk/overlay/src/ui/gui/labels.h
Normal file
9
Source/sys-clk/overlay/src/ui/gui/labels.h
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <map>
|
||||||
|
#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
extern std::map<uint32_t, std::string> cpu_freq_label_m;
|
||||||
|
extern std::map<uint32_t, std::string> cpu_freq_label_e;
|
||||||
|
extern std::map<uint32_t, std::string> gpu_freq_label_m;
|
||||||
|
extern std::map<uint32_t, std::string> gpu_freq_label_e;
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <notification.h>
|
#include <notification.h>
|
||||||
|
#include "labels.h"
|
||||||
#if IS_MINIMAL == 1
|
#if IS_MINIMAL == 1
|
||||||
#pragma message("Compiling with minimal features")
|
#pragma message("Compiling with minimal features")
|
||||||
#endif
|
#endif
|
||||||
@@ -33,25 +34,6 @@ class CpuSubmenuGui;
|
|||||||
class GpuSubmenuGui;
|
class GpuSubmenuGui;
|
||||||
class GpuCustomTableSubmenuGui;
|
class GpuCustomTableSubmenuGui;
|
||||||
|
|
||||||
std::map<uint32_t, std::string> cpu_freq_label_m = {
|
|
||||||
{612000000, "Sleep Mode"},
|
|
||||||
{1020000000, "Stock"},
|
|
||||||
{1224000000, "Dev OC"},
|
|
||||||
{1785000000, "Boost Mode"},
|
|
||||||
{1963000000, "Safe Max"},
|
|
||||||
{2397000000, "Unsafe Max"},
|
|
||||||
{2805000000, "Absolute Max"},
|
|
||||||
};
|
|
||||||
|
|
||||||
std::map<uint32_t, std::string> cpu_freq_label_e = {
|
|
||||||
{612000000, "Sleep Mode"},
|
|
||||||
{1020000000, "Stock"},
|
|
||||||
{1224000000, "Dev OC"},
|
|
||||||
{1785000000, "Boost Mode & Safe Max"},
|
|
||||||
{2091000000, "Unsafe Max"},
|
|
||||||
{2295000000, "Absolute Max"},
|
|
||||||
};
|
|
||||||
|
|
||||||
MiscGui::MiscGui()
|
MiscGui::MiscGui()
|
||||||
{
|
{
|
||||||
this->configList = new SysClkConfigValueList {};
|
this->configList = new SysClkConfigValueList {};
|
||||||
@@ -459,8 +441,10 @@ protected:
|
|||||||
|
|
||||||
addConfigToggle(KipConfigValue_hpMode, "HP Mode");
|
addConfigToggle(KipConfigValue_hpMode, "HP Mode");
|
||||||
|
|
||||||
|
ValueThresholds eristaRamThresholds(2208000, 2304000);
|
||||||
|
|
||||||
std::vector<NamedValue> marikoMaxEmcClock = {
|
std::vector<NamedValue> marikoMaxEmcClock = {
|
||||||
NamedValue("1600MHz (JEDEC.)", 1600000),
|
NamedValue("1600MHz", 1600000, "JEDEC."),
|
||||||
NamedValue("1633MHz", 1633000),
|
NamedValue("1633MHz", 1633000),
|
||||||
NamedValue("1666MHz", 1666000),
|
NamedValue("1666MHz", 1666000),
|
||||||
NamedValue("1700MHz", 1700000),
|
NamedValue("1700MHz", 1700000),
|
||||||
@@ -468,16 +452,16 @@ protected:
|
|||||||
NamedValue("1766MHz", 1766000),
|
NamedValue("1766MHz", 1766000),
|
||||||
NamedValue("1800MHz", 1800000),
|
NamedValue("1800MHz", 1800000),
|
||||||
NamedValue("1833MHz", 1833000),
|
NamedValue("1833MHz", 1833000),
|
||||||
NamedValue("1866MHz (JEDEC.)", 1866000),
|
NamedValue("1866MHz", 1866000, "JEDEC."),
|
||||||
NamedValue("1900MHz", 1900000),
|
NamedValue("1900MHz", 1900000),
|
||||||
NamedValue("1933MHz", 1933000),
|
NamedValue("1933MHz", 1933000),
|
||||||
NamedValue("1966MHz", 1966000),
|
NamedValue("1966MHz", 1966000),
|
||||||
NamedValue("1996MHz (JEDEC.)", 1996800),
|
NamedValue("1996MHz", 1996800, "JEDEC."),
|
||||||
NamedValue("2000MHz", 2000000),
|
NamedValue("2000MHz", 2000000),
|
||||||
NamedValue("2033MHz", 2033000),
|
NamedValue("2033MHz", 2033000),
|
||||||
NamedValue("2066MHz", 2066000),
|
NamedValue("2066MHz", 2066000),
|
||||||
NamedValue("2100MHz", 2100000),
|
NamedValue("2100MHz", 2100000),
|
||||||
NamedValue("2133MHz (JEDEC.)", 2133000),
|
NamedValue("2133MHz", 2133000),
|
||||||
NamedValue("2166MHz", 2166000),
|
NamedValue("2166MHz", 2166000),
|
||||||
NamedValue("2200MHz", 2200000),
|
NamedValue("2200MHz", 2200000),
|
||||||
NamedValue("2233MHz", 2233000),
|
NamedValue("2233MHz", 2233000),
|
||||||
@@ -485,7 +469,7 @@ protected:
|
|||||||
NamedValue("2300MHz", 2300000),
|
NamedValue("2300MHz", 2300000),
|
||||||
NamedValue("2333MHz", 2333000),
|
NamedValue("2333MHz", 2333000),
|
||||||
NamedValue("2366MHz", 2366000),
|
NamedValue("2366MHz", 2366000),
|
||||||
NamedValue("2400MHz (JEDEC.)", 2400000),
|
NamedValue("2400MHz", 2400000, "JEDEC."),
|
||||||
NamedValue("2433MHz", 2433000),
|
NamedValue("2433MHz", 2433000),
|
||||||
NamedValue("2466MHz", 2466000),
|
NamedValue("2466MHz", 2466000),
|
||||||
NamedValue("2500MHz", 2500000),
|
NamedValue("2500MHz", 2500000),
|
||||||
@@ -493,7 +477,7 @@ protected:
|
|||||||
NamedValue("2566MHz", 2566000),
|
NamedValue("2566MHz", 2566000),
|
||||||
NamedValue("2600MHz", 2600000),
|
NamedValue("2600MHz", 2600000),
|
||||||
NamedValue("2633MHz", 2633000),
|
NamedValue("2633MHz", 2633000),
|
||||||
NamedValue("2666MHz", 2666000),
|
NamedValue("2666MHz", 2666000, "JEDEC."),
|
||||||
NamedValue("2700MHz", 2700000),
|
NamedValue("2700MHz", 2700000),
|
||||||
NamedValue("2733MHz", 2733000),
|
NamedValue("2733MHz", 2733000),
|
||||||
NamedValue("2766MHz", 2766000),
|
NamedValue("2766MHz", 2766000),
|
||||||
@@ -501,7 +485,7 @@ protected:
|
|||||||
NamedValue("2833MHz", 2833000),
|
NamedValue("2833MHz", 2833000),
|
||||||
NamedValue("2866MHz", 2866000),
|
NamedValue("2866MHz", 2866000),
|
||||||
NamedValue("2900MHz", 2900000),
|
NamedValue("2900MHz", 2900000),
|
||||||
NamedValue("2933MHz (JEDEC.)", 2933000),
|
NamedValue("2933MHz", 2933000, "JEDEC."),
|
||||||
NamedValue("2966MHz", 2966000),
|
NamedValue("2966MHz", 2966000),
|
||||||
NamedValue("3000MHz", 3000000),
|
NamedValue("3000MHz", 3000000),
|
||||||
NamedValue("3033MHz", 3033000),
|
NamedValue("3033MHz", 3033000),
|
||||||
@@ -509,10 +493,10 @@ protected:
|
|||||||
NamedValue("3100MHz", 3100000),
|
NamedValue("3100MHz", 3100000),
|
||||||
NamedValue("3133MHz", 3133000),
|
NamedValue("3133MHz", 3133000),
|
||||||
NamedValue("3166MHz", 3166000),
|
NamedValue("3166MHz", 3166000),
|
||||||
NamedValue("3200MHz (JEDEC.)", 3200000),
|
NamedValue("3200MHz", 3200000, "JEDEC."),
|
||||||
// NamedValue("3233MHz (Needs high Speedo/PLL)", 3233000),
|
NamedValue("3233MHz", 3233000, "High speedo needed!"),
|
||||||
// NamedValue("3266MHz (Needs high Speedo/PLL)", 3266000),
|
NamedValue("3266MHz", 3266000, "High speedo needed!"),
|
||||||
// NamedValue("3300MHz (Needs high Speedo/PLL)", 3300000),
|
NamedValue("3300MHz", 3300000, "High speedo needed!"),
|
||||||
// NamedValue("3333MHz (Needs extreme Speedo/PLL)", 3333000),
|
// NamedValue("3333MHz (Needs extreme Speedo/PLL)", 3333000),
|
||||||
// NamedValue("3366MHz (Needs extreme Speedo/PLL)", 3366000),
|
// NamedValue("3366MHz (Needs extreme Speedo/PLL)", 3366000),
|
||||||
// NamedValue("3400MHz (Needs extreme Speedo/PLL)", 3400000),
|
// NamedValue("3400MHz (Needs extreme Speedo/PLL)", 3400000),
|
||||||
@@ -522,7 +506,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
std::vector<NamedValue> eristaMaxEmcClock = {
|
std::vector<NamedValue> eristaMaxEmcClock = {
|
||||||
NamedValue("1600MHz (JEDEC.)", 1600000),
|
NamedValue("1600MHz", 1600000, "JEDEC."),
|
||||||
NamedValue("1633MHz", 1633000),
|
NamedValue("1633MHz", 1633000),
|
||||||
NamedValue("1666MHz", 1666000),
|
NamedValue("1666MHz", 1666000),
|
||||||
NamedValue("1700MHz", 1700000),
|
NamedValue("1700MHz", 1700000),
|
||||||
@@ -530,32 +514,44 @@ protected:
|
|||||||
NamedValue("1766MHz", 1766000),
|
NamedValue("1766MHz", 1766000),
|
||||||
NamedValue("1800MHz", 1800000),
|
NamedValue("1800MHz", 1800000),
|
||||||
NamedValue("1833MHz", 1833000),
|
NamedValue("1833MHz", 1833000),
|
||||||
NamedValue("1866MHz (JEDEC.)", 1866000),
|
NamedValue("1862MHz", 1862400, "JEDEC."),
|
||||||
NamedValue("1900MHz", 1900000),
|
NamedValue("1881MHz", 1881600),
|
||||||
NamedValue("1933MHz", 1933000),
|
NamedValue("1900MHz", 1900800),
|
||||||
NamedValue("1966MHz", 1966000),
|
NamedValue("1920MHz", 1920000),
|
||||||
NamedValue("2000MHz", 2000000),
|
NamedValue("1939MHz", 1939200),
|
||||||
NamedValue("2033MHz", 2033000),
|
NamedValue("1958MHz", 1958400),
|
||||||
NamedValue("2066MHz", 2066000),
|
NamedValue("1977MHz", 1977600),
|
||||||
NamedValue("2100MHz", 2100000),
|
NamedValue("1996MHz", 1996800, "JEDEC."),
|
||||||
NamedValue("2133MHz (JEDEC.)", 2133000),
|
NamedValue("2016MHz", 2016000),
|
||||||
NamedValue("2166MHz", 2166000),
|
NamedValue("2035MHz", 2035200),
|
||||||
NamedValue("2200MHz (high power draw!)", 2200000),
|
NamedValue("2054MHz", 2054400),
|
||||||
NamedValue("2233MHz (high power draw!)", 2233000),
|
NamedValue("2073MHz", 2073600),
|
||||||
NamedValue("2266MHz (high power draw!)", 2266000),
|
NamedValue("2092MHz", 2092800),
|
||||||
NamedValue("2300MHz (high power draw!)", 2300000),
|
NamedValue("2112MHz", 2112000),
|
||||||
NamedValue("2333MHz (high power draw!)", 2333000),
|
NamedValue("2131MHz", 2131200, "JEDEC."),
|
||||||
NamedValue("2366MHz (high power draw!)", 2366000),
|
NamedValue("2150MHz", 2150400),
|
||||||
NamedValue("2400MHz (high power draw & JEDEC.)", 2400000),
|
NamedValue("2169MHz", 2169600),
|
||||||
|
NamedValue("2188MHz", 2188800),
|
||||||
|
NamedValue("2208MHz", 2208000),
|
||||||
|
NamedValue("2227MHz", 2227200),
|
||||||
|
NamedValue("2246MHz", 2246400),
|
||||||
|
NamedValue("2265MHz", 2265600),
|
||||||
|
NamedValue("2284MHz", 2284800),
|
||||||
|
NamedValue("2304MHz", 2304000),
|
||||||
|
NamedValue("2323MHz", 2323200),
|
||||||
|
NamedValue("2342MHz", 2342400),
|
||||||
|
NamedValue("2361MHz", 2361600),
|
||||||
|
NamedValue("2380MHz", 2380800),
|
||||||
|
NamedValue("2400MHz", 2400000, "JEDEC."),
|
||||||
};
|
};
|
||||||
|
|
||||||
if(IsErista()) {
|
if(IsErista()) {
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_eristaEmcMaxClock,
|
KipConfigValue_eristaEmcMaxClock,
|
||||||
"EMC Max Clock",
|
"RAM Max Clock",
|
||||||
ValueRange(0, 1, 1, "", 1),
|
ValueRange(0, 1, 1, "", 1),
|
||||||
"EMC Max Clock",
|
"RAM Max Clock",
|
||||||
&thresholdsDisabled,
|
&eristaRamThresholds,
|
||||||
{},
|
{},
|
||||||
eristaMaxEmcClock,
|
eristaMaxEmcClock,
|
||||||
false
|
false
|
||||||
@@ -563,9 +559,9 @@ protected:
|
|||||||
} else {
|
} else {
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_marikoEmcMaxClock,
|
KipConfigValue_marikoEmcMaxClock,
|
||||||
"EMC Max Clock",
|
"RAM Max Clock",
|
||||||
ValueRange(0, 1, 1, "", 1),
|
ValueRange(0, 1, 1, "", 1),
|
||||||
"EMC Max Clock",
|
"RAM Max Clock",
|
||||||
&thresholdsDisabled,
|
&thresholdsDisabled,
|
||||||
{},
|
{},
|
||||||
marikoMaxEmcClock,
|
marikoMaxEmcClock,
|
||||||
@@ -585,7 +581,7 @@ protected:
|
|||||||
ValueThresholds vdd2Thresholds(1212500, 1250000);
|
ValueThresholds vdd2Thresholds(1212500, 1250000);
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_commonEmcMemVolt,
|
KipConfigValue_commonEmcMemVolt,
|
||||||
"EMC VDD2 Voltage",
|
"RAM VDD2 Voltage",
|
||||||
ValueRange(912500, 1350000, 12500, "mV", 1000, 1),
|
ValueRange(912500, 1350000, 12500, "mV", 1000, 1),
|
||||||
"Voltage",
|
"Voltage",
|
||||||
&vdd2Thresholds,
|
&vdd2Thresholds,
|
||||||
@@ -597,9 +593,9 @@ protected:
|
|||||||
if(IsMariko()) {
|
if(IsMariko()) {
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_marikoEmcVddqVolt,
|
KipConfigValue_marikoEmcVddqVolt,
|
||||||
"EMC VDDQ Voltage",
|
"RAM VDDQ Voltage",
|
||||||
ValueRange(550000, 700000, 5000, "mV", 1000),
|
ValueRange(550000, 700000, 5000, "mV", 1000),
|
||||||
"EMC VDDQ Voltage",
|
"RAM VDDQ Voltage",
|
||||||
&thresholdsDisabled,
|
&thresholdsDisabled,
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
@@ -609,16 +605,16 @@ protected:
|
|||||||
|
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_emcDvbShift,
|
KipConfigValue_emcDvbShift,
|
||||||
"DVB Shift",
|
"SoC DVB Shift",
|
||||||
ValueRange(0, 10, 1, "", 1),
|
ValueRange(0, 10, 1, "", 1),
|
||||||
"DVB Shift",
|
"SoC DVB Shift",
|
||||||
&thresholdsDisabled,
|
&thresholdsDisabled,
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
tsl::elm::ListItem* timingsSubmenu = new tsl::elm::ListItem("Memory Timings");
|
tsl::elm::ListItem* timingsSubmenu = new tsl::elm::ListItem("RAM Timing Reductions");
|
||||||
timingsSubmenu->setClickListener([](u64 keys) {
|
timingsSubmenu->setClickListener([](u64 keys) {
|
||||||
if (keys & HidNpadButton_A) {
|
if (keys & HidNpadButton_A) {
|
||||||
tsl::changeTo<RamTimingsSubmenuGui>();
|
tsl::changeTo<RamTimingsSubmenuGui>();
|
||||||
@@ -628,7 +624,7 @@ protected:
|
|||||||
});
|
});
|
||||||
this->listElement->addItem(timingsSubmenu);
|
this->listElement->addItem(timingsSubmenu);
|
||||||
|
|
||||||
tsl::elm::ListItem* latenciesSubmenu = new tsl::elm::ListItem("Memory Latencies");
|
tsl::elm::ListItem* latenciesSubmenu = new tsl::elm::ListItem("RAM Latencies");
|
||||||
latenciesSubmenu->setClickListener([](u64 keys) {
|
latenciesSubmenu->setClickListener([](u64 keys) {
|
||||||
if (keys & HidNpadButton_A) {
|
if (keys & HidNpadButton_A) {
|
||||||
tsl::changeTo<RamLatenciesSubmenuGui>();
|
tsl::changeTo<RamLatenciesSubmenuGui>();
|
||||||
@@ -659,32 +655,34 @@ protected:
|
|||||||
addConfigButton(KipConfigValue_t7_tWTR, "t7 tWTR", ValueRange(0, 10, 1, "", 1), "tWTR", &thresholdsDisabled, {}, {}, false);
|
addConfigButton(KipConfigValue_t7_tWTR, "t7 tWTR", ValueRange(0, 10, 1, "", 1), "tWTR", &thresholdsDisabled, {}, {}, false);
|
||||||
addConfigButton(KipConfigValue_t8_tREFI, "t8 tREFI", ValueRange(0, 6, 1, "", 1), "tREFI", &thresholdsDisabled, {}, {}, false);
|
addConfigButton(KipConfigValue_t8_tREFI, "t8 tREFI", ValueRange(0, 6, 1, "", 1), "tREFI", &thresholdsDisabled, {}, {}, false);
|
||||||
#if IS_MINIMAL == 0
|
#if IS_MINIMAL == 0
|
||||||
this->listElement->addItem(new tsl::elm::CategoryHeader("Experimental"));
|
if(IsMariko()) {
|
||||||
|
this->listElement->addItem(new tsl::elm::CategoryHeader("Experimental"));
|
||||||
|
|
||||||
tsl::elm::ListItem* emcUpdBtn = new tsl::elm::ListItem("Update RAM Timings");
|
tsl::elm::ListItem* emcUpdBtn = new tsl::elm::ListItem("Update RAM Timings");
|
||||||
emcUpdBtn->setClickListener([this](u64 keys) {
|
emcUpdBtn->setClickListener([this](u64 keys) {
|
||||||
if (keys & HidNpadButton_A) {
|
if (keys & HidNpadButton_A) {
|
||||||
if(this->context->freqs[SysClkModule_MEM] > 1600000000) {
|
if(this->context->freqs[SysClkModule_MEM] > 1600000000) {
|
||||||
Result rc = hocClkIpcUpdateEmcRegs();
|
Result rc = hocClkIpcUpdateEmcRegs();
|
||||||
if (R_FAILED(rc)) {
|
if (R_FAILED(rc)) {
|
||||||
FatalGui::openWithResultCode("hocClkIpcUpdateEmcRegs", rc);
|
FatalGui::openWithResultCode("hocClkIpcUpdateEmcRegs", rc);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
writeNotification("Horizon OC\nSet your ram frequency to max\nbefore applying timings!");
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
writeNotification("Horizon OC\nSet your ram frequency to max\nbefore applying timings!");
|
|
||||||
}
|
}
|
||||||
}
|
return false;
|
||||||
return false;
|
});
|
||||||
});
|
|
||||||
|
|
||||||
this->listElement->addItem(emcUpdBtn);
|
this->listElement->addItem(emcUpdBtn);
|
||||||
tsl::elm::CustomDrawer* warningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) {
|
tsl::elm::CustomDrawer* warningText = new tsl::elm::CustomDrawer([](tsl::gfx::Renderer *renderer, s32 x, s32 y, s32 w, s32 h) {
|
||||||
renderer->drawString("\uE150 This feature is EXPERIMENTAL", false, x + 20, y + 30, 18, tsl::style::color::ColorText);
|
renderer->drawString("\uE150 This feature is EXPERIMENTAL", false, x + 20, y + 30, 18, tsl::style::color::ColorText);
|
||||||
renderer->drawString("and should only be used for testing!", false, x + 20, y + 50, 18, tsl::style::color::ColorText);
|
renderer->drawString("and should only be used for testing!", false, x + 20, y + 50, 18, tsl::style::color::ColorText);
|
||||||
});
|
});
|
||||||
warningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 70);
|
warningText->setBoundaries(0, 0, tsl::cfg::FramebufferWidth, 70);
|
||||||
this->listElement->addItem(warningText);
|
this->listElement->addItem(warningText);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -700,17 +698,17 @@ protected:
|
|||||||
this->listElement->addItem(new tsl::elm::CategoryHeader("Memory Latencies"));
|
this->listElement->addItem(new tsl::elm::CategoryHeader("Memory Latencies"));
|
||||||
|
|
||||||
std::vector<NamedValue> rlLabels = {
|
std::vector<NamedValue> rlLabels = {
|
||||||
NamedValue("1333RL", 28),
|
NamedValue("1333 RL", 28),
|
||||||
NamedValue("1600RL", 32),
|
NamedValue("1600 RL", 32),
|
||||||
NamedValue("1866RL", 36),
|
NamedValue("1866 RL", 36),
|
||||||
NamedValue("2133RL", 40)
|
NamedValue("2133 RL", 40)
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<NamedValue> wlLabels = {
|
std::vector<NamedValue> wlLabels = {
|
||||||
NamedValue("1333WL", 12),
|
NamedValue("1333 WL", 12),
|
||||||
NamedValue("1600WL", 14),
|
NamedValue("1600 WL", 14),
|
||||||
NamedValue("1866WL", 16),
|
NamedValue("1866 WL", 16),
|
||||||
NamedValue("2133WL", 18)
|
NamedValue("2133 WL", 18)
|
||||||
};
|
};
|
||||||
|
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
@@ -748,6 +746,8 @@ protected:
|
|||||||
this->listElement->addItem(new tsl::elm::CategoryHeader("CPU Settings"));
|
this->listElement->addItem(new tsl::elm::CategoryHeader("CPU Settings"));
|
||||||
if(IsMariko()) {
|
if(IsMariko()) {
|
||||||
std::vector<NamedValue> ClkOptions = {
|
std::vector<NamedValue> ClkOptions = {
|
||||||
|
NamedValue("1785 MHz", 1785000),
|
||||||
|
NamedValue("1887 MHz", 1887000),
|
||||||
NamedValue("1963 MHz", 1963000),
|
NamedValue("1963 MHz", 1963000),
|
||||||
NamedValue("2091 MHz", 2091000),
|
NamedValue("2091 MHz", 2091000),
|
||||||
NamedValue("2193 MHz", 2193000),
|
NamedValue("2193 MHz", 2193000),
|
||||||
@@ -863,6 +863,8 @@ protected:
|
|||||||
);
|
);
|
||||||
|
|
||||||
std::vector<NamedValue> maxClkOptions = {
|
std::vector<NamedValue> maxClkOptions = {
|
||||||
|
NamedValue("1785 MHz", 1785000),
|
||||||
|
NamedValue("1887 MHz", 1887000),
|
||||||
NamedValue("1963 MHz", 1963000),
|
NamedValue("1963 MHz", 1963000),
|
||||||
NamedValue("2091 MHz", 2091000),
|
NamedValue("2091 MHz", 2091000),
|
||||||
NamedValue("2193 MHz", 2193000),
|
NamedValue("2193 MHz", 2193000),
|
||||||
@@ -933,7 +935,7 @@ protected:
|
|||||||
this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Settings"));
|
this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Settings"));
|
||||||
|
|
||||||
std::vector<NamedValue> gpuUvConf = {
|
std::vector<NamedValue> gpuUvConf = {
|
||||||
NamedValue("No UV", 0),
|
NamedValue("No Undervolt", 0),
|
||||||
NamedValue("SLT Table", 1),
|
NamedValue("SLT Table", 1),
|
||||||
NamedValue("HiOPT Table", 2),
|
NamedValue("HiOPT Table", 2),
|
||||||
};
|
};
|
||||||
@@ -977,9 +979,9 @@ protected:
|
|||||||
);
|
);
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_eristaGpuVmin,
|
KipConfigValue_eristaGpuVmin,
|
||||||
"GPU VMIN",
|
"GPU Minimum Voltage",
|
||||||
ValueRange(700, 875, 5, "mV", 1),
|
ValueRange(700, 875, 5, "mV", 1),
|
||||||
"GPU VMIN",
|
"GPU Minimum Voltage",
|
||||||
&thresholdsDisabled,
|
&thresholdsDisabled,
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
@@ -1014,9 +1016,9 @@ protected:
|
|||||||
ValueThresholds MgpuVmaxThresholds(800, 850);
|
ValueThresholds MgpuVmaxThresholds(800, 850);
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_marikoGpuVmax,
|
KipConfigValue_marikoGpuVmax,
|
||||||
"GPU VMAX",
|
"GPU Maximum Voltage",
|
||||||
ValueRange(750, 960, 5, "mV", 1),
|
ValueRange(750, 960, 5, "mV", 1),
|
||||||
"GPU VMAX",
|
"GPU Maximum Voltage",
|
||||||
&MgpuVmaxThresholds,
|
&MgpuVmaxThresholds,
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
@@ -1026,9 +1028,9 @@ protected:
|
|||||||
|
|
||||||
addConfigButton(
|
addConfigButton(
|
||||||
KipConfigValue_commonGpuVoltOffset,
|
KipConfigValue_commonGpuVoltOffset,
|
||||||
"GPU Volt Offset",
|
"GPU Voltage Offset",
|
||||||
ValueRange(0, 50, 5, "mV", 1),
|
ValueRange(0, 50, 5, "mV", 1),
|
||||||
"GPU Volt Offset",
|
"GPU Voltage Offset",
|
||||||
&thresholdsDisabled,
|
&thresholdsDisabled,
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
@@ -1224,7 +1226,7 @@ protected:
|
|||||||
addConfigButton(KipConfigValue_g_volt_1344000, "1344.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1344000, "1344.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
addConfigButton(KipConfigValue_g_volt_1382400, "1382.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1382400, "1382.4MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
addConfigButton(KipConfigValue_g_volt_1420800, "1420.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1420800, "1420.8MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
addConfigButton(KipConfigValue_g_volt_1459200, "1459.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1459200, "1459.2MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
addConfigButton(KipConfigValue_g_volt_1497600, "1497.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1497600, "1497.6MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
addConfigButton(KipConfigValue_g_volt_1536000, "1536.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
addConfigButton(KipConfigValue_g_volt_1536000, "1536.0MHz", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts_noAuto, false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user