Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Status Monitor Overlay Switch: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=Status Monitor Overlay
|title=Status Monitor Overlay
|image=statusmonitoroverlayswitch.png
|image=statusmonitoroverlaynx.png
|description=Monitor many stats of Nintendo Switch hardware
|description=Monitor many stats of Nintendo Switch hardware.
|author=masagrator
|author=masagrator
|lastupdated=2023/05/27
|lastupdated=2023/05/27
Line 8: Line 8:
|version=0.9.1
|version=0.9.1
|license=GPL-2.0
|license=GPL-2.0
|download=https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlayswitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlaynx.7z
|website=https://gbatemp.net/threads/status-monitor-overlay-tesla-overlay-to-monitor-your-hardware.558505/
|website=https://gbatemp.net/threads/status-monitor-overlay-tesla-overlay-to-monitor-your-hardware.558505/
|source=https://github.com/masagrator/Status-Monitor-Overlay
|source=https://github.com/masagrator/Status-Monitor-Overlay
|donation=https://ko-fi.com/masagrator
|donation=https://ko-fi.com/masagrator
}}
}}
{{#seo:
Monitor Your hardware in real time. This is an overlay homebrew dedicated to Nintendo Switch. You need to have installed Tesla environment to use it.
|title=Switch Homebrew Apps (Plugins) - GameBrew
|title_mode=append
|image=statusmonitoroverlayswitch.png
|image_alt=Status Monitor Overlay
}}
The Status Monitor Overlay is a homebrew application designed for the Nintendo Switch that enables you to monitor your hardware in real-time. To utilize this feature, it is necessary to have the Tesla environment installed.
 
With six different modes to choose from, each explained in detail, you can easily switch between them. If you wish to exit a particular mode, press and hold both the Left Stick and Right Stick buttons simultaneously. Pressing B will return you to the main menu.
 
Please note that if you encounter any issues when using the dock, it is recommended that you first start the Status Monitor and then place your Nintendo Switch in the dock for optimal performance.


==Features==
==Features==
* CPU Usage for each core (Cores #0-#2 are used by apps/games, Core #3 is used by OS, background processes and also Tesla overlays)
*CPU Usage for each core (Cores <code>#0</code>-<code>#2</code> are used by apps/games, Core <code>#3</code> is used by OS, background processes and also Tesla overlays).
* GPU Load
*GPU Load.
* CPU, GPU & RAM actual frequency
*CPU, GPU & RAM actual frequency.
* Used RAM categorized to: (not supported by FWs <5.0.0)
*Used RAM categorized to: (not supported by FWs <5.0.0).
** Total
**Total.
** Application
**Application.
** Applet
**Applet.
** System
**System.
** System Unsafe
**System Unsafe.
* SoC, PCB & Skin temperatures (Skin temperature not supported by FWs <5.0.0)
*SoC, PCB & Skin temperatures (Skin temperature not supported by FWs <5.0.0).
* Fan Rotation Level
*Fan Rotation Level.
* PFPS and FPS (with help of [https://github.com/masagrator/NX-FPS NX-FPS 0.4+], more info in repo. Not installing it results in not showing FPS counters on overlay)
*PFPS and FPS (with help of [[NX-FPS Switch|NX-FPS]] 0.4+, more info in repo. Not installing it results in not showing FPS counters on overlay).
* Battery temperature, raw charge, age, and average voltage
*Battery temperature, raw charge, age, average voltage, average current flow and average power flow.
* Charger type, max voltage, and max current
*Charger type, max voltage, and max current.
* DSP usage
*DSP usage.
* NVDEC clock rate
*NVDEC clock rate.
* Network type + Wi-fi password
*Network type + Wi-fi password.
 
==Requirements==
*From 0.4.1 you need Tesla Menu >=1.0.2.
 
==Modes==
Status Monitor Overlay from 0.8 release contains six modes to choose from Main Menu.
 
===Full===
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlayswitch-01.png
 
This mode you can know from older releases of Status Monitor. It contains all informations properly described and supported with high precision.
 
{| class="wikitable"
!width="33%"| Category
!width="33%"| Format
!width="33%"| Explanation
|-
| CPU Usage
| Frequency: %.1f<br />
Core #0: %.2f<br />
Core #1: %.2f<br />
Core #2: %.2f<br />
Core #3: %.2f
| Clockrate of all CPU cores in MHz<br />
Load of CPU Core #0 calculated from IdleTickCount to percent value<br />
Load of CPU Core #1 calculated from IdleTickCount to percent value<br />
Load of CPU Core #2 calculated from IdleTickCount to percent value<br />
Load of CPU Core #3 calculated from IdleTickCount to percent value
|-
| GPU Usage
| Frequency: %.1f<br />
Load: %.1f
| Clockrate of GPU in MHz<br />
GPU Load provided by PMU in percent
|-
| RAM Usage
| Frequency: %.1f<br />
%s: %.2f/%.2f
| Clockrate of EMC in MHz<br />
%s memory used/%s memory available in MB (not working with FW &lt;5.0.0)
|-
| Thermal
| SoC: %.2f (FW 14.0.0+: %2d)<br />
PCB: %.2f (FW 14.0.0+: %2d)<br />
Skin: %.2f<br />
Fan: %.2f
| SoC temperature in Celsius degrees<br />
PCB temperature in Celsius degrees<br />
Skin temperature in Celsius degrees'<br />
Fan rotation level in percent
|}
 
'Explanation provided at the end of file
 
<code>Optional (shows only when NX-FPS plugin is installed)</code>


{| class="wikitable"
==Installation==
! Category
Make sure you have [[NX-ovlloader Switch|nx-ovlloader]] and [[Tesla Menu Switch|Tesla Menu]] installed (from 0.4.1 you need Tesla Menu >=1.0.2).
! Format
! Explanation
|-
| PFPS
| %u
| Pushed Frames Per Second - how many frames were displayed in last second
|-
| FPS
| %.2f
| Frames Per Second - value calculated by averaging frametime
|}


Works only in 1 and 5 Hz + vsync signal. You can change that with ZR + R + D-Pad Up/Down
Place Status-Monitor-Overlay.ovl to /switch/.overlays/ folder.


===Mini===
Restart Switch, you can then access overlays by pressing all 3 buttons at once: L, D-Pad Down and Right Stick (aka pressing it).
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlayswitch-02.png


Contains most of supported informations with lower precision.
==User guide==
Tool contains six modes to choose, each one is explained [https://github.com/masagrator/Status-Monitor-Overlay/blob/master/docs/modes.md here].


{| class="wikitable"
You can exit from selected mode by pressing and holding Left Stick + Right Stick. To exit from main menu press B.
!width="33%"| Category
!width="33%"| Format
!width="33%"| Explanation
|-
| CPU
| [%.0f,%.0f,%.0f,%.0f]@%.1f
| Core #0 usage, Core #1 usage, Core #2 usage, Core #3 usage@CPU frequency
|-
| GPU
| %.1f@%.1f
| Load@GPU Frequency
|-
| RAM
| %.0f/%.0f@%.1f
| Total RAM used/Total RAM available@EMC frequency
|-
| TEMP
| %2.1f/%2.1f/%2.1f<br />
(FW 14.0.0+: %2d/%2d/%2.1f)
| SoC temperature/PCB temperature/Skin temperature'
|-
| FAN
| %2.2f
| Fan rotation level
|}


'Explanation provided at the end of file
If it's not working in dock, you need to first start Status Monitor, then put Nintendo Switch to dock.


<code>Optional (shows only when NX-FPS plugin is installed)</code>
===FAQ===
'''Q. This homebrew has any impact on games?'''


{| class="wikitable"
Negligible, you won't see any difference. Almost everything is done on Core <code>#3</code>, other cores usage is below 0.001%.
! Category
! Format
! Explanation
|-
| PFPS
| %u
| Pushed Frames Per Second
|-
| FPS
| %.2f
| Frames Per Second
|}


Works only in 1 or 5 Hz + vsync signal. You can change that with ZR + R + D-Pad Up/Down
'''Q. When opening Full or Mini mode, overlay is showing that Core #3 usage is at 100% while everything else is showing 0, eventually leading to crash. Why this happens?'''


===Micro ===
There are few possible explanations:
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlayswitch-03.png
* You're using nifm services connection test patches (in short <code>nifm ctest patches</code>) that are included in various packs. Those patches allow to connect to network that has no internet connection. But they cause nifm to randomly rampage when connected to network. Find any folder in <code>atmosphere/exefs_patches/</code> that has in folder name <code>nifm</code>, <code>nfim</code> and/or <code>ctest</code>, delete this folder and restart Switch. If you must use it, only solution is to use this overlay only in airplane mode.
* You're using some untested custom sysmodule that has no proper thread sleeping implemented. Find out in atmosphere/contents any sysmodule that you don't need, delete it and restart Switch.
* Your Switch is using sigpatches, is not a primary device, is using linked account, and is connected to network. Delete sigpatches, change your Switch to primary device, unlink account, or disable Wi-Fi.


Contains most of supported information with lower precision in one line.
==Screenshots==
'''Full'''<br>
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlaynx.png


It shows only if you didn't change filename of overlay file (So it should be &quot;Status-Monitor-Overlay.ovl&quot;). This is because we need to reload overlay to change framebuffer dimensions without taking more RAM, and Tesla Menu (and libtesla with it) doesn't provide info about filename of overlay that was loaded.
'''Mini'''<br>
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlaynx2.png


{| class="wikitable"
'''Micro'''<br>
!width="33%"| Category
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlaynx3.png
!width="33%"| Format
!width="33%"| Explanation
|-
| CPU
| [%.0f,%.0f,%.0f,%.0f]@%.1f
| Core #0 usage, Core #1 usage, Core #2 usage, Core #3 usage@CPU frequency
|-
| GPU
| %.1f@%.1f
| Load@GPU Frequency
|-
| RAM
| %.0f/%.0f@%.1f
| Total RAM used/Total RAM available@EMC frequency
|-
| TEMP
| %2.1f/%2.1f/%2.1f<br />
(FW 14.0.0+: %2d/%2d/%2.1f)
| SoC temperature/PCB temperature/Skin temperature'
|-
| FAN
| %2.2f
| Fan rotation level
|}


' Explenation provided at the end of file
'''FPS Counter'''<br>
 
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlaynx4.png
<code>Optional (shows only when NX-FPS plugin is installed)</code>
 
{| class="wikitable"
! Category
! Format
! Explanation
|-
| FPS
| %.1f
| Frames Per Second
|}
 
Works only in 1 or 5 Hz + vsync signal. You can change that with ZR + R + D-Pad Up/Down
 
===FPS Counter===
https://dlhb.gamebrew.org/switchhomebrews/statusmonitoroverlayswitch-04.png
 
It shows only FPS value in 31Hz + vsync signal.
 
If game is not launched, it will show always 254.0 value.
 
Mode available only with SaltyNX installed.
 
===Battery===
{| class="wikitable"
! Category
! Format
! Explanation
|-
| Battery Temperature
| %.2f
| Battery temperature in Celsius
|-
| Battery Raw Charge
| %.2f
| Raw battery charged capacity in percent
|-
| Battery Voltage (45s avg)
| %.2f
| Battery average voltage in mV
|-
| Charger Type
| %u
| Connected charger type, more in Battery.hpp &quot;BatteryChargeInfoFieldsChargerType&quot;
|}
 
Shows only if charger type is other than 0:
 
{| class="wikitable"
! Category
! Format
! Explanation
|-
| Charger Max Voltage
| %u
| Charger and external device voltage limit in mV
|-
| Charger Max Current
| %u
| Charger and external device current limit in mA
|}
 
===Miscellaneous===
{| class="wikitable"
! Category
! Format
! Explanation
|-
| DSP Usage
| %u
| In percent
|-
| NVDEC clock rate
| %.2f
| NVDEC frequency in MHz
|-
| Network Type
| %s
| It shows if Switch is connected to internet, and if it's using Ethernet or Wi-Fi
|}
 
If Network Type is &quot;Wi-Fi&quot;, you can press Y to show password. Since max password length is 64 characters, it may show in up to 3 lines.
 
===Additional Info===
<blockquote>What is Skin temperature (tskin)?</blockquote>
This is temperature calculated from SoC and PCB temperatures that is mainly used to prevent Switch from overheating. Reading it is not supported on FWs &lt;5.0.0.
 
Explanation provided by CTCaer
 
<blockquote>Temperature (tskin) calculation.
 
Console and Handheld:
 
tsoc &gt;= 84°C - Immediate sleep. No questions asked.
 
tpcb &gt;= 84°C - Immediate sleep. No questions asked.
 
Console only:
 
tskin &lt; 63°C - Clears both timers.
 
tskin &gt;= 63°C - Immediate sleep. No questions asked.
 
Handheld only:
 
tskin &lt; 58°C - Clears both timers.
 
58°C &lt;= tskin &lt; 61°C - Starts 60s timer and clears 10s timer.
 
61°C &lt;= tskin &lt; 63°C - Starts 10s timer.
 
tskin &gt;= 63°C - Immediate sleep. No questions asked.
 
The two timers are separate. If 61°C is reached, the 10s timer is immediatly started.
 
If a timer ends and the temperature is not dropped, goes into sleep.
 
tskin is the specific calculation below:
</blockquote>
 
<pre>soc_adj = (temps.iir_filter_gain_soc * (temps.soc - temps.soc_adj_prev)) + temps.soc_adj_prev;
pcb_adj = (temps.iir_filter_gain_pcb * (temps.pcb - temps.pcb_adj_prev)) + temps.pcb_adj_prev;
temps.soc_adj_prev = soc_adj;
temps.pcb_adj_prev = pcb_adj;
 
if (soc_adj &gt;= 38000)
{
    if (temps.handheld)
        soc_adj = (temps.tskin_soc_coeff_handheld[0] * soc_adj) + (1000 * temps.tskin_soc_coeff_handheld[1]);
    else
        soc_adj = (temps.tskin_soc_coeff_console[0] * soc_adj) + (1000 * temps.tskin_soc_coeff_console[1]);
    soc_adj = (soc_adj / 10000) + 500;
}
 
if (pcb_adj &gt;= 38000)
{
    if (temps.handheld)
        pcb_adj = (temps.tskin_pcb_coeff_handheld[0] * pcb_adj) + (1000 * temps.tskin_pcb_coeff_handheld[1]);
    else
        pcb_adj = (temps.tskin_pcb_coeff_console[0] * soc_adj) + (1000 * temps.tskin_pcb_coeff_console[1]);
    pcb_adj = (pcb_adj / 10000) + 500;
}
 
skin_adj = MAX(soc_adj, pcb_adj); //tskin</pre>


==Media==
==Media==
'''Resident Evil 5 (Nintendo Switch) - Status Monitor Overlay and NX-FPS - ([https://www.youtube.com/watch?v=9RqGEk4talI Marek])'''<br>
'''Resident Evil 5 (Nintendo Switch) - Status Monitor Overlay and NX-FPS ([https://www.youtube.com/watch?v=9RqGEk4talI Marek])'''<br>
<youtube>9RqGEk4talI</youtube>
<youtube>9RqGEk4talI</youtube>
==FAQ==
'''Q: This homebrew has any impact on games?'''<br>
A: Negligible, you won't see any difference. Almost everything is done on Core #3, other cores usage is below 0.001%.
==Troubleshooting==
'''Q: When opening Full or Mini mode, overlay is showing that Core #3 usage is at 100% while everything else is showing 0, eventually leading to crash. Why this happens?'''<br>
A: There are few possible explanations:
# You're using nifm services connection test patches (in short nifm ctest patches) that are included in various packs. Those patches allow to connect to network that has no internet connection. But they cause nifm to randomly rampage when connected to network. Find any folder in atmosphere/exefs_patches that has in folder name nifm, nfim and/or ctest, delete this folder and restart Switch. If you must use it, only solution is to use this overlay only in airplane mode.
# You're using some untested custom sysmodule that has no proper thread sleeping implemented. Find out in atmosphere/contents any sysmodule that you don't need, delete it and restart Switch.
# Your Switch is using sigpatches, is not a primary device, is using linked account, and is connected to network. Delete sigpatches, change your Switch to primary device, unlink account, or disable Wi-Fi.


==Changelog==
==Changelog==
'''v.0.9.1'''
'''v0.9.1 2023/05/27'''
* Now filepath for Micro mode is not hardcoded, it is retrieved via Tesla Menu.
* Now filepath for Micro mode is not hardcoded, it is retrieved via Tesla Menu.
* To use it with changed filename it is required to update Tesla Menu to version at least 1.2.3.
* To use it with changed filename it is required to update Tesla Menu to version at least 1.2.3.
* On older versions of Tesla Menu it behaves the same as 0.9.0 version.
* On older versions of Tesla Menu it behaves the same as 0.9.0 version.
'''v.0.9.0'''
'''v0.9.0 2023/04/23'''
* Corrected Battery Power Flow calculation
* Corrected Battery Power Flow calculation.
* Changed Battery Stats reading to 2 readings per second. Current, Voltage and Power Flow are calculated now via 10 last readings.
* Changed Battery Stats reading to 2 readings per second. Current, Voltage and Power Flow are calculated now via 10 last readings.
* Changed FPS average calculation to 10 last readings instead of constant averaging
* Changed FPS average calculation to 10 last readings instead of constant averaging.
* Added Graphs tab with currently only FPS available (Graphs tab won't show for now if you don't have SaltyNX installed)
* Added Graphs tab with currently only FPS available (Graphs tab won't show for now if you don't have SaltyNX installed).
* Moved Battery/Charger + Miscellaneous tabs under "Other" tab
* Moved Battery/Charger + Miscellaneous tabs under "Other" tab.
* You can move now FPS Counter + FPS Graph to the bottom and top of screen by pressing ZR + R + D-Pad Down/Up
* You can move now FPS Counter + FPS Graph to the bottom and top of screen by pressing ZR + R + D-Pad Down/Up.
* For FPS readings it is required to update NX-FPS to version 1.4.0+
* For FPS readings it is required to update NX-FPS to version 1.4.0+.
'''v.0.8.3'''
'''v0.8.3 2023/04/16'''
* Add Battery Power Flow stat into Full, Mini, Micro modes and Battery/Charger tab
* Add Battery Power Flow stat into Full, Mini, Micro modes and Battery/Charger tab.
* Add Battery Current Flow into Battery/Charger tab
* Add Battery Current Flow into Battery/Charger tab.
* Change Battery Voltage from 45s average to average of 5 to match better with Battery Current Flow and get faster responses to changes in voltage at the cost of slightly less accurate readings
* Change Battery Voltage from <code>45s average</code> to <code>average of 5</code> to match better with Battery Current Flow and get faster responses to changes in voltage at the cost of slightly less accurate readings.
* Fix a random issue with allocing memory for reading Wi-Fi password and battery stats
* Fix a random issue with allocing memory for reading Wi-Fi password and battery stats.
'''v.0.8.2'''
'''v0.8.2 2023/04/01'''
* Fix conditional handle leak
* Fix conditional handle leak.
* Fix memory leak
* Fix memory leak.
* Workaround race condition causing random crashes in docked mode
* Workaround race condition causing random crashes in docked mode.
'''v.0.8.1'''
'''v0.8.1 2023/03/03'''
* Move reading FPS from dmnt:cht to SharedMemory. This fixes any stutterings, thread desyncing and cracking sounds you may have encountered when using NX-FPS in games.
* Move reading FPS from dmnt:cht to SharedMemory. This fixes any stutterings, thread desyncing and cracking sounds you may have encountered when using NX-FPS in games.
* Requires NX-FPS 0.4+ and SaltyNX 0.5.0+ to read FPS.
* Requires NX-FPS 0.4+ and SaltyNX 0.5.0+ to read FPS.
'''v.0.8.0'''
'''v0.8.0 2023/02/27'''
* Add new mode - Micro.
* Add new mode - Micro.
* To access it YOU MUST NOT rename file, otherwise it will not show.
* To access it YOU MUST NOT rename file, otherwise it will not show. [https://github.com/masagrator/Status-Monitor-Overlay/blob/master/docs/modes.md#micro More].
* Edit: Fixed GPU Load in Micro mode.
* Edit: Fixed GPU Load in Micro mode.
'''v.0.7.1'''
'''v0.7.1 2023/02/23'''
*It adds support for 16.0.0.
*It adds support for 16.0.0.
'''v.0.7'''
'''v0.7 2022/11/06'''
* New 2 tabs were added:
* New 2 tabs were added:
** Battery/Charger
** Battery/Charger.
** Miscellaneous
** Miscellaneous.
* You can now check Battery temperature, max supported charger voltage and current, connected Wi-Fi password and few others.
* You can now check Battery temperature, max supported charger voltage and current, connected Wi-Fi password and few others.
'''v.0.6.4'''
'''v0.6.4 2022/03/25'''
* Added support for 14.0.0 FW.
* Added support for 14.0.0 FW.
** HOS removed function for reading SoC and PCB temperatures in milli Celsius. Status Monitor 0.6.3 was outputting 0.0C because of that. Now it reads temperature in Celsius without decimals on FW 14.0.0+.
** HOS removed function for reading SoC and PCB temperatures in milli Celsius. Status Monitor 0.6.3 was outputting 0.0C because of that. Now it reads temperature in Celsius without decimals on FW 14.0.0+.
* Fixed slow boot time by reimplementing fix from Breeze repository.
* Fixed slow boot time by reimplementing fix from Breeze repository.
'''v.0.6.3'''
'''v0.6.3 2020/08/25'''
*Fixed button combo.
*Fixed button combo.
'''v.0.6.2'''
'''v0.6.2 2020/08/24'''
* Adapted c7cefce commit from main libtesla to my fork. Thanks to that Status Monitor is now showed on screenshots by default and also in videos.
* Adapted c7cefce commit from main libtesla to my fork. Thanks to that Status Monitor is now showed on screenshots by default and also in videos.
'''v.0.6.1'''
'''v0.6.1 2020/06/05'''
* Fix issue related to always forcing opening cheat process with dmnt:cht that sometimes resulted in conflicts with other tools.
* Fix issue related to always forcing opening cheat process with dmnt:cht that sometimes resulted in conflicts with other tools.
* Now it's checking first if cheat process is opened already.
* Now it's checking first if cheat process is opened already.
'''v.0.6.0'''
'''v0.6.0 2020/05/19'''
* If dmnt:cht is not detected, it's using svc calls to read FPS values for NX-FPS (now only if SaltyNX check failed, FPS Counter won't show).
* If dmnt:cht is not detected, it's using svc calls to read FPS values for NX-FPS (now only if SaltyNX check failed, FPS Counter won't show).
* Be aware that not using Atmosphere's dmnt:cht may introduce conflicts with other cheat engines, resulting in crashes or hangs.
* Be aware that not using Atmosphere's dmnt:cht may introduce conflicts with other cheat engines, resulting in crashes or hangs.
'''v.0.5.5'''
'''v0.5.5 2020/05/19'''
* Now if dmnt:cht initializing didn't success or SaltyNX check failed, FPS Counter option won't show.
* Now if dmnt:cht initializing didn't success or SaltyNX check failed, FPS Counter option won't show.
* Fixed issue with SaltyNX check returning false positive.
* Fixed issue with SaltyNX check returning false positive.
'''v.0.5.4'''
'''v0.5.4 2020/05/16'''
*Fix issue with CPU Core usage stuck at last value when core usage is at peak.
*Fix issue with CPU Core usage stuck at last value when core usage is at peak.
'''v.0.5.3'''
'''v0.5.3 2020/05/12'''
* Updated to libnx 3.2.0, which helps with very rare case of crashing overlay if pl sessions are depleted.
* Updated to libnx 3.2.0, which helps with very rare case of crashing overlay if pl sessions are depleted.
* Fixed wrong version inside overlay.
* Fixed wrong version inside overlay.
'''v.0.5.2'''
'''v0.5.2 2020/04/24'''
* Added version info for Tesla menu.
* Added version info for Tesla menu.
* Added support for SX OS (FPS Counter is not available).
* Added support for SX OS (FPS Counter is not available).
'''v.0.5.1'''
'''v0.5.1 2020/03/14'''
*Fixed wrong parsing temperatures for PCB and SoC.
*Fixed wrong parsing temperatures for PCB and SoC.
'''v.0.5'''
'''v0.5 2020/03/08'''
* Main menu from which you can now choose 3 modes, all explained [https://github.com/masagrator/Status-Monitor-Overlay/blob/master/docs/modes.md here].
* Main menu from which you can now choose 3 modes, all explained [https://github.com/masagrator/Status-Monitor-Overlay/blob/master/docs/modes.md here].
* Auto-switching input detection, so home button trick is now obsolete.
* Auto-switching input detection, so home button trick is now obsolete.
'''v.0.4.2'''
'''v0.4.2 2020/03/04'''
*Repaired bug that was requiring in 0.4.1 only Right Stick to be pressed to exit.
*Repaired bug that was requiring in 0.4.1 only Right Stick to be pressed to exit.
'''v.0.4.1'''
'''v0.4.1 2020/03/03'''
*Ported to new libtesla. Now requires Tesla menu >=1.0.2 to work correctly.
*Ported to new libtesla. Now requires Tesla menu >=1.0.2 to work correctly.
'''v.0.4'''
'''v0.4 2020/02/29'''
*Added support for SaltyNX plugin - NX-FPS.
*Added support for SaltyNX plugin - NX-FPS.
'''v.0.3'''
'''v0.3 2020/02/27'''
*Added
*Added:
**Switching refresh rate between 1 and 5 FPS (More FPS results in higher Core #3 usage)
**Switching refresh rate between 1 and 5 FPS (More FPS results in higher Core #3 usage).
*GPU
*GPU:
**Load
**Load.
*Changes/fixes:
*Changes/fixes:
** Fixed critical bug that was shutting down Switch if FW was lower than 7.0.0 (thx to Behemoth for providing correct magic to IController)
** Fixed critical bug that was shutting down Switch if FW was lower than 7.0.0 (thx to Behemoth for providing correct magic to IController).
** Renamed 'Temperatures' to 'Thermal'
** Renamed 'Temperatures' to 'Thermal'.
** Renamed 'Fan Rotation' to 'Fan'
** Renamed 'Fan Rotation' to 'Fan'.
** Repositioned Thermal category
** Repositioned Thermal category.
** Added checks that prevents from using functions if services are not initialized. This helps with FWs <5.0.0 which doesn't support showing Memory used and Skin temperature.
** Added checks that prevents from using functions if services are not initialized. This helps with FWs <5.0.0 which doesn't support showing Memory used and Skin temperature.
** Buttons are now checked outside of FPS limitations, so detecting input and exiting is now smoother
** Buttons are now checked outside of FPS limitations, so detecting input and exiting is now smoother.
'''v.0.2'''
'''v0.2 2020/02/22'''
*Added
*Added:
** CPU:
** CPU:
*** Actual frequency
*** Actual frequency.
** GPU
** GPU:
*** Actual frequency
*** Actual frequency.
** RAM
** RAM:
*** Actual frequency
*** Actual frequency.
*** Used memory categorized to: Total, Application, Applet, System, System Unsafe
*** Used memory categorized to: Total, Application, Applet, System, System Unsafe.
** Temperatures
** Temperatures.
** SoC temperature
** SoC temperature.
** PCB temperature
** PCB temperature.
** Skin temperature
** Skin temperature.
** Fan rotation level
** Fan rotation level.
* Changes/fixes:
* Changes/fixes:
** Changed interval for everything to 1s
** Changed interval for everything to 1s.
** Changed refresh rate to 1 FPS, which reduced homebrew usage of Core #3 from 26 percent points to 1 percent point
** Changed refresh rate to 1 FPS, which reduced homebrew usage of Core #3 from 26 percent points to 1 percent point.
** Core Usage now always starts at 0%
** Core Usage now always starts at 0%.
'''v.0.11'''
'''v0.11 2020/02/20'''
* Code was changed to make each CPU core independent, so they will not block each other in case of heavy load.
* Code was changed to make each CPU core independent, so they will not block each other in case of heavy load.
* Changed exit button from holding Left Stick to pressing Left Stick + Right Stick.
* Changed exit button from holding Left Stick to pressing Left Stick + Right Stick.
'''v.0.1'''
'''v0.1 2020/02/20'''
* First Release.
* First Release.


==Thanks To==
==Credits==
* RetroNX channel for helping with coding stuff
Thanks To:
* SunTheCourier for sys-clk-Overlay from which I learned how to make my own Tesla homebrew
*RetroNX channel for helping with coding stuff.
* Herbaciarz for providing screenshots from HDMI Grabber
*SunTheCourier for sys-clk-Overlay from which I learned how to make my own Tesla homebrew.
*Herbaciarz for providing screenshots from HDMI Grabber.
*KazushiMe for writing code to read registers from max17050 chip.
*CTCaer for Hekate from which I took max17050.h and calculation formulas for reading battery stats from max17050 chip.


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/status-monitor-overlay-tesla-overlay-to-monitor-your-hardware.558505/
* GitHub - https://github.com/masagrator/Status-Monitor-Overlay
* Github - https://github.com/masagrator/Status-Monitor-Overlay
* GBAtemp - https://gbatemp.net/threads/status-monitor-overlay-tesla-overlay-to-monitor-your-hardware.558505/
* ForTheUsers - https://apps.fortheusers.org/switch/Status-Monitor-Overlay

Revision as of 01:46, 1 Haziran 2023

Status Monitor Overlay
Statusmonitoroverlaynx.png
General
Authormasagrator
TypePlugins
Version0.9.1
LicenseGPL-2.0
Last Updated2023/05/27
Links
Download
Website
Source
Support Author

Monitor Your hardware in real time. This is an overlay homebrew dedicated to Nintendo Switch. You need to have installed Tesla environment to use it.

Features

  • CPU Usage for each core (Cores #0-#2 are used by apps/games, Core #3 is used by OS, background processes and also Tesla overlays).
  • GPU Load.
  • CPU, GPU & RAM actual frequency.
  • Used RAM categorized to: (not supported by FWs <5.0.0).
    • Total.
    • Application.
    • Applet.
    • System.
    • System Unsafe.
  • SoC, PCB & Skin temperatures (Skin temperature not supported by FWs <5.0.0).
  • Fan Rotation Level.
  • PFPS and FPS (with help of NX-FPS 0.4+, more info in repo. Not installing it results in not showing FPS counters on overlay).
  • Battery temperature, raw charge, age, average voltage, average current flow and average power flow.
  • Charger type, max voltage, and max current.
  • DSP usage.
  • NVDEC clock rate.
  • Network type + Wi-fi password.

Installation

Make sure you have nx-ovlloader and Tesla Menu installed (from 0.4.1 you need Tesla Menu >=1.0.2).

Place Status-Monitor-Overlay.ovl to /switch/.overlays/ folder.

Restart Switch, you can then access overlays by pressing all 3 buttons at once: L, D-Pad Down and Right Stick (aka pressing it).

User guide

Tool contains six modes to choose, each one is explained here.

You can exit from selected mode by pressing and holding Left Stick + Right Stick. To exit from main menu press B.

If it's not working in dock, you need to first start Status Monitor, then put Nintendo Switch to dock.

FAQ

Q. This homebrew has any impact on games?

Negligible, you won't see any difference. Almost everything is done on Core #3, other cores usage is below 0.001%.

Q. When opening Full or Mini mode, overlay is showing that Core #3 usage is at 100% while everything else is showing 0, eventually leading to crash. Why this happens?

There are few possible explanations:

  • You're using nifm services connection test patches (in short nifm ctest patches) that are included in various packs. Those patches allow to connect to network that has no internet connection. But they cause nifm to randomly rampage when connected to network. Find any folder in atmosphere/exefs_patches/ that has in folder name nifm, nfim and/or ctest, delete this folder and restart Switch. If you must use it, only solution is to use this overlay only in airplane mode.
  • You're using some untested custom sysmodule that has no proper thread sleeping implemented. Find out in atmosphere/contents any sysmodule that you don't need, delete it and restart Switch.
  • Your Switch is using sigpatches, is not a primary device, is using linked account, and is connected to network. Delete sigpatches, change your Switch to primary device, unlink account, or disable Wi-Fi.

Screenshots

Full
statusmonitoroverlaynx.png

Mini
statusmonitoroverlaynx2.png

Micro
statusmonitoroverlaynx3.png

FPS Counter
statusmonitoroverlaynx4.png

Media

Resident Evil 5 (Nintendo Switch) - Status Monitor Overlay and NX-FPS (Marek)

Changelog

v0.9.1 2023/05/27

  • Now filepath for Micro mode is not hardcoded, it is retrieved via Tesla Menu.
  • To use it with changed filename it is required to update Tesla Menu to version at least 1.2.3.
  • On older versions of Tesla Menu it behaves the same as 0.9.0 version.

v0.9.0 2023/04/23

  • Corrected Battery Power Flow calculation.
  • Changed Battery Stats reading to 2 readings per second. Current, Voltage and Power Flow are calculated now via 10 last readings.
  • Changed FPS average calculation to 10 last readings instead of constant averaging.
  • Added Graphs tab with currently only FPS available (Graphs tab won't show for now if you don't have SaltyNX installed).
  • Moved Battery/Charger + Miscellaneous tabs under "Other" tab.
  • You can move now FPS Counter + FPS Graph to the bottom and top of screen by pressing ZR + R + D-Pad Down/Up.
  • For FPS readings it is required to update NX-FPS to version 1.4.0+.

v0.8.3 2023/04/16

  • Add Battery Power Flow stat into Full, Mini, Micro modes and Battery/Charger tab.
  • Add Battery Current Flow into Battery/Charger tab.
  • Change Battery Voltage from 45s average to average of 5 to match better with Battery Current Flow and get faster responses to changes in voltage at the cost of slightly less accurate readings.
  • Fix a random issue with allocing memory for reading Wi-Fi password and battery stats.

v0.8.2 2023/04/01

  • Fix conditional handle leak.
  • Fix memory leak.
  • Workaround race condition causing random crashes in docked mode.

v0.8.1 2023/03/03

  • Move reading FPS from dmnt:cht to SharedMemory. This fixes any stutterings, thread desyncing and cracking sounds you may have encountered when using NX-FPS in games.
  • Requires NX-FPS 0.4+ and SaltyNX 0.5.0+ to read FPS.

v0.8.0 2023/02/27

  • Add new mode - Micro.
  • To access it YOU MUST NOT rename file, otherwise it will not show. More.
  • Edit: Fixed GPU Load in Micro mode.

v0.7.1 2023/02/23

  • It adds support for 16.0.0.

v0.7 2022/11/06

  • New 2 tabs were added:
    • Battery/Charger.
    • Miscellaneous.
  • You can now check Battery temperature, max supported charger voltage and current, connected Wi-Fi password and few others.

v0.6.4 2022/03/25

  • Added support for 14.0.0 FW.
    • HOS removed function for reading SoC and PCB temperatures in milli Celsius. Status Monitor 0.6.3 was outputting 0.0C because of that. Now it reads temperature in Celsius without decimals on FW 14.0.0+.
  • Fixed slow boot time by reimplementing fix from Breeze repository.

v0.6.3 2020/08/25

  • Fixed button combo.

v0.6.2 2020/08/24

  • Adapted c7cefce commit from main libtesla to my fork. Thanks to that Status Monitor is now showed on screenshots by default and also in videos.

v0.6.1 2020/06/05

  • Fix issue related to always forcing opening cheat process with dmnt:cht that sometimes resulted in conflicts with other tools.
  • Now it's checking first if cheat process is opened already.

v0.6.0 2020/05/19

  • If dmnt:cht is not detected, it's using svc calls to read FPS values for NX-FPS (now only if SaltyNX check failed, FPS Counter won't show).
  • Be aware that not using Atmosphere's dmnt:cht may introduce conflicts with other cheat engines, resulting in crashes or hangs.

v0.5.5 2020/05/19

  • Now if dmnt:cht initializing didn't success or SaltyNX check failed, FPS Counter option won't show.
  • Fixed issue with SaltyNX check returning false positive.

v0.5.4 2020/05/16

  • Fix issue with CPU Core usage stuck at last value when core usage is at peak.

v0.5.3 2020/05/12

  • Updated to libnx 3.2.0, which helps with very rare case of crashing overlay if pl sessions are depleted.
  • Fixed wrong version inside overlay.

v0.5.2 2020/04/24

  • Added version info for Tesla menu.
  • Added support for SX OS (FPS Counter is not available).

v0.5.1 2020/03/14

  • Fixed wrong parsing temperatures for PCB and SoC.

v0.5 2020/03/08

  • Main menu from which you can now choose 3 modes, all explained here.
  • Auto-switching input detection, so home button trick is now obsolete.

v0.4.2 2020/03/04

  • Repaired bug that was requiring in 0.4.1 only Right Stick to be pressed to exit.

v0.4.1 2020/03/03

  • Ported to new libtesla. Now requires Tesla menu >=1.0.2 to work correctly.

v0.4 2020/02/29

  • Added support for SaltyNX plugin - NX-FPS.

v0.3 2020/02/27

  • Added:
    • Switching refresh rate between 1 and 5 FPS (More FPS results in higher Core #3 usage).
  • GPU:
    • Load.
  • Changes/fixes:
    • Fixed critical bug that was shutting down Switch if FW was lower than 7.0.0 (thx to Behemoth for providing correct magic to IController).
    • Renamed 'Temperatures' to 'Thermal'.
    • Renamed 'Fan Rotation' to 'Fan'.
    • Repositioned Thermal category.
    • Added checks that prevents from using functions if services are not initialized. This helps with FWs <5.0.0 which doesn't support showing Memory used and Skin temperature.
    • Buttons are now checked outside of FPS limitations, so detecting input and exiting is now smoother.

v0.2 2020/02/22

  • Added:
    • CPU:
      • Actual frequency.
    • GPU:
      • Actual frequency.
    • RAM:
      • Actual frequency.
      • Used memory categorized to: Total, Application, Applet, System, System Unsafe.
    • Temperatures.
    • SoC temperature.
    • PCB temperature.
    • Skin temperature.
    • Fan rotation level.
  • Changes/fixes:
    • Changed interval for everything to 1s.
    • Changed refresh rate to 1 FPS, which reduced homebrew usage of Core #3 from 26 percent points to 1 percent point.
    • Core Usage now always starts at 0%.

v0.11 2020/02/20

  • Code was changed to make each CPU core independent, so they will not block each other in case of heavy load.
  • Changed exit button from holding Left Stick to pressing Left Stick + Right Stick.

v0.1 2020/02/20

  • First Release.

Credits

Thanks To:

  • RetroNX channel for helping with coding stuff.
  • SunTheCourier for sys-clk-Overlay from which I learned how to make my own Tesla homebrew.
  • Herbaciarz for providing screenshots from HDMI Grabber.
  • KazushiMe for writing code to read registers from max17050 chip.
  • CTCaer for Hekate from which I took max17050.h and calculation formulas for reading battery stats from max17050 chip.

External links

Advertising: