Merge branch 'Horizon-OC:develop' into develop
This commit is contained in:
@@ -83,7 +83,7 @@ Result nvdecCheck = 1;
|
|||||||
Result nvencCheck = 1;
|
Result nvencCheck = 1;
|
||||||
Result nvjpgCheck = 1;
|
Result nvjpgCheck = 1;
|
||||||
Result nifmCheck = 1;
|
Result nifmCheck = 1;
|
||||||
Result sysclkCheck = 1;
|
Result sysclkCheck = 0;
|
||||||
Result pwmDutyCycleCheck = 1;
|
Result pwmDutyCycleCheck = 1;
|
||||||
|
|
||||||
//Wi-Fi
|
//Wi-Fi
|
||||||
@@ -572,21 +572,19 @@ void Misc(void*) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get sys-clk data
|
// Get sys-clk data
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
SysClkContext sysclkCTX;
|
||||||
SysClkContext sysclkCTX;
|
if (R_SUCCEEDED(sysclkIpcGetCurrentContext(&sysclkCTX))) {
|
||||||
if (R_SUCCEEDED(sysclkIpcGetCurrentContext(&sysclkCTX))) {
|
realCPU_Hz = sysclkCTX.realFreqs[SysClkModule_CPU];
|
||||||
realCPU_Hz = sysclkCTX.realFreqs[SysClkModule_CPU];
|
realGPU_Hz = sysclkCTX.realFreqs[SysClkModule_GPU];
|
||||||
realGPU_Hz = sysclkCTX.realFreqs[SysClkModule_GPU];
|
realRAM_Hz = sysclkCTX.realFreqs[SysClkModule_MEM];
|
||||||
realRAM_Hz = sysclkCTX.realFreqs[SysClkModule_MEM];
|
partLoad[SysClkPartLoad_EMC] = sysclkCTX.partLoad[SysClkPartLoad_EMC];
|
||||||
partLoad[SysClkPartLoad_EMC] = sysclkCTX.partLoad[SysClkPartLoad_EMC];
|
partLoad[SysClkPartLoad_EMCCpu] = sysclkCTX.partLoad[SysClkPartLoad_EMCCpu];
|
||||||
partLoad[SysClkPartLoad_EMCCpu] = sysclkCTX.partLoad[SysClkPartLoad_EMCCpu];
|
|
||||||
|
realCPU_mV = sysclkCTX.voltages[HocClkVoltage_CPU];
|
||||||
realCPU_mV = sysclkCTX.voltages[HocClkVoltage_CPU];
|
realGPU_mV = sysclkCTX.voltages[HocClkVoltage_GPU];
|
||||||
realGPU_mV = sysclkCTX.voltages[HocClkVoltage_GPU];
|
realVDD2_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDD2];
|
||||||
realVDD2_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDD2];
|
realVDDQ_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDDQ_MarikoOnly];
|
||||||
realVDDQ_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDDQ_MarikoOnly];
|
realSOC_mV = sysclkCTX.voltages[HocClkVoltage_SOC];
|
||||||
realSOC_mV = sysclkCTX.voltages[HocClkVoltage_SOC];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Temperatures
|
// Temperatures
|
||||||
@@ -699,21 +697,7 @@ void Misc3(void*) {
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
mutexLock(&mutex_Misc);
|
mutexLock(&mutex_Misc);
|
||||||
|
|
||||||
// Get sys-clk data
|
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
|
||||||
SysClkContext sysclkCTX;
|
|
||||||
if (R_SUCCEEDED(sysclkIpcGetCurrentContext(&sysclkCTX))) {
|
|
||||||
partLoad[SysClkPartLoad_EMC] = sysclkCTX.partLoad[SysClkPartLoad_EMC];
|
|
||||||
partLoad[SysClkPartLoad_EMCCpu] = sysclkCTX.partLoad[SysClkPartLoad_EMCCpu];
|
|
||||||
|
|
||||||
realCPU_mV = sysclkCTX.voltages[HocClkVoltage_CPU];
|
|
||||||
realGPU_mV = sysclkCTX.voltages[HocClkVoltage_GPU];
|
|
||||||
realSOC_mV = sysclkCTX.voltages[HocClkVoltage_SOC];
|
|
||||||
realVDD2_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDD2];
|
|
||||||
realVDDQ_mV = sysclkCTX.voltages[HocClkVoltage_EMCVDDQ_MarikoOnly];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Temperatures
|
// Temperatures
|
||||||
if (R_SUCCEEDED(i2cCheck)) {
|
if (R_SUCCEEDED(i2cCheck)) {
|
||||||
Tmp451GetSocTemp(&SOC_temperatureF);
|
Tmp451GetSocTemp(&SOC_temperatureF);
|
||||||
|
|||||||
@@ -446,14 +446,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemoryAndRefreshRate();
|
LoadSharedMemoryAndRefreshRate();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -473,9 +465,7 @@ public:
|
|||||||
|
|
||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
//Exit services
|
//Exit services
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
@@ -530,14 +520,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemory();
|
LoadSharedMemory();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -557,9 +539,7 @@ public:
|
|||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
//Exit services
|
//Exit services
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
pcvExit();
|
pcvExit();
|
||||||
@@ -617,14 +597,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemory();
|
LoadSharedMemory();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -645,9 +617,7 @@ public:
|
|||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
// Exit services
|
// Exit services
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
pcvExit();
|
pcvExit();
|
||||||
@@ -707,14 +677,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemoryAndRefreshRate();
|
LoadSharedMemoryAndRefreshRate();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -734,9 +696,7 @@ public:
|
|||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
pcvExit();
|
pcvExit();
|
||||||
tsExit();
|
tsExit();
|
||||||
@@ -790,14 +750,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemoryAndRefreshRate();
|
LoadSharedMemoryAndRefreshRate();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -817,9 +769,7 @@ public:
|
|||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
pcvExit();
|
pcvExit();
|
||||||
tsExit();
|
tsExit();
|
||||||
@@ -873,14 +823,6 @@ public:
|
|||||||
if (SaltySD) {
|
if (SaltySD) {
|
||||||
LoadSharedMemoryAndRefreshRate();
|
LoadSharedMemoryAndRefreshRate();
|
||||||
}
|
}
|
||||||
if (sysclkIpcRunning() && R_SUCCEEDED(sysclkIpcInitialize())) {
|
|
||||||
uint32_t sysClkApiVer = 0;
|
|
||||||
sysclkIpcGetAPIVersion(&sysClkApiVer);
|
|
||||||
if (sysClkApiVer < 4) {
|
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
else sysclkCheck = 0;
|
|
||||||
}
|
|
||||||
if (R_SUCCEEDED(splInitialize())) {
|
if (R_SUCCEEDED(splInitialize())) {
|
||||||
u64 sku = 0;
|
u64 sku = 0;
|
||||||
splGetConfig(SplConfigItem_HardwareType, &sku);
|
splGetConfig(SplConfigItem_HardwareType, &sku);
|
||||||
@@ -900,9 +842,7 @@ public:
|
|||||||
virtual void exitServices() override {
|
virtual void exitServices() override {
|
||||||
CloseThreads();
|
CloseThreads();
|
||||||
shmemClose(&_sharedmemory);
|
shmemClose(&_sharedmemory);
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
sysclkIpcExit();
|
||||||
sysclkIpcExit();
|
|
||||||
}
|
|
||||||
clkrstExit();
|
clkrstExit();
|
||||||
pcvExit();
|
pcvExit();
|
||||||
tsExit();
|
tsExit();
|
||||||
|
|||||||
@@ -233,12 +233,10 @@ public:
|
|||||||
else if (realRAM_Hz && settings.showDeltas && (settings.showRealFreqs || settings.showTargetFreqs)) {
|
else if (realRAM_Hz && settings.showDeltas && (settings.showRealFreqs || settings.showTargetFreqs)) {
|
||||||
renderer->drawString(DeltaRAM_c, false, COMMON_MARGIN + deltaOffset, height_offset, 15, (settings.textColor));
|
renderer->drawString(DeltaRAM_c, false, COMMON_MARGIN + deltaOffset, height_offset, 15, (settings.textColor));
|
||||||
}
|
}
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
static std::vector<std::string> PartLoadColoredChars = {"CPU", "GPU"};
|
||||||
static std::vector<std::string> PartLoadColoredChars = {"CPU", "GPU"};
|
//static auto loadLabelWidth = renderer->getTextDimensions("Load: ", false, 15).first;
|
||||||
//static auto loadLabelWidth = renderer->getTextDimensions("Load: ", false, 15).first;
|
renderer->drawString("Load", false, COMMON_MARGIN, height_offset+15, 15, (settings.catColor2));
|
||||||
renderer->drawString("Load", false, COMMON_MARGIN, height_offset+15, 15, (settings.catColor2));
|
renderer->drawStringWithColoredSections(RAM_load_c, false, PartLoadColoredChars, COMMON_MARGIN + valueOffset, height_offset+15, 15, (settings.textColor), settings.catColor2);
|
||||||
renderer->drawStringWithColoredSections(RAM_load_c, false, PartLoadColoredChars, COMMON_MARGIN + valueOffset, height_offset+15, 15, (settings.textColor), settings.catColor2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (R_SUCCEEDED(Hinted)) {
|
if (R_SUCCEEDED(Hinted)) {
|
||||||
//static auto textWidth = renderer->getTextDimensions("Total \nApplication \nApplet \nSystem \nSystem Unsafe ", false, 15).first;
|
//static auto textWidth = renderer->getTextDimensions("Total \nApplication \nApplet \nSystem \nSystem Unsafe ", false, 15).first;
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ public:
|
|||||||
else
|
else
|
||||||
width = renderer->getTextDimensions("100%@4444.4444 mV", false, fontsize).first;
|
width = renderer->getTextDimensions("100%@4444.4444 mV", false, fontsize).first;
|
||||||
}
|
}
|
||||||
} else if (key == "GPU" || (key == "RAM" && settings.showRAMLoad && R_SUCCEEDED(sysclkCheck))) {
|
} else if (key == "GPU" || (key == "RAM" && settings.showRAMLoad)) {
|
||||||
//dimensions = renderer->drawString("100.0%@4444.4", false, 0, 0, fontsize, renderer->a(0x0000));
|
//dimensions = renderer->drawString("100.0%@4444.4", false, 0, 0, fontsize, renderer->a(0x0000));
|
||||||
|
|
||||||
if (!settings.showRAMLoadCPUGPU) {
|
if (!settings.showRAMLoadCPUGPU) {
|
||||||
@@ -370,7 +370,7 @@ public:
|
|||||||
width = renderer->getTextDimensions("100%[100%,100%]@4444.4444 mV", false, fontsize).first;
|
width = renderer->getTextDimensions("100%[100%,100%]@4444.4444 mV", false, fontsize).first;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (key == "RAM" && (!settings.showRAMLoad || R_FAILED(sysclkCheck))) {
|
} else if (key == "RAM" && (!settings.showRAMLoad)) {
|
||||||
//dimensions = renderer->drawString("44444444MB@4444.4", false, 0, 0, fontsize, renderer->a(0x0000));
|
//dimensions = renderer->drawString("44444444MB@4444.4", false, 0, 0, fontsize, renderer->a(0x0000));
|
||||||
if (!settings.realVolts) {
|
if (!settings.realVolts) {
|
||||||
width = renderer->getTextDimensions("100%@4444.4", false, fontsize).first;
|
width = renderer->getTextDimensions("100%@4444.4", false, fontsize).first;
|
||||||
@@ -993,51 +993,33 @@ public:
|
|||||||
} else {
|
} else {
|
||||||
unsigned PartLoadInt;
|
unsigned PartLoadInt;
|
||||||
|
|
||||||
if (R_SUCCEEDED(sysclkCheck)) {
|
PartLoadInt = partLoad[SysClkPartLoad_EMC] / 10;
|
||||||
PartLoadInt = partLoad[SysClkPartLoad_EMC] / 10;
|
|
||||||
|
if (settings.showRAMLoadCPUGPU) {
|
||||||
if (settings.showRAMLoadCPUGPU) {
|
unsigned ramCpuLoadInt = partLoad[SysClkPartLoad_EMCCpu] / 10;
|
||||||
unsigned ramCpuLoadInt = partLoad[SysClkPartLoad_EMCCpu] / 10;
|
int RAM_GPU_Load = partLoad[SysClkPartLoad_EMC] - partLoad[SysClkPartLoad_EMCCpu];
|
||||||
int RAM_GPU_Load = partLoad[SysClkPartLoad_EMC] - partLoad[SysClkPartLoad_EMCCpu];
|
unsigned ramGpuLoadInt = RAM_GPU_Load / 10;
|
||||||
unsigned ramGpuLoadInt = RAM_GPU_Load / 10;
|
|
||||||
|
|
||||||
if (settings.realFrequencies && realRAM_Hz) {
|
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
|
||||||
"%u%%[%u%%,%u%%]@%hu.%hhu",
|
|
||||||
PartLoadInt, ramCpuLoadInt, ramGpuLoadInt,
|
|
||||||
realRAM_Hz / 1000000, (realRAM_Hz / 100000) % 10);
|
|
||||||
} else {
|
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
|
||||||
"%u%%[%u%%,%u%%]@%hu.%hhu",
|
|
||||||
PartLoadInt, ramCpuLoadInt, ramGpuLoadInt,
|
|
||||||
RAM_Hz / 1000000, (RAM_Hz / 100000) % 10);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (settings.realFrequencies && realRAM_Hz) {
|
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
|
||||||
"%u%%@%hu.%hhu", PartLoadInt,
|
|
||||||
realRAM_Hz / 1000000, (realRAM_Hz / 100000) % 10);
|
|
||||||
} else {
|
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
|
||||||
"%u%%@%hu.%hhu", PartLoadInt,
|
|
||||||
RAM_Hz / 1000000, (RAM_Hz / 100000) % 10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
const uint64_t RAM_Total_all = RAM_Total_application_u + RAM_Total_applet_u +
|
|
||||||
RAM_Total_system_u + RAM_Total_systemunsafe_u;
|
|
||||||
const uint64_t RAM_Used_all = RAM_Used_application_u + RAM_Used_applet_u +
|
|
||||||
RAM_Used_system_u + RAM_Used_systemunsafe_u;
|
|
||||||
PartLoadInt = (RAM_Total_all > 0) ? (unsigned)((RAM_Used_all * 100) / RAM_Total_all) : 0;
|
|
||||||
|
|
||||||
if (settings.realFrequencies && realRAM_Hz) {
|
if (settings.realFrequencies && realRAM_Hz) {
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
||||||
"%u%%@%hu.%hhu", PartLoadInt,
|
"%u%%[%u%%,%u%%]@%hu.%hhu",
|
||||||
realRAM_Hz / 1000000, (realRAM_Hz / 100000) % 10);
|
PartLoadInt, ramCpuLoadInt, ramGpuLoadInt,
|
||||||
|
realRAM_Hz / 1000000, (realRAM_Hz / 100000) % 10);
|
||||||
} else {
|
} else {
|
||||||
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
||||||
"%u%%@%hu.%hhu", PartLoadInt,
|
"%u%%[%u%%,%u%%]@%hu.%hhu",
|
||||||
RAM_Hz / 1000000, (RAM_Hz / 100000) % 10);
|
PartLoadInt, ramCpuLoadInt, ramGpuLoadInt,
|
||||||
|
RAM_Hz / 1000000, (RAM_Hz / 100000) % 10);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (settings.realFrequencies && realRAM_Hz) {
|
||||||
|
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
||||||
|
"%u%%@%hu.%hhu", PartLoadInt,
|
||||||
|
realRAM_Hz / 1000000, (realRAM_Hz / 100000) % 10);
|
||||||
|
} else {
|
||||||
|
snprintf(MINI_RAM_var_compressed_c, sizeof(MINI_RAM_var_compressed_c),
|
||||||
|
"%u%%@%hu.%hhu", PartLoadInt,
|
||||||
|
RAM_Hz / 1000000, (RAM_Hz / 100000) % 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
/*
|
/*
|
||||||
* --------------------------------------------------------------------------
|
* Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify it
|
||||||
|
* under the terms and conditions of the GNU General Public License,
|
||||||
|
* version 2, as published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
* more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------
|
||||||
* "THE BEER-WARE LICENSE" (Revision 42):
|
* "THE BEER-WARE LICENSE" (Revision 42):
|
||||||
* <p-sam@d3vs.net>, <natinusala@gmail.com>, <m4x@m4xw.net>
|
* <p-sam@d3vs.net>, <natinusala@gmail.com>, <m4x@m4xw.net>
|
||||||
* wrote this file. As long as you retain this notice you can do whatever you
|
* wrote this file. As long as you retain this notice you can do whatever you
|
||||||
@@ -8,11 +24,12 @@
|
|||||||
* --------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
#define NX_SERVICE_ASSUME_NON_DOMAIN
|
||||||
#include <sysclk/client/ipc.h>
|
|
||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdatomic.h>
|
#include <stdatomic.h>
|
||||||
|
#include <sysclk/client/ipc.h>
|
||||||
|
|
||||||
static Service g_sysclkSrv;
|
static Service g_sysclkSrv;
|
||||||
static atomic_size_t g_refCnt;
|
static atomic_size_t g_refCnt;
|
||||||
@@ -20,7 +37,7 @@ static atomic_size_t g_refCnt;
|
|||||||
bool sysclkIpcRunning()
|
bool sysclkIpcRunning()
|
||||||
{
|
{
|
||||||
Handle handle;
|
Handle handle;
|
||||||
const bool running = R_FAILED(smRegisterService(&handle, smEncodeName(SYSCLK_IPC_SERVICE_NAME), false, 1));
|
bool running = R_FAILED(smRegisterService(&handle, smEncodeName(SYSCLK_IPC_SERVICE_NAME), false, 1));
|
||||||
|
|
||||||
if (!running)
|
if (!running)
|
||||||
{
|
{
|
||||||
@@ -94,7 +111,10 @@ Result sysclkIpcSetOverride(SysClkModule module, u32 hz)
|
|||||||
|
|
||||||
Result sysclkIpcGetProfiles(u64 tid, SysClkTitleProfileList* out_profiles)
|
Result sysclkIpcGetProfiles(u64 tid, SysClkTitleProfileList* out_profiles)
|
||||||
{
|
{
|
||||||
return serviceDispatchInOut(&g_sysclkSrv, SysClkIpcCmd_GetProfiles, tid, *out_profiles);
|
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_GetProfiles, tid,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = {{out_profiles, sizeof(SysClkTitleProfileList)}},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles)
|
Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles)
|
||||||
@@ -107,12 +127,18 @@ Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles)
|
|||||||
|
|
||||||
Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
|
Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
|
||||||
{
|
{
|
||||||
return serviceDispatchOut(&g_sysclkSrv, SysClkIpcCmd_GetConfigValues, *out_configValues);
|
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetConfigValues,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
|
||||||
|
.buffers = {{out_configValues, sizeof(SysClkConfigValueList)}},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result sysclkIpcSetConfigValues(SysClkConfigValueList* configValues)
|
Result sysclkIpcSetConfigValues(SysClkConfigValueList* configValues)
|
||||||
{
|
{
|
||||||
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_SetConfigValues, *configValues);
|
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_SetConfigValues,
|
||||||
|
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_In },
|
||||||
|
.buffers = {{configValues, sizeof(SysClkConfigValueList)}},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result sysclkIpcGetFreqList(SysClkModule module, u32* list, u32 maxCount, u32* outCount)
|
Result sysclkIpcGetFreqList(SysClkModule module, u32* list, u32 maxCount, u32* outCount)
|
||||||
@@ -125,4 +151,33 @@ Result sysclkIpcGetFreqList(SysClkModule module, u32* list, u32 maxCount, u32* o
|
|||||||
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
|
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
|
||||||
.buffers = {{list, maxCount * sizeof(u32)}},
|
.buffers = {{list, maxCount * sizeof(u32)}},
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result sysclkIpcSetReverseNXRTMode(ReverseNXMode mode)
|
||||||
|
{
|
||||||
|
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_SetReverseNXRTMode, mode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Result hocClkIpcSetKipData()
|
||||||
|
{
|
||||||
|
u32 temp = 0;
|
||||||
|
return serviceDispatchIn(&g_sysclkSrv, HocClkIpcCmd_SetKipData, temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result hocClkIpcGetKipData()
|
||||||
|
{
|
||||||
|
u32 temp = 0;
|
||||||
|
return serviceDispatchIn(&g_sysclkSrv, HocClkIpcCmd_GetKipData, temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result hocClkIpcUpdateEmcRegs()
|
||||||
|
{
|
||||||
|
u32 temp = 0;
|
||||||
|
return serviceDispatchIn(&g_sysclkSrv, HocClkIpcCmd_UpdateEmcRegs, temp);
|
||||||
|
}
|
||||||
|
Result hocClkIpcCalculateGpuVmin()
|
||||||
|
{
|
||||||
|
u32 temp = 0;
|
||||||
|
return serviceDispatchIn(&g_sysclkSrv, HocClkIpcCmd_CalculateGpuVmin, temp);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user