diff --git a/Source/Horizon-OC-Monitor/source/main.cpp b/Source/Horizon-OC-Monitor/source/main.cpp
index bc38ebe0..7ab37cfb 100644
--- a/Source/Horizon-OC-Monitor/source/main.cpp
+++ b/Source/Horizon-OC-Monitor/source/main.cpp
@@ -458,7 +458,7 @@ public:
}
}
splExit();
-
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
}
@@ -532,6 +532,7 @@ public:
}
}
splExit();
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
}
@@ -609,6 +610,7 @@ public:
}
}
splExit();
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
@@ -689,6 +691,7 @@ public:
}
}
splExit();
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
}
@@ -762,6 +765,7 @@ public:
}
}
splExit();
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
}
@@ -835,6 +839,7 @@ public:
}
}
splExit();
+ sysclkIpcInitialize();
});
Hinted = envIsSyscallHinted(0x6F);
}
diff --git a/Source/sys-clk/bitmap.py b/Source/sys-clk/bitmap.py
new file mode 100644
index 00000000..2b0cdf87
--- /dev/null
+++ b/Source/sys-clk/bitmap.py
@@ -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: .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()
diff --git a/Source/sys-clk/overlay/Makefile b/Source/sys-clk/overlay/Makefile
index 4d876401..bd4302e0 100644
--- a/Source/sys-clk/overlay/Makefile
+++ b/Source/sys-clk/overlay/Makefile
@@ -39,7 +39,7 @@ include ${TOPDIR}/lib/libultrahand/ultrahand.mk
# version control constants
#---------------------------------------------------------------------------------
#TARGET_VERSION := $(shell git describe --dirty --always --tags)
-APP_VERSION := 0.33
+APP_VERSION := 0.34
TARGET_VERSION := $(APP_VERSION)
#---------------------------------------------------------------------------------
diff --git a/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp
index 333649ca..3156e82b 100644
--- a/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp
+++ b/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp
@@ -29,6 +29,7 @@
#include "../format.h"
#include "fatal_gui.h"
+#include "labels.h"
AppProfileGui::AppProfileGui(std::uint64_t applicationId, SysClkTitleProfileList* profileList)
{
this->applicationId = applicationId;
@@ -50,7 +51,13 @@ void AppProfileGui::openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfil
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
return;
}
+ std::map 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(this->profileList->mhzMap[profile][module] * 1000000, hzList, hzCount, module, [this, listItem, profile, module](std::uint32_t hz) {
this->profileList->mhzMap[profile][module] = hz / 1000000;
listItem->setValue(formatListFreqMHz(this->profileList->mhzMap[profile][module]));
@@ -62,7 +69,7 @@ void AppProfileGui::openFreqChoiceGui(tsl::elm::ListItem* listItem, SysClkProfil
}
return true;
- }, true
+ }, true, labels
);
}
@@ -282,7 +289,7 @@ void AppProfileGui::addProfileUI(SysClkProfile profile)
ValueThresholds lcdThresholds(60, 65);
if(!IsHoag() && configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) {
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
this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 5, " Hz", 1, 0);
}
diff --git a/Source/sys-clk/overlay/src/ui/gui/cat.h b/Source/sys-clk/overlay/src/ui/gui/cat.h
index a8bb88c8..a4c56ff4 100644
--- a/Source/sys-clk/overlay/src/ui/gui/cat.h
+++ b/Source/sys-clk/overlay/src/ui/gui/cat.h
@@ -14,7 +14,7 @@
* along with this program. If not, see .
*
*/
-
+// this is a generated file, do not edit manually.
// cat.png - 96x128
static const unsigned int CAT_WIDTH = 96;
static const unsigned int CAT_HEIGHT = 128;
diff --git a/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp
index d2527ebf..cb27f3fb 100644
--- a/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp
+++ b/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp
@@ -19,7 +19,7 @@
#include "fatal_gui.h"
#include "global_override_gui.h"
#include "value_choice_gui.h"
-
+#include "labels.h"
GlobalOverrideGui::GlobalOverrideGui()
{
for (std::uint16_t m = 0; m < SysClkModule_EnumMax; m++) {
@@ -38,6 +38,14 @@ void GlobalOverrideGui::openFreqChoiceGui(SysClkModule module)
FatalGui::openWithResultCode("sysclkIpcGetFreqList", rc);
return;
}
+
+ std::map 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(
this->context->overrideFreqs[module], hzList, hzCount, module,
[this, module](std::uint32_t hz) {
@@ -52,7 +60,8 @@ void GlobalOverrideGui::openFreqChoiceGui(SysClkModule module)
return true;
},
- true);
+ true, labels
+ );
}
void GlobalOverrideGui::openValueChoiceGui(
@@ -283,7 +292,7 @@ void GlobalOverrideGui::listUI()
#if IS_MINIMAL == 0
ValueThresholds lcdThresholds(60, 65);
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
this->addModuleToggleItem(HorizonOCModule_Governor);
}
diff --git a/Source/sys-clk/overlay/src/ui/gui/labels.cpp b/Source/sys-clk/overlay/src/ui/gui/labels.cpp
new file mode 100644
index 00000000..c7ab6635
--- /dev/null
+++ b/Source/sys-clk/overlay/src/ui/gui/labels.cpp
@@ -0,0 +1,46 @@
+#include