Update README.md
320
README.md
|
|
@ -3,308 +3,52 @@
|
|||
This repository contains my own personal set of tools to help running Windows on Steam Deck.
|
||||
|
||||
**This software is provided on best-effort basis and can break your SteamDeck.**
|
||||
To learn more go to [Risks](#4-risks).
|
||||
|
||||
### If you found it useful buy me [Ko-fi](https://ko-fi.com/ayufan).
|
||||
## Help this project
|
||||
|
||||
<a href='https://ko-fi.com/ayufan' target='_blank'><img height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' alt='Buy Me a Coffee at ko-fi.com' />
|
||||
**This project is provided free of charge, but development of it is not free**:
|
||||
|
||||
## 1. Steam Deck Fan Control
|
||||
- Consider donating to keep this project alive.
|
||||
- Donating also helps to fund features that you might request.
|
||||
|
||||
This is a very early and highly experimental fan controller for Windows build based
|
||||
on `linux/jupiter-fan-control.py` available on SteamOS.
|
||||
<a href='https://ko-fi.com/ayufan' target='_blank'><img style='border:0px;height:50px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' alt='Buy Me a Coffee at ko-fi.com' />
|
||||
<a href="https://www.paypal.com/donate/?hosted_button_id=DHNBE2YR9D5Y2" target='_blank'><img src="https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png" alt="Donate with PayPal" style='border:0px;height:55px;'/>
|
||||
</a>
|
||||
|
||||
<img src="images/fan_control.png" height="400"/>
|
||||
## Applications
|
||||
|
||||
### 1.1. Usage
|
||||
This project provides the following application:
|
||||
|
||||
You can download latest precompiled build from Releases tab. Currently the application requires
|
||||
administrative privileges in order to read various temperature sensors.
|
||||
- [Fan Control](docs/fan-control.md) - control Fan on Windows
|
||||
- [Performance Overlay](docs/performance-overlay.md) - see FPS and other stats
|
||||
- [Power Control](docs/power-control.md) - change TDP or refresh rate
|
||||
- [Steam Controller](docs/steam-controller.md) - use Steam Deck with Game Pass
|
||||
|
||||
It provides 3 modes of operation:
|
||||
## Additional informations
|
||||
|
||||
1. **Default** - use EC to control fan (as done today)
|
||||
1. **SteamOS** - use reimplemented `jupiter-fan-control.py` (as in SteamOS when Fan Control is enabled)
|
||||
1. **Max** - blow at full speed.
|
||||
- [Controller Shortcuts](docs/shortcuts.md) - default shortcuts when using [Steam Controller](docs/steam-controller.md)
|
||||
- [Development](docs/development.md) - how to compile this project
|
||||
- [Risks](docs/risks.md) - this project users kernel manipulation and might result in unstable system
|
||||
|
||||
### 1.2. How it works?
|
||||
## Screenshots
|
||||
|
||||
See [Risks](#4-risks).
|
||||
<img src="docs/images/power_control.png" height="250"/>
|
||||
|
||||
### 1.3. Limitations
|
||||
## Requirements
|
||||
|
||||
As of Today (Nov, 2022) the GPU temperature is missing on Windows. Which makes it a little incomplete.
|
||||
However, it should be expected that GPU temperature is "kind of similar" to CPU due to GPU being in the same
|
||||
silicon. But! The device might overheat and break due to this missing temperature. **So, use at your own risk.**
|
||||
This project requires those dependencies to be installed in order to function properly:
|
||||
|
||||
### 1.4. Supported devices
|
||||
- [Microsoft Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe)
|
||||
- [Rivatuner Statistics Server](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html)
|
||||
- [ViGEmBus](https://github.com/ViGEm/ViGEmBus/releases)
|
||||
|
||||
The application tries it best to not harm device (just in case). So, it validates bios version.
|
||||
Those are currently supported:
|
||||
It is strongly advised that following software is uninstalled or disabled:
|
||||
|
||||
- F7A0107 (PD ver: 0xB030)
|
||||
- F7A0110 (PD ver: 0xB030)
|
||||
- [SWICD](https://github.com/mKenfenheuer/steam-deck-windows-usermode-driver)
|
||||
- [GlosSI](https://github.com/Alia5/GlosSI)
|
||||
- [HidHide](https://github.com/ViGEm/HidHide)
|
||||
|
||||
## 2. Performance Overlay
|
||||
|
||||
This is a very simple application that requires [Rivatuner Statistics Server Download](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html))
|
||||
and provides asthetics of SteamOS Performance Overlay.
|
||||
|
||||
Uninstall MSI Afterburner and any other OSD software.
|
||||
|
||||
It currently registers two global hotkeys:
|
||||
|
||||
- **Shift+F11** - enable performance overlay
|
||||
- **Alt+Shift+F11** - cycle to next performance overlay (and enable it)
|
||||
|
||||
There are 5 modes of presentation:
|
||||
|
||||
### 2.1. FPS
|
||||
|
||||
<img src="images/perf_overlay_fps.png" width="600"/>
|
||||
|
||||
### 2.2. FPS with Battery
|
||||
|
||||
<img src="images/perf_overlay_fpsbat.png" width="600"/>
|
||||
|
||||
### 2.3. Minimal
|
||||
|
||||
<img src="images/perf_overlay_min.png" width="600"/>
|
||||
|
||||
### 2.4. Detail
|
||||
|
||||
<img src="images/perf_overlay_detail.png" width="600"/>
|
||||
|
||||
### 2.5. Full
|
||||
|
||||
<img src="images/perf_overlay_full.png" height="100"/>
|
||||
|
||||
## 3. Power Control
|
||||
|
||||
This is a very simple application that requires [Rivatuner Statistics Server Download](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html)
|
||||
and provides an easily accessible controls.
|
||||
|
||||
Uninstall MSI Afterburner and any other OSD software.
|
||||
|
||||
There are currently configurable settings:
|
||||
|
||||
- Volume
|
||||
- Brightness
|
||||
- Refresh Rate
|
||||
- Resolution (requires enabling `EnableExperimentalFeatures` in `appconfig`)
|
||||
- FPS Limit (requires: RTSS > Setup > Enable Framelimit)
|
||||
- TDP
|
||||
- SMT (Each core of AMD has 2 threads, this allows to enable/disable second threads)
|
||||
- OSD / OSDMode (requires PerformanceOverlay running)
|
||||
- Fan (requires FanControl running)
|
||||
|
||||
<img src="images/power_control.png" height="250"/>
|
||||
|
||||
### 3.1. Use it
|
||||
|
||||
It will only work in OSD mode when rendering graphics.
|
||||
The notification setting is always available.
|
||||
|
||||
- SteamDeck Controller: press and hold Quick Access (3 dots), and then DPad Left, Rigth, Up, Down.
|
||||
- Keyboard: `Ctrl+Win+Numpad2` (Down), `Ctrl+Win+Numpad4` (Left), `Ctrl+Win+Numpad6` (Right), `Ctrl+Win+Numpad8` (Up)
|
||||
|
||||
Additional shortcuts:
|
||||
|
||||
- Control Volume: use Volume Up and Down
|
||||
- Control Brightness: press and hold Quick Access (3 dots), and then Volume Up and Down
|
||||
- Press `3 dots + L4 + R4 + L5 + R5` to reset (TDP, Refresh Rate, FPS limit) to default
|
||||
|
||||
### 3.2. SWICD configuration
|
||||
|
||||
- Set 3 dots to **NONE** in button mapping
|
||||
|
||||
<img src="images/power_control_swicd_1.png" height="150"/>
|
||||
|
||||
## 4. Steam Controller
|
||||
|
||||
This is highly experimental "opinionated" implementation of Steam Controller that is meant
|
||||
to replace [SWICD](https://github.com/mKenfenheuer/steam-deck-windows-usermode-driver/)
|
||||
and [Glossi](https://github.com/Alia5/GlosSI). This is hard piece and it is rather
|
||||
unsupported (by me), so if it works it works.
|
||||
|
||||
It offers 3 main modes of operation:
|
||||
|
||||
- **Desktop**
|
||||
- **X360 emulation** (optionally with Rumble) - activated automatically when entering Playnite Fullscreen
|
||||
- **Steam** - active automatically when running Steam Gamepad UI, Steam Big Screen UI or running Steam Game
|
||||
|
||||
You can easily switch between Desktop and X360 by holding Options button (3 horizontal lines,
|
||||
on top of the right joystick). When profile is switched you will hear a beep.
|
||||
|
||||
It is strongly advised that you uninstall (unless you know what are you doing):
|
||||
|
||||
1. SWICD
|
||||
1. Glossi
|
||||
1. HidHide
|
||||
|
||||
Requirements:
|
||||
|
||||
1. Ensure that you have SWICD, Glossi and HidHide disabled, stopped or uninstalled!
|
||||
1. Ensure that HidHide is disabled, or ensure that `Steam Controller.exe` can see `Neptune Valve Controller`.
|
||||
1. Install latest version of [https://github.com/ViGEm/ViGEmBus/releases](https://github.com/ViGEm/ViGEmBus/releases).
|
||||
|
||||
### 4.1. Possible setups
|
||||
|
||||
The are various ways how `Steam Controller` can work with Steam.
|
||||
If you do not use Steam this is simple, just run it and enjoy.
|
||||
Since when there's no Steam, there's no problem at all.
|
||||
|
||||
#### 4.1.1. Most compatible - Use X360 Controller with Steam
|
||||
|
||||
This pretty much work always. It hides the `Valve Software Steam Controller` from Steam.
|
||||
|
||||
It is out of box experience. In this mode you would use either Desktop or X360 controls,
|
||||
and all Steam games would use X360.
|
||||
|
||||
The Back Panel buttons can be assigned to some user-defined keys.
|
||||
|
||||
#### 4.1.2. Works, but sometimes finicky - Use Steam Input with Steam
|
||||
|
||||
It is **required** to configure Steam as described in [Configure Steam](#43-configure-steam).
|
||||
|
||||
This is setup that allows you to enable `Steam Input` and use community provided profiles
|
||||
on Steam. However, this requires special configuration and in some cases is finicky.
|
||||
|
||||
The `SteamController.exe` automatically detects Steam running game and disable itself
|
||||
for the duration of game play switch to specially currated `Steam profile` (non selectable, and hidden).
|
||||
|
||||
The are two primary ways how to use it. The best experience is achieved when
|
||||
**STEAM IS NOT RUNNING IN BACKGROUND**. Use Playnite Fullscreen to start game on the Steam
|
||||
and close it after session (there's an option in Playnite settings). Keep Steam closed
|
||||
otherwise at all times.
|
||||
|
||||
Alternative if Steam is running in background it should be pretty stable when
|
||||
[configured desktop mode buttons](#43-configure-steam). There will be sometimes finicky behavior
|
||||
when using STEAM button shortcuts. However, this is mostly stable otherwise.
|
||||
|
||||
> Getting controllers support is hard especially with Steam not making it easy to disable it.
|
||||
> I'm doing this to solve my usage pattern. So, I might have limited will to fix all quirks
|
||||
> of handling Steam running in background alongside `Steam Controller`. This will never
|
||||
> be supported mode of operation.
|
||||
|
||||
#### 4.1.3. If you know what you do - Ignore Steam
|
||||
|
||||
This makes `Steam Controller` to disable Steam detection. Now, you would have to do everything
|
||||
you were doing before: like HidHide, additional controllers, etc.
|
||||
|
||||
It is **not needed** to configure Steam as described in [Configure Steam](#43-configure-steam).
|
||||
|
||||
In this mode you would use either Desktop or X360 controls, and all Steam games would use X360.
|
||||
When running in this mode you would have to switch between Desktop and X360 mode with `Options` button
|
||||
or with `PowerControl`.
|
||||
|
||||
Of course you will have access to all described shortcuts.
|
||||
|
||||
### 4.2. Mappings
|
||||
|
||||
| Button | Desktop | X360 (with Rumble) | Steam | Steam With Shortcuts |
|
||||
|----------------------------|------------------------|------------------------|------------------------|------------------------|
|
||||
| X360 Controller | Not connected | Connected | Not connected | Not connected |
|
||||
| Options (hold for 1s) | Switch to next profile | Switch to next profile | Switch to next profile | Switch to next profile |
|
||||
| Options (hold for 2s) | Toggle desktop mode | Toggle desktop mode | | |
|
||||
| STEAM + 3 dots | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE |
|
||||
| STEAM + Menu | WIN + TAB | WIN + TAB | WIN + TAB | WIN + TAB |
|
||||
| STEAM + Options | F11 | F11 | F11 | F11 |
|
||||
| STEAM + A | RETURN | RETURN | | RETURN |
|
||||
| STEAM + B (hold for 1s) | ALT + F4 | ALT + F4 | | ALT + F4 |
|
||||
| STEAM + B (hold for 3s) | Kill active process | Kill active process | | Kill active process |
|
||||
| STEAM + X | Toggle Keyboard | Toggle Keyboard | | Toggle Keyboard |
|
||||
| STEAM + L1 | Toggle Magnify | Toggle Magnify | | Toggle Magnify |
|
||||
| STEAM + R1 | Screenshot | Screenshot | | Screenshot |
|
||||
| STEAM + Left Joystick Up | Increase Brightness | Increase Brightness | | Increase Brightness |
|
||||
| STEAM + Left Joystick Down | Decrease Brightness | Decrease Brightness | | Decrease Brightness |
|
||||
| STEAM + DPad Right | RETURN | RETURN | | RETURN |
|
||||
| STEAM + DPad Down | TAB | TAB | | TAB |
|
||||
| STEAM + DPad Left | ESCAPE | ESCAPE | | ESCAPE |
|
||||
| STEAM + DPad Up | CTRL + ALT + U | CTRL + ALT + U | | CTRL + ALT + U |
|
||||
| STEAM + Left Pad | Mouse Scroll | Mouse Scroll | | Mouse Scroll |
|
||||
| STEAM + Left Joystick | Mouse Scroll | Mouse Scroll | | Mouse Scroll |
|
||||
| STEAM + Right Joystick | Mouse Trackpad | Mouse Trackpad | | Mouse Trackpad |
|
||||
| STEAM + Right Pad | Mouse Move | Mouse Move | | Mouse Move |
|
||||
| STEAM + L2 | Mouse Right Click | Mouse Right Click | | Mouse Right Click |
|
||||
| STEAM + R2 | Mouse Left Click | Mouse Left Click | | Mouse Left Click |
|
||||
| STEAM + Left Pad Press | Mouse Right Click | Mouse Right Click | | Mouse Right Click |
|
||||
| STEAM + Right Pad Press | Mouse Left Click | Mouse Left Click | | Mouse Left Click |
|
||||
| Left Pad | Mouse Scroll | | | |
|
||||
| Left Joystick | Mouse Scroll | | | |
|
||||
| Right Joystick | Mouse Trackpad | | | |
|
||||
| Right Pad | Mouse Move | | | |
|
||||
| DPad Arrows | Keyboard Arrows | | | |
|
||||
| A | RETURN | | | |
|
||||
| B | BACKSPACE | | | |
|
||||
|
||||
### 4.3. Configure Steam
|
||||
|
||||
If Steam is running in background it is essential to remove Desktop mode configuration
|
||||
to make `SteamController.exe` the one mapping those.
|
||||
|
||||
#### 4.3.1. Disable Desktop mode in Steam Gamepad UI (preferred)
|
||||
|
||||
1. Run `steam.exe` with `-gamepadui`.
|
||||
1. Click `Steam` button, go to `Settings` > `Controller`.
|
||||
1. Scroll down to find `Desktop Layout`, click `Edit` and `Edit Layout`.
|
||||
1. Go to `Action Sets` > `Add Action Set`.
|
||||
1. In `Add Action Set` type `Empty` and `Continue`.
|
||||
1. Now click on `Default`, `Remove Set` and `Confirm`.
|
||||
1. You can now exit with `B` (Back).
|
||||
|
||||
#### 4.3.2. Disable Desktop mode in Steam Desktop (slightly buggy on Steam Deck)
|
||||
|
||||
1. Run Steam.
|
||||
1. Go to `Steam` > `Settings` > `Controller` > `Desktop Configuration`.
|
||||
1. Click `Add Action Set`.
|
||||
1. In new window type `Empty` and click `OK`.
|
||||
1. At top select `Default`.
|
||||
1. Now click `Menu` button (the button on top of left joystick with two squares)
|
||||
on Steam Deck (or `Manage Action Set` button).
|
||||
1. In a new window click `DELETE`.
|
||||
1. Now click `B` or `DONE`.
|
||||
|
||||
### 4.4. Fullscreen Scaling Hotkey (Steam + Up Pad Press)
|
||||
|
||||
Many games in Windows will crash when attempting to start in fullscreen. To have a fullscreen experience on the Steam Deck, you can use this keybind in any fullscreen scaling application to provide a shortcut capable of toggling the scaling.
|
||||
|
||||
Example of Scaling software: https://store.steampowered.com/app/993090/Lossless_Scaling/
|
||||
|
||||
To configure the hotkey in Lossless Scaling:
|
||||
1. Launch Lossless Scaling
|
||||
1. Open "Settings"
|
||||
1. Select the "Scale hotkey"
|
||||
1. Press "STEAM + DPad Up"
|
||||
1. Verify that the hotkey was set to "CTRL + ALT + U"
|
||||
1. Close the settings dialog
|
||||
|
||||
## 5. Risks
|
||||
|
||||
**This software is provided on best-effort basis and can break your SteamDeck.** It does a direct manipulation
|
||||
of kernel memory to control usage the EC (Embedded Controller) and setting desired fan RPM via VLV0100
|
||||
|
||||
The Tools are written trying to check if you are truly using SteamDeck and compatible system.
|
||||
The applications try it's best to start only on **validated configurations** to avoid breaking your system.
|
||||
|
||||
It was build based on knowledge gained in Steam Deck kernel patch and DSDT presented by bios.
|
||||
The memory addresses used are hardcoded and can be changed any moment by the Bios update.
|
||||
|
||||
Fortunately quite amount of people are using it with a success and no problems observed.
|
||||
However, you should be aware of the consequences.
|
||||
|
||||
### 5.1. Risk of CPU and GPU frequency change
|
||||
|
||||
The APU manipulation of CPU and GPU frequency uses a ported implementation from Linux kernel.
|
||||
It is more unstable than Fan Control (since the Fan Control is controller managing EC on Windows).
|
||||
The change of the CPU and GPU frequency switch might sometimes crash system.
|
||||
The AMD Display Driver periodically requests GPU metrics and in some rare circumstances the change request
|
||||
might lock the GPU driver. If something like this happens it is advised to
|
||||
power shutdown the device. Disconnect from charging, and hold power button for a few seconds.
|
||||
Power device normally afterwards. This is rather unlikely to break the device if done right
|
||||
after when such event occurs.
|
||||
|
||||
## 6. Anti-Cheat and Antivirus software
|
||||
## Anti-Cheat and Antivirus software
|
||||
|
||||
Since this project uses direct manipulation of kernel memory via `inpoutx64.dll`
|
||||
it might trigger Antivirus and Anti-Cheat software.
|
||||
|
|
@ -313,12 +57,6 @@ If you use at least version `0.5.x` you can disable kernel drivers usage that sh
|
|||
avoid trippping Anti-Cheat detection. Set FAN to `Default` and disable `OSD Kernel Drivers`.
|
||||
Of course you will miss some metrics due to that.
|
||||
|
||||
## 7. Development
|
||||
|
||||
It should be enough to run `scripts/build.bat` to see binaries in `build-release/`.
|
||||
|
||||
You might also run `scripts/test_debug.bat` which will build and run built version.
|
||||
|
||||
## Author
|
||||
|
||||
Kamil Trzciński, 2022
|
||||
|
|
|
|||
5
docs/development.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Development
|
||||
|
||||
It should be enough to run `scripts/build.bat` to see binaries in `build-release/`.
|
||||
|
||||
You might also run `scripts/test_debug.bat` which will build and run built version.
|
||||
35
docs/fan-control.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Fan Control
|
||||
|
||||
This is a very early and highly experimental fan controller for Windows build based
|
||||
on `linux/jupiter-fan-control.py` available on SteamOS.
|
||||
|
||||
<img src="images/fan_control.png" height="400"/>
|
||||
|
||||
## 1. Usage
|
||||
|
||||
You can download latest precompiled build from Releases tab. Currently the application requires
|
||||
administrative privileges in order to read various temperature sensors.
|
||||
|
||||
It provides 3 modes of operation:
|
||||
|
||||
1. **Default** - use EC to control fan (as done today)
|
||||
1. **SteamOS** - use reimplemented `jupiter-fan-control.py` (as in SteamOS when Fan Control is enabled)
|
||||
1. **Max** - blow at full speed.
|
||||
|
||||
## 2. How it works?
|
||||
|
||||
See [Risks](#4-risks).
|
||||
|
||||
## 3. Limitations
|
||||
|
||||
As of Today (Nov, 2022) the GPU temperature is missing on Windows. Which makes it a little incomplete.
|
||||
However, it should be expected that GPU temperature is "kind of similar" to CPU due to GPU being in the same
|
||||
silicon. But! The device might overheat and break due to this missing temperature. **So, use at your own risk.**
|
||||
|
||||
## 4. Supported devices
|
||||
|
||||
The application tries it best to not harm device (just in case). So, it validates bios version.
|
||||
Those are currently supported:
|
||||
|
||||
- F7A0107 (PD ver: 0xB030)
|
||||
- F7A0110 (PD ver: 0xB030)
|
||||
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 780 KiB After Width: | Height: | Size: 780 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
33
docs/performance-overlay.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Performance Overlay
|
||||
|
||||
This is a very simple application that requires [Rivatuner Statistics Server Download](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html)
|
||||
and provides asthetics of SteamOS Performance Overlay.
|
||||
|
||||
Uninstall MSI Afterburner and any other OSD software.
|
||||
|
||||
It currently registers two global hotkeys:
|
||||
|
||||
- **Shift+F11** - enable performance overlay
|
||||
- **Alt+Shift+F11** - cycle to next performance overlay (and enable it)
|
||||
|
||||
There are 5 modes of presentation:
|
||||
|
||||
## 1. FPS
|
||||
|
||||
<img src="images/perf_overlay_fps.png" width="600"/>
|
||||
|
||||
## 2. FPS with Battery
|
||||
|
||||
<img src="images/perf_overlay_fpsbat.png" width="600"/>
|
||||
|
||||
## 3. Minimal
|
||||
|
||||
<img src="images/perf_overlay_min.png" width="600"/>
|
||||
|
||||
## 4. Detail
|
||||
|
||||
<img src="images/perf_overlay_detail.png" width="600"/>
|
||||
|
||||
## 5. Full
|
||||
|
||||
<img src="images/perf_overlay_full.png" height="100"/>
|
||||
42
docs/power-control.md
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
# Power Control
|
||||
|
||||
This is a very simple application that requires [Rivatuner Statistics Server Download](https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html)
|
||||
and provides an easily accessible controls.
|
||||
|
||||
Uninstall MSI Afterburner and any other OSD software.
|
||||
|
||||
There are currently configurable settings:
|
||||
|
||||
- Volume
|
||||
- Brightness
|
||||
- Refresh Rate
|
||||
- Resolution (requires enabling `EnableExperimentalFeatures` in `appconfig`)
|
||||
- FPS Limit (requires: RTSS > Setup > Enable Framelimit)
|
||||
- TDP
|
||||
- SMT (Each core of AMD has 2 threads, this allows to enable/disable second threads)
|
||||
- OSD / OSDMode (requires PerformanceOverlay running)
|
||||
- Fan (requires FanControl running)
|
||||
|
||||
<img src="images/power_control.png" height="250"/>
|
||||
|
||||
## 1. Use it
|
||||
|
||||
It will only work in OSD mode when rendering graphics.
|
||||
The notification setting is always available.
|
||||
|
||||
- SteamDeck Controller: press and hold Quick Access (3 dots), and then DPad Left, Rigth, Up, Down.
|
||||
- Keyboard: `Ctrl+Win+Numpad2` (Down), `Ctrl+Win+Numpad4` (Left), `Ctrl+Win+Numpad6` (Right), `Ctrl+Win+Numpad8` (Up)
|
||||
|
||||
Additional shortcuts:
|
||||
|
||||
- Control Volume: use Volume Up and Down
|
||||
- Control Brightness: press and hold Quick Access (3 dots), and then Volume Up and Down
|
||||
- Press `3 dots + L4 + R4 + L5 + R5` to reset (TDP, Refresh Rate, FPS limit) to default
|
||||
|
||||
## 2. SWICD configuration
|
||||
|
||||
> This work seemlessly with [Steam Controller](steam-controller.md).
|
||||
|
||||
- Set 3 dots to **NONE** in button mapping
|
||||
|
||||
<img src="images/power_control_swicd_1.png" height="150"/>
|
||||
24
docs/risks.md
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
# Risks
|
||||
|
||||
**This software is provided on best-effort basis and can break your SteamDeck.** It does a direct manipulation
|
||||
of kernel memory to control usage the EC (Embedded Controller) and setting desired fan RPM via VLV0100
|
||||
|
||||
The Tools are written trying to check if you are truly using SteamDeck and compatible system.
|
||||
The applications try it's best to start only on **validated configurations** to avoid breaking your system.
|
||||
|
||||
It was build based on knowledge gained in Steam Deck kernel patch and DSDT presented by bios.
|
||||
The memory addresses used are hardcoded and can be changed any moment by the Bios update.
|
||||
|
||||
Fortunately quite amount of people are using it with a success and no problems observed.
|
||||
However, you should be aware of the consequences.
|
||||
|
||||
## Risk of CPU and GPU frequency change
|
||||
|
||||
The APU manipulation of CPU and GPU frequency uses a ported implementation from Linux kernel.
|
||||
It is more unstable than Fan Control (since the Fan Control is controller managing EC on Windows).
|
||||
The change of the CPU and GPU frequency switch might sometimes crash system.
|
||||
The AMD Display Driver periodically requests GPU metrics and in some rare circumstances the change request
|
||||
might lock the GPU driver. If something like this happens it is advised to
|
||||
power shutdown the device. Disconnect from charging, and hold power button for a few seconds.
|
||||
Power device normally afterwards. This is rather unlikely to break the device if done right
|
||||
after when such event occurs.
|
||||
37
docs/shortcuts.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Steam Controller - Shortcuts
|
||||
|
||||
| Button | Desktop | X360 (with Rumble) | Steam | Steam With Shortcuts |
|
||||
|----------------------------|------------------------|------------------------|------------------------|------------------------|
|
||||
| X360 Controller | Not connected | Connected | Not connected | Not connected |
|
||||
| Options (hold for 1s) | Switch to next profile | Switch to next profile | Switch to next profile | Switch to next profile |
|
||||
| Options (hold for 2s) | Toggle desktop mode | Toggle desktop mode | | |
|
||||
| STEAM + 3 dots | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE | CTRL + SHIFT + ESCAPE |
|
||||
| STEAM + Menu | WIN + TAB | WIN + TAB | WIN + TAB | WIN + TAB |
|
||||
| STEAM + Options | F11 | F11 | F11 | F11 |
|
||||
| STEAM + A | RETURN | RETURN | | RETURN |
|
||||
| STEAM + B (hold for 1s) | ALT + F4 | ALT + F4 | | ALT + F4 |
|
||||
| STEAM + B (hold for 3s) | Kill active process | Kill active process | | Kill active process |
|
||||
| STEAM + X | Toggle Keyboard | Toggle Keyboard | | Toggle Keyboard |
|
||||
| STEAM + L1 | Toggle Magnify | Toggle Magnify | | Toggle Magnify |
|
||||
| STEAM + R1 | Screenshot | Screenshot | | Screenshot |
|
||||
| STEAM + Left Joystick Up | Increase Brightness | Increase Brightness | | Increase Brightness |
|
||||
| STEAM + Left Joystick Down | Decrease Brightness | Decrease Brightness | | Decrease Brightness |
|
||||
| STEAM + DPad Right | RETURN | RETURN | | RETURN |
|
||||
| STEAM + DPad Down | TAB | TAB | | TAB |
|
||||
| STEAM + DPad Left | ESCAPE | ESCAPE | | ESCAPE |
|
||||
| STEAM + DPad Up | CTRL + ALT + U | CTRL + ALT + U | | CTRL + ALT + U |
|
||||
| STEAM + Left Pad | Mouse Scroll | Mouse Scroll | | Mouse Scroll |
|
||||
| STEAM + Left Joystick | Mouse Scroll | Mouse Scroll | | Mouse Scroll |
|
||||
| STEAM + Right Joystick | Mouse Trackpad | Mouse Trackpad | | Mouse Trackpad |
|
||||
| STEAM + Right Pad | Mouse Move | Mouse Move | | Mouse Move |
|
||||
| STEAM + L2 | Mouse Right Click | Mouse Right Click | | Mouse Right Click |
|
||||
| STEAM + R2 | Mouse Left Click | Mouse Left Click | | Mouse Left Click |
|
||||
| STEAM + Left Pad Press | Mouse Right Click | Mouse Right Click | | Mouse Right Click |
|
||||
| STEAM + Right Pad Press | Mouse Left Click | Mouse Left Click | | Mouse Left Click |
|
||||
| Left Pad | Mouse Scroll | | | |
|
||||
| Left Joystick | Mouse Scroll | | | |
|
||||
| Right Joystick | Mouse Trackpad | | | |
|
||||
| Right Pad | Mouse Move | | | |
|
||||
| DPad Arrows | Keyboard Arrows | | | |
|
||||
| A | RETURN | | | |
|
||||
| B | BACKSPACE | | | |
|
||||
125
docs/steam-controller.md
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
# Steam Controller
|
||||
|
||||
This is highly experimental "opinionated" implementation of Steam Controller that is meant
|
||||
to replace [SWICD](https://github.com/mKenfenheuer/steam-deck-windows-usermode-driver/)
|
||||
and [Glossi](https://github.com/Alia5/GlosSI). This is hard piece and it is rather
|
||||
unsupported (by me), so if it works it works.
|
||||
|
||||
It offers 3 main modes of operation:
|
||||
|
||||
- **Desktop**
|
||||
- **X360 emulation** (with Haptics) - activated automatically when entering Playnite Fullscreen
|
||||
- **Steam** - active automatically when running Steam Gamepad UI, Steam Big Screen UI or running Steam Game
|
||||
|
||||
You can easily switch between Desktop and X360 by holding Options button (3 horizontal lines,
|
||||
on top of the right joystick). When profile is switched you will hear a beep.
|
||||
|
||||
It is strongly advised that you uninstall (unless you know what are you doing):
|
||||
|
||||
1. SWICD
|
||||
1. Glossi
|
||||
1. HidHide
|
||||
|
||||
Requirements:
|
||||
|
||||
1. Ensure that you have SWICD, Glossi and HidHide disabled, stopped or uninstalled!
|
||||
1. Ensure that HidHide is disabled, or ensure that `Steam Controller.exe` can see `Neptune Valve Controller`.
|
||||
1. Install latest version of [https://github.com/ViGEm/ViGEmBus/releases](https://github.com/ViGEm/ViGEmBus/releases).
|
||||
|
||||
## 1. Possible setups
|
||||
|
||||
The are various ways how `Steam Controller` can work with Steam.
|
||||
If you do not use Steam this is simple, just run it and enjoy.
|
||||
Since when there's no Steam, there's no problem at all.
|
||||
|
||||
### 1.1. Most compatible - Use X360 Controller with Steam
|
||||
|
||||
This pretty much work always. It hides the `Valve Software Steam Controller` from Steam.
|
||||
|
||||
It is out of box experience. In this mode you would use either Desktop or X360 controls,
|
||||
and all Steam games would use X360.
|
||||
|
||||
The Back Panel buttons can be assigned to some user-defined keys.
|
||||
|
||||
### 1.2. Works, but sometimes finicky - Use Steam Input with Steam
|
||||
|
||||
It is **required** to configure Steam as described in [Configure Steam](#3-configure-steam).
|
||||
|
||||
This is setup that allows you to enable `Steam Input` and use community provided profiles
|
||||
on Steam. However, this requires special configuration and in some cases is finicky.
|
||||
|
||||
The `SteamController.exe` automatically detects Steam running game and disable itself
|
||||
for the duration of game play switch to specially currated `Steam profile` (non selectable, and hidden).
|
||||
|
||||
The are two primary ways how to use it. The best experience is achieved when
|
||||
**STEAM IS NOT RUNNING IN BACKGROUND**. Use Playnite Fullscreen to start game on the Steam
|
||||
and close it after session (there's an option in Playnite settings). Keep Steam closed
|
||||
otherwise at all times.
|
||||
|
||||
Alternative if Steam is running in background it should be pretty stable when
|
||||
[configured desktop mode buttons](#3-configure-steam). There will be sometimes finicky behavior
|
||||
when using STEAM button shortcuts. However, this is mostly stable otherwise.
|
||||
|
||||
> Getting controllers support is hard especially with Steam not making it easy to disable it.
|
||||
> I'm doing this to solve my usage pattern. So, I might have limited will to fix all quirks
|
||||
> of handling Steam running in background alongside `Steam Controller`. This will never
|
||||
> be supported mode of operation.
|
||||
|
||||
### 1.3. If you know what you do - Ignore Steam
|
||||
|
||||
This makes `Steam Controller` to disable Steam detection. Now, you would have to do everything
|
||||
you were doing before: like HidHide, additional controllers, etc.
|
||||
|
||||
It is **not needed** to configure Steam as described in [Configure Steam](#3-configure-steam).
|
||||
|
||||
In this mode you would use either Desktop or X360 controls, and all Steam games would use X360.
|
||||
When running in this mode you would have to switch between Desktop and X360 mode with `Options` button
|
||||
or with `PowerControl`.
|
||||
|
||||
Of course you will have access to all described shortcuts.
|
||||
|
||||
## 2. Shortcuts
|
||||
|
||||
[See it here](shortcuts.md)
|
||||
|
||||
## 3. Configure Steam
|
||||
|
||||
If Steam is running in background it is essential to remove Desktop mode configuration
|
||||
to make `SteamController.exe` the one mapping those.
|
||||
|
||||
### 3.1. Disable Desktop mode in Steam Gamepad UI (preferred)
|
||||
|
||||
1. Run `steam.exe` with `-gamepadui`.
|
||||
1. Click `Steam` button, go to `Settings` > `Controller`.
|
||||
1. Scroll down to find `Desktop Layout`, click `Edit` and `Edit Layout`.
|
||||
1. Go to `Action Sets` > `Add Action Set`.
|
||||
1. In `Add Action Set` type `Empty` and `Continue`.
|
||||
1. Now click on `Default`, `Remove Set` and `Confirm`.
|
||||
1. You can now exit with `B` (Back).
|
||||
|
||||
### 3.2. Disable Desktop mode in Steam Desktop (slightly buggy on Steam Deck)
|
||||
|
||||
1. Run Steam.
|
||||
1. Go to `Steam` > `Settings` > `Controller` > `Desktop Configuration`.
|
||||
1. Click `Add Action Set`.
|
||||
1. In new window type `Empty` and click `OK`.
|
||||
1. At top select `Default`.
|
||||
1. Now click `Menu` button (the button on top of left joystick with two squares)
|
||||
on Steam Deck (or `Manage Action Set` button).
|
||||
1. In a new window click `DELETE`.
|
||||
1. Now click `B` or `DONE`.
|
||||
|
||||
## 4. Fullscreen Scaling Hotkey (Steam + Up Pad Press)
|
||||
|
||||
Many games in Windows will crash when attempting to start in fullscreen. To have a fullscreen experience on the Steam Deck, you can use this keybind in any fullscreen scaling application to provide a shortcut capable of toggling the scaling.
|
||||
|
||||
Example of Scaling software: https://store.steampowered.com/app/993090/Lossless_Scaling/
|
||||
|
||||
To configure the hotkey in Lossless Scaling:
|
||||
|
||||
1. Launch Lossless Scaling
|
||||
1. Open "Settings"
|
||||
1. Select the "Scale hotkey"
|
||||
1. Press "STEAM + DPad Up"
|
||||
1. Verify that the hotkey was set to "CTRL + ALT + U"
|
||||
1. Close the settings dialog
|
||||