From dc34495858141250bef22d391b74e95539469613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 11:40:38 +0100 Subject: [PATCH 1/6] Workflow: Bump to 0.7 --- RELEASE.md | 53 ++--------------------------------------------------- VERSION | 2 +- 2 files changed, 3 insertions(+), 52 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 339b7ab..18fc459 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -6,6 +6,8 @@ ## #{GIT_TAG_NAME} +## 0.6.22 + - SteamController: Fix broken scroll on left pad introduced by 0.6.21 ## 0.6.21 @@ -17,54 +19,3 @@ ## 0.6.20 - PerformanceOverlay/PowerControl: Add support for `AMD Radeon RX 670 Graphics` - -## 0.6.19 - -- FanControl: Support `0xB030/0xA` device -- SteamController: `DS4` backpanel and haptic settings are part of Release build -- Updater: Remove `InstallationTime` - -## 0.6.18 - -- PowerControl: Add `3 dots + L1 + R1` to reset current resolution - -## 0.6.17 - -- SteamController/PowerControl: Create Logs in Documents/SteamDeckTools/Logs -- SteamController: Improve **Steam Input** support for **Steam Version 1684535786** WARNING: only English is supported! -- SteamController: Allow to configure DS4 back buttons -- SteamController: Allow to `EnableDS4Support=false` to hide DS4 controller - -## 0.6.16 - -- All: Support [unofficial APU drivers](https://sourceforge.net/projects/amernimezone/files/Release%20Polaris-Vega-Navi/AMD%20SOC%20Driver%20Variant/) that present themselves as `AMD Radeon 670M` -- PowerControl: Show Game Profiles menu item - -## 0.6.15 - -- PowerControl: Support SMU of Vangogh GPU shipped with BIOS 115 -- SteamController: Add `DS4` support (with Gyro, Accel, Trackpads and Haptics) -- SteamController: Move `KeepX360AlwaysConnected` to `Settings` -- PowerControl: Install custom resolutions (EDID) (experimental feature) -- All: Show `Missing RTSS` button to install RTSS -- PowerControl: Retain FPS Limit (proportion) on refresh rate change -- PowerControl: Support RTSS in custom folder -- SteamController: Fix Steam Big Picture detection for non-english -- PowerControl: Allow user to configure selectable TDP, CPU and GPU from `PowerControl.dll.ini` -- SteamController: Promote RTSS detection to Release - enable by default -- SteamController: Improve detection of Steam processes (especially latest controller UI changes) -- SteamController: Add configuration wizard for the first time or when configuration was lost -- PowerControl: Show current time -- PowerControl: Consider the foreground process to be holding profile configuration as long as it is running -- SteamController: Require administrator privileges -- PowerControl: Apply profile changes with a delay in bulk -- SteamController: Fix detection of the Steam client released around 2023-01-20, version: 1674182294 -- All: Improve Anti-Cheat protection to allow to dismiss it -- SteamController: Fix `STEAM+DPadUp` not working -- PowerControl/SteamController: Improve RTSS detection to ignore processes not generating frames for over 5s -- PowerControl: Expose all in `GameProfiles`, and fix `GPU Scaling`, `Refresh Rate` and `FPS Limit` interwork -- PowerControl: Add `GameProfiles` allowing to persist per-game setttings for most of settings (Colors, Refresh Rate, FPS limit, etc.) [Thank you @maniman303 for https://github.com/ayufan/steam-deck-tools/pull/38] -- SteamController: Add experimental `ControllerProfiles` to allow creating user controllers -- SteamController: Add experimental RTSS-based detection (disables the need to use Steam, or Playnite workflow) -- SteamController: Hold Press Left and Right Pad to toggle touchpads in X360 mode -- PowerControl: Make all PowerControl options to accept Strings diff --git a/VERSION b/VERSION index 5a2a580..eb49d7c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6 +0.7 From c03dcadfc1b73faf45ab2bda4cd241a64e118441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 12:12:52 +0100 Subject: [PATCH 2/6] Vlv0100: Support for SteamDeck OLED --- CommonHelpers/Vlv0100.cs | 47 ++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/CommonHelpers/Vlv0100.cs b/CommonHelpers/Vlv0100.cs index 6a11b0f..9196005 100644 --- a/CommonHelpers/Vlv0100.cs +++ b/CommonHelpers/Vlv0100.cs @@ -19,17 +19,33 @@ public class Vlv0100 public const ushort MAX_FAN_RPM = 0x1C84; - public static readonly ushort[] SupportedFirmwares = { - 0xB030 // 45104 - }; + public struct DeviceVersion + { + public ushort Firmware { get; set; } + public byte BoardID { get; set; } + public byte PDCS { get; set; } + + public bool BatteryTempLE { get; set; } - public static readonly byte[] SupportedBoardID = { - 6, - 0xA + public bool IsSupported(ushort deviceFirmware, byte deviceBoardID, byte devicePDCS) + { + if (Firmware != 0 && Firmware != deviceFirmware) + return false; + if (BoardID != 0 && BoardID != deviceBoardID) + return false; + if (PDCS != 0 && PDCS != devicePDCS) + return false; + return true; + } }; - public static readonly byte[] SupportedPDCS = { - 0x2B // 43 + private static readonly DeviceVersion[] deviceVersions = { + // Steam Deck - LCD version + new DeviceVersion() { Firmware = 0xB030, BoardID = 0x6, PDCS = 0 /* 0x2B */, BatteryTempLE = false }, + new DeviceVersion() { Firmware = 0xB030, BoardID = 0xA, PDCS = 0 /* 0x2B */, BatteryTempLE = false }, + + // Steam Deck - OLED version + new DeviceVersion() { Firmware = 0x1030, BoardID = 0x5, PDCS = 0 /* 0x2F */, BatteryTempLE = true }, }; private static InpOut? inpOut; @@ -39,13 +55,14 @@ public static bool IsOpen get { return inpOut is not null; } } + public static DeviceVersion? SupportedDevice + { + get { return deviceVersions.First((v) => v.IsSupported(FirmwareVersion, BoardID, PDCS)); } + } + public static bool IsSupported { - get - { - return SupportedFirmwares.Contains(FirmwareVersion) && - SupportedBoardID.Contains(BoardID); - } + get { return SupportedDevice is not null; } } public static ushort FirmwareVersion { get; private set; } @@ -142,7 +159,9 @@ public static float GetBattTemperature() var data = inpOut?.ReadMemory(BATH_BATL, 2); if (data is null) return 0; - int value = (data[0] << 8) + data[1]; + int value = SupportedDevice?.BatteryTempLE == true ? + ((data[1] << 8) + data[0]) : + ((data[0] << 8) + data[1]); return (float)(value - 0x0AAC) / 10.0f; } From dd9650d2f4310914104708cb5de16d44a4c74192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 12:41:07 +0100 Subject: [PATCH 3/6] CommonHelpers: Store logs in `.log` files --- CommonHelpers/Log.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CommonHelpers/Log.cs b/CommonHelpers/Log.cs index dfa05b0..e84e941 100644 --- a/CommonHelpers/Log.cs +++ b/CommonHelpers/Log.cs @@ -112,7 +112,7 @@ private static void WriteToLogFile(String line) if (LogFileFolder is null) return; - String logFile = Path.Combine(LogFileFolder, String.Format("{0}_{1}.json", + String logFile = Path.Combine(LogFileFolder, String.Format("{0}_{1}.log", Instance.ApplicationName, DateTime.UtcNow.ToString("yyyy-MM-dd"))); for (int i = 0; i < 3; i++) From 5be2cceae4a42583f5ba184c0b991bcf2738741d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 12:41:32 +0100 Subject: [PATCH 4/6] PerformanceOverlay: Support SD OLED Sensors --- PerformanceOverlay/Sensors.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PerformanceOverlay/Sensors.cs b/PerformanceOverlay/Sensors.cs index 6996283..1f4ffc3 100644 --- a/PerformanceOverlay/Sensors.cs +++ b/PerformanceOverlay/Sensors.cs @@ -235,7 +235,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_%", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.Load, SensorName = "D3D 3D", Format = "F0" @@ -245,7 +245,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_MB", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.SmallData, SensorName = "D3D Dedicated Memory Used", Format = "F0" @@ -255,7 +255,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_GB", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.SmallData, SensorName = "D3D Dedicated Memory Used", Format = "F0", @@ -266,7 +266,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_W", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.Power, SensorName = "GPU SoC", Format = "F1" @@ -276,7 +276,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_MHZ", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.Clock, SensorName = "GPU Core", Format = "F0" @@ -286,7 +286,7 @@ private IEnumerable GetNumericValues(Sensors sensors) "GPU_T", new HardwareSensor() { HardwareType = HardwareType.GpuAmd, - HardwareNames = { "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, + HardwareNames = { "AMD Custom GPU 0932", "AMD Custom GPU 0405", "AMD Radeon 670M", "AMD Radeon RX 670 Graphics" }, SensorType = SensorType.Temperature, SensorName = "GPU Temperature", Format = "F1", From 3af321e4eabef70c75891c5ed16f736a9d13de8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 12:51:35 +0100 Subject: [PATCH 5/6] PowerControl: Control CPU/GPU/TDP for SteamDeck OLED --- PowerControl/Helpers/AMD/VangoghGPU.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PowerControl/Helpers/AMD/VangoghGPU.cs b/PowerControl/Helpers/AMD/VangoghGPU.cs index cbe402b..f983702 100644 --- a/PowerControl/Helpers/AMD/VangoghGPU.cs +++ b/PowerControl/Helpers/AMD/VangoghGPU.cs @@ -9,14 +9,16 @@ internal class VangoghGPU : IDisposable { public static readonly Device[] SupportedDevices = { - // SteamDeck + // SteamDeck LCD new Device("AMD Custom GPU 0405", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }), + // SteamDeck OLED + new Device("AMD Custom GPU 0932", 0x80600000, 0x8067ffff, new uint[] { 0x063F0E00 }), + // SteamDeck unofficial APU drivers // https://sourceforge.net/projects/amernimezone/files/Release%20Polaris-Vega-Navi/AMD%20SOC%20Driver%20Variant/ new Device("AMD Radeon 670M", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }), new Device("AMD Radeon RX 670 Graphics", 0x80300000, 0x8037ffff, new uint[] { 0x43F3900, 0x43F3C05, 0x43F3E00 }), - }; private static Device? DetectedDevice; From db950687f28a411abf143f61a16408bd982bc8b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sat, 2 Dec 2023 12:54:11 +0100 Subject: [PATCH 6/6] Workflow: Update RELEASE.md --- RELEASE.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/RELEASE.md b/RELEASE.md index 18fc459..404a288 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,8 +4,17 @@ [**READ IF PLAYING ONLINE GAMES AND/OR GAMES THAT HAVE ANTI-CHEAT ENABLED**](https://steam-deck-tools.ayufan.dev/#anti-cheat-and-antivirus-software) +## SteamDeck OLED support + +- There's incorrect CPU temperature reading +- There's a lack of GPU frequency reading + ## #{GIT_TAG_NAME} +- FanControl: Support for SteamDeck OLED +- PerformanceOverlay: Support the `AMD Custom GPU 0932` found in SteamDeck OLED +- PowerControl: Support `AMD Custom GPU 0932` with a SMU at `0x80600000-0x8067ffff` ver.: `0x063F0E00` + ## 0.6.22 - SteamController: Fix broken scroll on left pad introduced by 0.6.21