misc: fix config bug

This commit is contained in:
souldbminersmwc
2026-03-17 20:30:33 -04:00
parent ad6847ec59
commit 59b62a835b
10 changed files with 159 additions and 15 deletions

View File

@@ -38,7 +38,7 @@ include $(DEVKITPRO)/libnx/switch_rules
# NACP building is skipped as well.
#---------------------------------------------------------------------------------
APP_TITLE := Horizon OC Monitor
APP_VERSION := 1.3.2+r4-hoc
APP_VERSION := 1.3.2+r4-hoc-r2
TARGET := $(notdir $(CURDIR))
BUILD := build
SOURCES := source

View File

@@ -79,14 +79,17 @@ Result sysclkIpcGetAPIVersion(u32* out_ver)
Result sysclkIpcGetVersionString(char* out, size_t len)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetVersionString,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out, len}},
);
}
Result sysclkIpcGetCurrentContext(SysClkContext* out_context)
{
return serviceDispatchOut(&g_sysclkSrv, SysClkIpcCmd_GetCurrentContext, *out_context);
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetCurrentContext,
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_context, sizeof(SysClkContext)}},
);
}
Result sysclkIpcGetProfileCount(u64 tid, u8* out_count)
@@ -112,7 +115,7 @@ Result sysclkIpcSetOverride(SysClkModule module, u32 hz)
Result sysclkIpcGetProfiles(u64 tid, SysClkTitleProfileList* out_profiles)
{
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_GetProfiles, tid,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_profiles, sizeof(SysClkTitleProfileList)}},
);
}
@@ -128,7 +131,7 @@ Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles)
Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetConfigValues,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_configValues, sizeof(SysClkConfigValueList)}},
);
}
@@ -136,7 +139,7 @@ Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
Result sysclkIpcSetConfigValues(SysClkConfigValueList* configValues)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_SetConfigValues,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_In },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_In },
.buffers = {{configValues, sizeof(SysClkConfigValueList)}},
);
}

View File

@@ -79,14 +79,17 @@ Result sysclkIpcGetAPIVersion(u32* out_ver)
Result sysclkIpcGetVersionString(char* out, size_t len)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetVersionString,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out, len}},
);
}
Result sysclkIpcGetCurrentContext(SysClkContext* out_context)
{
return serviceDispatchOut(&g_sysclkSrv, SysClkIpcCmd_GetCurrentContext, *out_context);
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetCurrentContext,
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_context, sizeof(SysClkContext)}},
);
}
Result sysclkIpcGetProfileCount(u64 tid, u8* out_count)
@@ -112,7 +115,7 @@ Result sysclkIpcSetOverride(SysClkModule module, u32 hz)
Result sysclkIpcGetProfiles(u64 tid, SysClkTitleProfileList* out_profiles)
{
return serviceDispatchIn(&g_sysclkSrv, SysClkIpcCmd_GetProfiles, tid,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_profiles, sizeof(SysClkTitleProfileList)}},
);
}
@@ -128,7 +131,7 @@ Result sysclkIpcSetProfiles(u64 tid, SysClkTitleProfileList* profiles)
Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_GetConfigValues,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_Out },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_Out },
.buffers = {{out_configValues, sizeof(SysClkConfigValueList)}},
);
}
@@ -136,7 +139,7 @@ Result sysclkIpcGetConfigValues(SysClkConfigValueList* out_configValues)
Result sysclkIpcSetConfigValues(SysClkConfigValueList* configValues)
{
return serviceDispatch(&g_sysclkSrv, SysClkIpcCmd_SetConfigValues,
.buffer_attrs = { SfBufferAttr_HipcMapAlias | SfBufferAttr_In },
.buffer_attrs = { SfBufferAttr_HipcAutoSelect | SfBufferAttr_In },
.buffers = {{configValues, sizeof(SysClkConfigValueList)}},
);
}

View File

@@ -39,7 +39,7 @@ include ${TOPDIR}/lib/libultrahand/ultrahand.mk
# version control constants
#---------------------------------------------------------------------------------
#TARGET_VERSION := $(shell git describe --dirty --always --tags)
APP_VERSION := 1.0.1
APP_VERSION := 1.0.2
TARGET_VERSION := $(APP_VERSION)
#---------------------------------------------------------------------------------

View File

@@ -119,9 +119,15 @@ Result IpcService::ServiceHandlerFunc(void* arg, const IpcServerRequest* r, u8*
break;
case SysClkIpcCmd_GetCurrentContext:
*out_dataSize = sizeof(SysClkContext);
return ipcSrv->GetCurrentContext((SysClkContext*)out_data);
if(r->data.size >= sizeof(std::uint64_t) && r->hipc.meta.num_recv_buffers >= 1)
{
size_t bufSize = hipcGetBufferSize(r->hipc.data.recv_buffers);
if(bufSize >= sizeof(SysClkContext))
{
return ipcSrv->GetCurrentContext((SysClkContext*)hipcGetBufferAddress(r->hipc.data.recv_buffers));
}
}
break;
case SysClkIpcCmd_Exit:
return ipcSrv->Exit();

Binary file not shown.

View File

@@ -0,0 +1,132 @@
{
"Horizon OC Zeus": "Horizon OC Zeus",
"Edit App Profile": "編輯應用配置",
"Advanced": "高級",
"Edit Global Profile": "編輯全局配置",
"Temporary Overrides": "臨時覆蓋",
"Temporary Overrides Reset": "臨時覆蓋 重設",
"Settings": "設置",
"Information": "資訊",
"Enable": "啟用",
"Uncapped Clocks": "解除頻率上限",
"Override Boost Mode": "覆蓋加速模式",
"CPU Max Display Clock": "CPU 最大顯示頻率",
"Thermal Throttle": "溫度節流",
"Thermal Throttle Threshold": "溫度節流閾值",
"Handheld TDP": "掌機模式 TDP",
"Handheld TDP Limit": "掌機模式 TDP 限制",
"Lite TDP Limit": "Lite TDP 限制",
"Enforce Board Limit": "強制主板限制",
"Battery Charge Current": "電池充電電流",
"Display Refresh Rate Changing": "顯示刷新率變更",
"Fix CPU Volt Bug": "修復 CPU 電壓錯誤",
"[cfg] no enum format string": "[cfg] 無枚舉格式字串",
"KIP": "KIP",
"Save KIP Settings": "保存 KIP 設置",
"RAM Settings": "記憶體設定",
"CPU Settings": "CPU 設置",
"GPU Settings": "GPU 設置",
"Experimental": "實驗性功能",
"Charge Current Override": "充電電流覆蓋",
"Disabled": "禁用",
"HP Mode": "高性能模式",
"EMC Max Clock": "EMC 最大頻率",
"EMC VDD2 Voltage": "EMC VDD2 電壓",
"EMC VDDQ Voltage": "EMC VDDQ 電壓",
"DVB Shift": "DVB 偏移",
"Memory Timings": "記憶體時序",
"Memory Latencies": "記憶體延遲",
"t1 tRCD": "t1 tRCD",
"t2 tRP": "t2 tRP",
"t3 tRAS": "t3 tRAS",
"t4 tRRD": "t4 tRRD",
"t5 tRFC": "t5 tRFC",
"t6 tRTW": "t6 tRTW",
"t7 tWTR": "t7 tWTR",
"t8 tREFI": "t8 tREFI",
"Update RAM Timings": "更新記憶體時序",
"\uE150 This feature is EXPERIMENTAL": "\uE150 此功能為實驗性功能",
"and should only be used for testing!": "僅應用於測試!",
"Read Latency": "讀取延遲",
"Write Latency": "寫入延遲",
"CPU UV": "CPU 降壓",
"CPU Unlock": "CPU 解鎖",
"CPU VMIN": "CPU 最低電壓",
"CPU Max Voltage": "CPU 最大電壓",
"CPU UV Table": "CPU 降壓表",
"CPU Low UV": "CPU 低頻降壓",
"CPU High UV": "CPU 高頻降壓",
"CPU Max Clock": "CPU 最大頻率",
"CPU Low VMIN": "CPU 低頻最低電壓",
"CPU High VMIN": "CPU 高頻最低電壓",
"GPU Undervolt Table": "GPU 降壓表",
"Calculate GPU Vmin": "計算 GPU 最低電壓",
"GPU VMIN": "GPU 最低電壓",
"GPU VMAX": "GPU 最大電壓",
"GPU Volt Offset": "GPU 電壓偏移",
"GPU Custom Table": "GPU 自訂表",
"GPU Custom Table (mV)": "GPU 自訂表 (mV)",
"\uE150 Setting GPU Clocks past": "\uE150 將 GPU 頻率設置超過",
"1075MHz without UV, 1152MHz on SLT or ": "無降壓時的 1075MHz、SLT 時的 1152MHz 或",
"1228MHz on HiOPT can cause ": "HiOPT 時的 1228MHz 可能會造成",
"permanent damage to your Switch!": "對您的 Switch 造成永久性損壞!",
"Proceed at your own risk!": "風險自負!",
"921MHz without UV and 960MHz on": "無降壓時的 921MHz 和",
"SLT or HiOPT can cause ": "SLT 或 HiOPT 時的 960MHz 可能會造成",
"Auto": "自動",
"Sleep Mode": "休眠模式",
"Stock": "默認",
"Dev OC": "開發超頻",
"Boost Mode": "加速模式",
"Safe Max": "安全最大值",
"Unsafe Max": "不安全最大值",
"Absolute Max": "絕對最大值",
"Boost Mode & Safe Max": "加速模式 & 安全最大值",
"Official Rating": "官方額定值",
"Default (Mariko)": "默認 (Mariko)",
"Default (Erista)": "默認 (Erista)",
"Rating": "額定值",
"Safe Max (Mariko)": "安全最大值 (Mariko)",
"Safe Max (Erista)": "安全最大值 (Erista)",
"Default": "默認",
"1581MHz Tbreak": "1581MHz Tbreak",
"1683MHz Tbreak": "1683MHz Tbreak",
"Extreme UV Table": "極限降壓表",
"No UV": "不降壓",
"SLT Table": "SLT 表",
"HiOPT Table": "HiOPT 表",
"Power": "功耗",
"Temp": "溫度",
"Voltage": "電壓",
"TDP Threshold": "TDP 閾值",
"Lite TDP Threshold": "Lite TDP 閾值",
"Thermal Throttle Limit": "溫度節流限制",
"1600BL": "1600BL",
"1866BL": "1866BL",
"2133BL": "2133BL",
"BAT": "電池",
"FAN": "風扇",
"DISP": "顯示",
"Board": "主板",
"Skin": "外殼",
"Now": "當前",
"Avg": "平均",
"App ID": "應用 ID",
"Profile": "配置",
"CPU": "CPU",
"GPU": "GPU",
"Memory": "記憶體",
"Display": "顯示",
"Governor": "調速器",
"SOC": "SOC",
"PCB": "PCB",
"PMIC": "PMIC",
"Docked": "底座模式",
"Handheld": "掌機模式",
"Charging": "充電中",
"USB Charger": "USB 充電器",
"PD Charger": "PD 充電器",
"VDD2": "VDD2",
"VDDQ": "VDDQ",
"GPU DVFS": "GPU DVFS"
}

Binary file not shown.

Binary file not shown.