I’ve seen tons of little desktop USB display gadgets that show all your system stats like temperatures and fan speeds.
But I’ve seen very few that show your in-game framerate. Turns out that’s because it’s more challenging - requires directly polling Rivatuner shared RAM. But the advantage is that we can poll it as fast as we want! And then after transmitting it over USB-to-serial at 115200 baud, we can display up-to-date in-game framerates with a graph almost as fast as RTSS’s built in OSD!
C# is used for the desktop app for maximum performance - it polls temps and fan speeds at 0.5hz and FPS at 10hz, this way there is 0 measurable CPU usage from the app or any of the apps it is polling (LibreHardwareMonitor for temps/fan speeds, Rivatuner for FPS).
PlatformIO is used for the ESP32C3 device for maximum compiling speed - I got tired of waiting 10 minutes for Arduino IDE to compile.