kefir786"

This commit is contained in:
rashevskyv
2025-11-25 09:06:27 +02:00
parent 194c47639f
commit 1770cf1b34
45 changed files with 287 additions and 8 deletions
+210
View File
@@ -0,0 +1,210 @@
# sys-clk-OC
Switch sysmodule allowing you to set cpu/gpu clocks according to the running application and docked state.
## Clock table (MHz)
### CPU clocks
* 2397 → approx. OC max for Mariko
* 2295
* 2193
* 2091 → OC max for Erista
* 1963 → official and safe max for Mariko
* 1887
* 1785 → official boost mode, OC max for Erista
* 1683
* 1581
* 1428
* 1326
* 1224 → sdev oc
* 1122
* 1020 → official docked & handheld
* 918
* 816
* 714
* 612
### GPU clocks
* 1305 → OC max for Mariko
* 1267 → official max for Mariko
* 1228
* 1152
* 1075
* 998 → safe max for Mariko due to power draw
* 921 → OC max for Erista
* 844
* 768 → official docked
* 691
* 614
* 537
* 460 → max handheld
* 384 → official handheld
* 307 → official handheld
* 230
* 153
* 76 → boost mode
### MEM clocks
From Hekate Minerva module [sys_sdrammtc.c](https://github.com/CTCaer/hekate/blob/197ed8c319bd4132e4d7571ce037d4a27f806bba/modules/hekate_libsys_minerva/sys_sdrammtc.c#L67)
- ????
- 2131 → max for Erista and official max for Mariko
- 2099
- 2064
- 1996 → stable for Mariko
- 1932
- 1894
- 1862 → official max for Erista; Mariko without timing adjustment
- 1795
- 1728
- 1600 → official docked & official boost mode
- 1331 → official handheld
- 1065
- 800
- 665
## Capping
To protect the battery from excessive strain, clocks requested from config may be capped before applying, depending on your current profile:
### Erista (Safe)
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
| **MEM** | - | - | - | - |
| **CPU** | 1785 | 1785 | 1785 | 1785 |
| **GPU** | 460 | 768 | - | - |
### Erista (Unsafe allowed)
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
| **MEM** | - | - | - | - |
| **CPU** | 1785 | - | - | - |
| **GPU** | 460 | 768 | - | - |
### Mariko (Safe)
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
| **MEM** | - | - | - | - |
| **CPU** | 1963 | 1963 | 1963 | 1963 |
| **GPU** | 998 | 998 | 998 | 998 |
### Mariko (Unsafe allowed)
| | Handheld | Charging (USB) | Charging (Official) | Docked |
|:-------:|:--------:|:--------------:|:-------------------:|:------:|
| **MEM** | - | - | - | - |
| **CPU** | - | - | - | - |
| **GPU** | 998 | - | - | - |
## Installation
The following instructions assumes you have a Nintendo Switch running Atmosphère, updated to at least the latest stable version.
Copy the `atmosphere`, and `switch` folders at the root of your sdcard, overwriting files if prompted. Also copy the `config` folder if you're not updating, to include default settings.
**Note:** sys-clk-overlay requires to have [Tesla](https://gbatemp.net/threads/tesla-the-nintendo-switch-overlay-menu.557362/) installed and running
## Relevant files
* Config file allows one to set custom clocks per docked state and title id, described below
`/config/sys-clk/config.ini`
* Log file where the logs are written if enabled
`/config/sys-clk/log.txt`
* Log flag file enables log writing if file exists
`/config/sys-clk/log.flag`
* CSV file where the title id, profile, clocks and temperatures are written if enabled
`/config/sys-clk/context.csv`
* sys-clk overlay (accessible from anywhere by invoking the [Tesla menu](https://gbatemp.net/threads/tesla-the-nintendo-switch-overlay-menu.557362/))
`/switch/.overlays/sys-clk-overlay.ovl`
* sys-clk core sysmodule
`/atmosphere/contents/00FF0000636C6BFF/exefs.nsp`
`/atmosphere/contents/00FF0000636C6BFF/flags/boot2.flag`
## Config
Presets can be customized by adding them to the ini config file located at `/config/sys-clk/config.ini`, using the following template for each app
```
[Application Title ID]
docked_cpu=
docked_gpu=
docked_mem=
handheld_charging_cpu=
handheld_charging_gpu=
handheld_charging_mem=
handheld_charging_usb_cpu=
handheld_charging_usb_gpu=
handheld_charging_usb_mem=
handheld_charging_official_cpu=
handheld_charging_official_gpu=
handheld_charging_official_mem=
handheld_cpu=
handheld_gpu=
handheld_mem=
governor_config=
```
* Replace `Application Title ID` with the title id of the game/application you're interested in customizing.
A list of games title id can be found in the [Switchbrew wiki](https://switchbrew.org/wiki/Title_list/Games).
* Frequencies are expressed in mhz, and will be scaled to the nearest possible values, described in the clock table below.
* If any key is omitted, value is empty or set to 0, it will be ignored, and stock clocks will apply.
* If charging, sys-clk will look for the frequencies in that order, picking the first found
1. Charger specific config (USB or Official) `handheld_charging_usb_X` or `handheld_charging_official_X`
2. Non specific charging config `handheld_charging_X`
3. Handheld config `handheld_X`
### Example 1: Zelda BOTW
* Overclock CPU when docked or charging
Leads to a smoother framerate overall (ex: in the korok forest)
```
[01007EF00011E000]
docked_cpu=1224
handheld_charging_cpu=1224
handheld_mem=1600
```
### Example 2: Picross
* Underclocks on handheld to save battery
```
[0100BA0003EEA000]
handheld_cpu=816
handheld_gpu=153
```
### Advanced
The `[values]` section allows you to alter timings in sys-clk, you should not need to edit any of these unless you know what you are doing. Possible values are:
| Key | Desc | Default |
|:------------------------:|-------------------------------------------------------------------------------|:---------:|
|**allow_unsafe_freq** | Allow unsafe frequencies (CPU > 1963.5 MHz, GPU > 921.6 MHz) | OFF |
|**auto_cpu_boost** | Auto-boost CPU when system Core #3 utilization ≥ 95% | OFF |
|**sync_reversenx_mode** | Sync nominal profile (mode) with ReverseNX (-Tool and -RT) | ON |
|**charging_current** | Charging current limit (100 mA - 2000 mA) | 2000 mA |
|**charging_limit_perc** | Charging limit (20% - 100%) | 100%(OFF) |
|**governor_experimental** | CPU & GPU frequency governor (Experimental) | OFF |
|**temp_log_interval_ms** | Defines how often sys-clk log temperatures, in milliseconds (`0` to disable) | 0 ms |
|**csv_write_interval_ms** | Defines how often sys-clk writes to the CSV, in milliseconds (`0` to disable) | 0 ms |
|**poll_interval_ms** | Defines how fast sys-clk checks and applies profiles, in milliseconds | 500 ms |
@@ -0,0 +1,16 @@
[values]
; Defines how often sys-clk log temperatures, in milliseconds (set 0 to disable)
temp_log_interval_ms=0
; Defines how often sys-clk writes to the CSV, in milliseconds (set 0 to disable)
csv_write_interval_ms=0
; Example #1: BOTW
; Overclock CPU when docked
;[01007EF00011E000]
;docked_cpu=1224
; Example #2: Picross
; Underclock to save battery
;[0100BA0003EEA000]
;handheld_cpu=816
;handheld_gpu=153
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 KiB

After

Width:  |  Height:  |  Size: 695 KiB

Binary file not shown.
+19 -4
View File
@@ -5,6 +5,14 @@
Чому бажано відкатити емунанд? На 21.0.0 можуть працювати не всі моди та переклади для ігор, через зменшений розмір вільної пам'яті в системі
Також нагадую, що для коректної роботи програм та модулів на Atmosphere 1.10.0, що встановлена в цьому релізі, вони мають бути перезібрані з ісходників, або [пропатчені](https://hbpatcher.alula.me/). Без цього вони будуть падати. Якщо при запуску кефіра в вас щось крашиться, відкатіться на kefir783, якийй використовує попередню версію Atmosphere
**786**
* [**Оновлено**] [Sys-Patch Sysmodule 1.5.8 v5](https://github.com/impeeza/sys-patch/releases/tag/v1.5.8) — виправлена підтримка прошивки 21.0.0
* [**Оновлено**] [Uberhand-Overlay 2.3.2](https://github.com/efosamark/Uberhand-Overlay/releases/tag/2.3.2) — виправлене вимкнення консолі на останній атмосфері
* [**Оновлено**] [EdiZon-Overlay 1.0.13](https://github.com/proferabg/EdiZon-Overlay/releases/tag/v1.0.13) — виправлені баги
* [**Змінено**] [Розгін] — вимикається та видаляється при оновлені кефіру для забезпечення сумісності. Встановіть наново, якщо використовуєте
**785**
* [**Оновлено**] [hekate 6.4.1](https://github.com/CTCaer/hekate/tree/v6.4.1) — виправлені NOGC патчі для 21.0.0
* [**Оновлено**] [MissionControl 0.14.0](https://github.com/ndeadly/MissionControl/releases/tag/v0.14.0) — підтримка прошивки 21.0.0
@@ -24,13 +32,20 @@
____
#### **ENG**
**Partial support for 21.0.0x**
**Full support for 21.0.0**
This version can be used on a daily basis, however I would still recommend downgrading emuNAND (ONLY emuNAND) to 20.5.0 using this guide: https://youtu.be/38qxRRnLMGA
This version can be used on a daily basis; however, I would still recommend downgrading emuNAND (ONLY emuNAND) to 20.5.0 using this guide: https://youtu.be/38qxRRnLMGA
Why is it better to downgrade emuNAND? On 21.0.0 some mods and game translations may not work correctly due to reduced free system memory.
Why is it preferable to downgrade emuNAND? On firmware 21.0.0 some mods and game translations may not function due to reduced available system memory.
Also a reminder: for proper operation of apps and sysmodules on Atmosphere 1.10.0 included in this release, they must be rebuilt from source or [patched](https://hbpatcher.alula.me/). Otherwise, they will crash.
If something crashes when launching Kefir, downgrade to kefir783, which uses the previous version of Atmosphere.
**786**
* [**Updated**] [Sys-Patch Sysmodule 1.5.8 v5](https://github.com/impeeza/sys-patch/releases/tag/v1.5.8) — fixed support for firmware 21.0.0
* [**Updated**] [Uberhand-Overlay 2.3.2](https://github.com/efosamark/Uberhand-Overlay/releases/tag/2.3.2) — fixed console shutdown on the latest Atmosphere
* [**Updated**] [EdiZon-Overlay 1.0.13](https://github.com/proferabg/EdiZon-Overlay/releases/tag/v1.0.13) — bug fixes
* [**Changed**] [Overclocking] — disabled and removed during the Kefir update to ensure compatibility. Reinstall manually if you use it
**785**
* [**Updated**] [hekate 6.4.1](https://github.com/CTCaer/hekate/tree/v6.4.1) — fixed NOGC patches for 21.0.0
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

After

Width:  |  Height:  |  Size: 3.5 MiB

@@ -0,0 +1,16 @@
[values]
; Defines how often sys-clk log temperatures, in milliseconds (set 0 to disable)
temp_log_interval_ms=0
; Defines how often sys-clk writes to the CSV, in milliseconds (set 0 to disable)
csv_write_interval_ms=0
; Example #1: BOTW
; Overclock CPU when docked
;[01007EF00011E000]
;docked_cpu=1224
; Example #2: Picross
; Underclock to save battery
;[0100BA0003EEA000]
;handheld_cpu=816
;handheld_gpu=153
+5 -1
View File
@@ -65,6 +65,7 @@ if exist "%sd%:\bootloader\loader.kip" (set oc=1)
rem Set mission control status
@REM set missioncontrol=0
@REM set syscon=0
set oc=0
echo ------------------------------------------------------------------------
@@ -311,8 +312,11 @@ RD /s /q "%sd%:\oc"
if exist "%sd%:\hekate_ctcaer_*.bin" (del "%sd%:\hekate_ctcaer_*.bin")
if exist "Y:\Switch\\addons\themes" (xcopy "Y:\Switch\\addons\themes\*" "%sd%:\themes" /H /Y /C /R /S /E /I)
if exist "Y:\Switch\\addons\atmosphere" (xcopy "Y:\Switch\\addons\atmosphere\*" "%sd%:\atmosphere" /H /Y /C /R /S /E /I)
if exist "Y:\Switch\\addons\config" (xcopy "Y:\Switch\\addons\config\*" "%sd%:\config" /H /Y /C /R /S /E /I)
if exist "Y:\Switch\\addons\emuMMC" (xcopy "Y:\Switch\\addons\emuMMC\*" "%sd%:\emuMMC" /H /Y /C /R /S /E /I)
if exist "Y:\Switch\\addons\switch" (xcopy "Y:\Switch\\addons\switch\*" "%sd%:\switch" /H /Y /C /R /S /E /I)
if exist "Y:\Switch\\addons\themes" (xcopy "Y:\Switch\\addons\themes\*" "%sd%:\themes" /H /Y /C /R /S /E /I)
if exist "%sd%:\.git" (RD /s /q "%sd%:\.git")
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3 -1
View File
@@ -307,7 +307,9 @@ if (fsexists("sd:/emummc/emummc.ini_bkp")) {
movefile("sd:/emummc/emummc.ini_bkp", "sd:/emummc/emummc.ini")
}
if (fsexists("sd:/bootloader/loader.kip")) {
oc=0
if (oc) {
copydir("sd:/config/uberhand/packages/oc/atmosphere", "sd:/")
copydir("sd:/config/uberhand/packages/oc/bootloader", "sd:/")
copydir("sd:/config/uberhand/packages/oc/config", "sd:/")
+1 -1
View File
@@ -1 +1 @@
785
786
BIN
View File
Binary file not shown.
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
[values]
; Defines how often sys-clk log temperatures, in milliseconds (set 0 to disable)
temp_log_interval_ms=0
; Defines how often sys-clk writes to the CSV, in milliseconds (set 0 to disable)
csv_write_interval_ms=0
; Example #1: BOTW
; Overclock CPU when docked
;[01007EF00011E000]
;docked_cpu=1224
; Example #2: Picross
; Underclock to save battery
;[0100BA0003EEA000]
;handheld_cpu=816
;handheld_gpu=153
View File
Binary file not shown.
+1 -1
View File
@@ -1 +1 @@
785
786