More actions
No edit summary |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
|description=sys-clk overclocking/underclocking system module. | |description=sys-clk overclocking/underclocking system module. | ||
|author=jope82 | |author=jope82 | ||
|lastupdated=2023/ | |lastupdated=2023/11/28 | ||
|type=Sysmodules | |type=Sysmodules | ||
|version= | |version=2.0.0a | ||
|license=Mixed | |license=Mixed | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/sysclkuncappedgpuandothernx.7z | |download=https://dlhb.gamebrew.org/switchhomebrews/sysclkuncappedgpuandothernx.7z | ||
Line 35: | Line 35: | ||
*<code>/config/sys-clk/config.ini</code> - Config file allows one to set custom clocks per docked state and title id, see below. | *<code>/config/sys-clk/config.ini</code> - Config file allows one to set custom clocks per docked state and title id, see below. | ||
*<code>/config/sys-clk/log.txt</code> - Log file where the logs are written if enabled. | *<code>/config/sys-clk/log.txt</code> - Log file where the logs are written if enabled. | ||
*<code>/config/sys-clk/log.flag</code> - Log flag file enables log writing if file exists | *<code>/config/sys-clk/log.flag</code> - Log flag file enables log writing if file exists. | ||
*<code>/config/sys-clk/context.csv</code> - CSV file where the title id, profile, clocks and temperatures are written if enabled. | *<code>/config/sys-clk/context.csv</code> - CSV file where the title id, profile, clocks and temperatures are written if enabled. | ||
*<code>/switch/sys-clk-manager.nro</code> - sys-clk manager app (accessible from the hbmenu). | *<code>/switch/sys-clk-manager.nro</code> - sys-clk manager app (accessible from the hbmenu). | ||
Line 129: | Line 129: | ||
! Key||Desc||Default | ! Key||Desc||Default | ||
|- | |- | ||
| temp_log_interval_ms||Defines how often sys-clk | |temp_log_interval_ms||Defines how often sys-clk logs temperatures, in milliseconds (0 to disable)||0 ms | ||
|- | |||
| freq_log_interval_ms||Defines how often sys-clk logs real freqs, in milliseconds (0 to disable)||0 ms | |||
|- | |||
| power_log_interval_ms||Defines how often sys-clk logs power usage, 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 | | csv_write_interval_ms||Defines how often sys-clk writes to the CSV, in milliseconds (0 to disable)||0 ms | ||
Line 210: | Line 214: | ||
==Changelog== | ==Changelog== | ||
'''v2.0.0_a 2023/11/28''' | |||
* Added support for HOS 17.0.0. | |||
* Boost mode overrides now always enabled | |||
* Very preliminary support for OC Suite loader.kips (only "Erista RAM Max Clock in kHz" and "Mariko RAM Max Clock in kHz" will work) | |||
'''v1.0.2_c 2022/02/25''' | '''v1.0.2_c 2022/02/25''' | ||
*Added support for HOS 16.0.0. | *Added support for HOS 16.0.0. |
Latest revision as of 04:01, 11 February 2024
sys-clk Uncapped GPU and other extras | |
---|---|
General | |
Author | jope82 |
Type | Sysmodules |
Version | 2.0.0a |
License | Mixed |
Last Updated | 2023/11/28 |
Links | |
Download | |
Website | |
Source | |
sys-clk is a Nintendo Switch sysmodule that allows you to set cpu/gpu/mem clocks according to the running application and docked state.
This is based on the original sys-clk ver 1.0.1 (+couple of fixes from develop branch) by RetroNX Team with added Yes/No toggles in sys-clk manager's Advanced Settings and now for the Tesla overlay also (under "Temporary overrides"):
- Uncapped GPU (use whatever GPU value you want, no connected charger needed).
- Fake Handheld Charging profile (fake charging mode although no charger connected in handheld).
- Let boost mode raise CPU to 1785 Mhz (let boost mode override sys-clk value during boost modes).
- Let boost mode lower GPU to 76 Mhz (let boost mode override sys-clk value during boost modes).
Note: Use at your own risk.
Installation
Requirements:
- A Nintendo Switch running Atmosphère, updated to at least the latest stable version.
- Tesla Menu and nx-ovlloader installed and confirm working.
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.
Relevant files
/config/sys-clk/config.ini
- Config file allows one to set custom clocks per docked state and title id, see below./config/sys-clk/log.txt
- Log file where the logs are written if enabled./config/sys-clk/log.flag
- Log flag file enables log writing if file exists./config/sys-clk/context.csv
- CSV file where the title id, profile, clocks and temperatures are written if enabled./switch/sys-clk-manager.nro
- sys-clk manager app (accessible from the hbmenu)./switch/.overlays/sys-clk-overlay.ovl
- sys-clk overlay (accessible from anywhere by invoking the Tesla menu)/atmosphere/contents/00FF0000636C6BFF/exefs.nsp
- sys-clk core sysmodule./atmosphere/contents/00FF0000636C6BFF/flags/boot2.flag
- sys-clk core sysmodule.
User guide
Custom configurations
Uncapped GPU (does not change profile)
- Use whatever GPU value you want, no connected charger needed.
- It doesn't change the profile, e.g without a charger you are still at profile 'Handheld'. If you need to change the profile without the requirement to connect a charger, use the setting 'Minimum profile'.
- Possible values:
Yes
orNo
.
Minimum profile (spoof profile)
- Chosen minimum profile will ensure that your device will stay at least at that minimum level.
- It's meant for people who have higher clocks in charging profiles and sometimes want to activate those profiles without a charger (e.g. choosing 'Official Charger' will ensure that your device's profile will remain at least at 'Official Charger' even if in reality your device is in handheld).
- Chosen minimum profile won't downgrade your real profile if the real profile is higher than the minimum profile (e.g. when docked choosing 'Charging' doesn't do anything (you are already at a higher profile)).
- Possible values:
Do not override
,Charging
,USB Charger
,Official Charger
orDocked
.
Set CPU to 1785 MHz during boost
- Let boost mode override sys-clk value set for CPU during boost mode with the default 1785 MHz.
- In most cases you want to enable this to get the best loading times. Don't enable if you want to use CPU clocks over 1785 MHz also during boost mode (you need to use a CPU patch to achieve this which most of people don't even have).
- Possible values:
Yes
orNo
.
Set GPU to 76 MHz during boost
- Let boost mode override sys-clk value set for GPU during boost mode with the default 76 MHz.
- In most cases you want to enable this to get the best out of your battery life.
- Possible values:
Yes
orNo
.
Override MEM to 1600 MHz
- Permanently override MEM to 1600 MHz (or higher MEM clock achieved with patching).
- An easy way to use max memory clocks without doing application specific profiles or using the new global default profile.
- Possible values:
Yes
orNo
.
Global default profile
- A global default profile for applications without an application specific profile.
- Can also be used as a permanent global override config if there are no application profiles at all.
- Only accessible via sys-clk manager, always the first item in the application profile list, always visible in the list.
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=
- 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. - 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
- Charger specific config (USB or Official)
handheld_charging_usb_X
orhandheld_charging_official_X
- Non specific charging config
handheld_charging_X
- Handheld config
handheld_X
- Charger specific config (USB or Official)
Example 1 Zelda BOTW
- Overclock CPU when docked or charging
- Overclock MEM to docked clocks when handheld
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 handheld_mem=800
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 |
---|---|---|
temp_log_interval_ms | Defines how often sys-clk logs temperatures, in milliseconds (0 to disable) | 0 ms |
freq_log_interval_ms | Defines how often sys-clk logs real freqs, in milliseconds (0 to disable) | 0 ms |
power_log_interval_ms | Defines how often sys-clk logs power usage, 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 | 300 ms |
Capping
To protect the battery from excessive strain, clocks requested from config may be capped before applying, depending on your current profile:
Handheld | Charging (USB) | Charging (Official) | Docked | |
---|---|---|---|---|
MEM | - | - | - | - |
CPU | - | - | - | - |
GPU | 460 | 768 | - | - |
Clock table (MHz)
MEM clocks:
- 1600 - official docked, boost mode, max clock
- 1331 - official handheld
- 1065
- 800
- 665
CPU clocks:
- 1785 - max clock, boost mode
- 1683
- 1581
- 1428
- 1326
- 1224 - sdev oc
- 1122
- 1020 - official docked & handheld
- 918
- 816
- 714
- 612
GPU clocks:
- 921 - max clock
- 844
- 768 - official docked
- 691
- 614
- 537
- 460 - max handheld
- 384 - official handheld
- 307 - official handheld
- 230
- 153
- 76 - boost mode
Notes:
- GPU overclock is capped at 460Mhz in handheld and capped at 768Mhz if charging, unless you're using the official charger.
- Clocks higher than 768MHz need the official charger is plugged in.
Screenshots
Changelog
v2.0.0_a 2023/11/28
- Added support for HOS 17.0.0.
- Boost mode overrides now always enabled
- Very preliminary support for OC Suite loader.kips (only "Erista RAM Max Clock in kHz" and "Mariko RAM Max Clock in kHz" will work)
v1.0.2_c 2022/02/25
- Added support for HOS 16.0.0.
- Note! Tesla-Menu (https://github.com/WerWolv/Tesla-Menu) needs to be updated also/
- Note2! Although the version number here is still 1.0.2 this release has the added features (aka HOS 16 support) from the 1.0.3 standard sys-clk.
v1.0.2_b 2022/07/26
- Added option to make a global default profile for applications without an application specific profile via sys-clk manager. Can also be used as a permanent global override config if there are no application profiles at all.
- Added option to override MEM permanently to 1600 MHz (an easy way to use max memory clocks without doing application specific profiles or using the new global default profile). Thanks @mc711 for the suggestion!
- Fixed reset to stock clocks bug present also in standard sys-clk (clocks didn't reset back to stock after choosing "Do not override" in an application profile).
- Release files don't enable logs by default anymore (just add log file /config/sys-clk/log.flag if logging is needed).
v1.0.2_a 2022/03/25
- HOS 14 support from upstream repo.
v1.0.1d 2021/10/20
- Fixed reset to stock clocks bug present also in standard sys-clk (global override didn't reset back to stock clocks after choosing "Do not override" if override was used in a game without a sys-clk profile).
- Added 510 Mhz CPU as an option (thanks @Anxietytimmy).
v1.0.1c 2021/09/02
- Ability to choose minimum profile instead of a hard coded Charging profile.
- Boost mode detection using PerformanceConfigurations instead of hard coded values.
- Renamed some labels.
v1.0.1b 2021/08/26
- Now with modded overlay also.
v1.0.1 2021/08/17
- Uncapped GPU and other extras.