Skip to content

Instantly share code, notes, and snippets.

@pudquick
Last active July 11, 2023 17:44
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pudquick/01086bf2aa0767946112977a89f69321 to your computer and use it in GitHub Desktop.
Save pudquick/01086bf2aa0767946112977a89f69321 to your computer and use it in GitHub Desktop.
Steam Deck notes

Steam Deck Notes


Running scripts in Gaming mode easily

This became its own writeup: https://gist.github.com/pudquick/981a3e495ffb5badc38e34d754873eb5

Artwork on non-Steam games

There's several different kinds of art that can be configured for an entry. The only real place to configure them all is from Desktop mode, not Game mode.

  • Library portrait: When you have a category selected and you see portrait aspect art, right-click (left pad) -> Manage -> Set custom artwork
  • Hero background: When you've got the game selected, the header at the top of the view of the game -> right-click on the empty header (left pad) -> Set Custom Background
  • Logo (transparent image instead of name of game displayed in boring font in header): When you've got the game selected, the header at the top of the view of the game -> right-click on the empty header (left pad) -> Set Custom Logo
  • Last Played Header: When the game you've played is -the- most recent game, click on Library -> go to RECENT GAMES section -> right-click (left pad) -> Manage -> Set custom artwork
  • Icon: The square icon displayed to the left of the name in game lists, right-click (left pad) in any view where both Manage and Properties appears (such as in a specific Category view) -> Properties... -> left-click (right pad) on the space to the left of the shortcut name at the top of the right half of the view -> choose your icon

So collectively, that's 5 pieces of artwork you'd need to fully configure any specific entry.

Various emulation notes

Playstation 2

Assuming you've of course dumped the bios from the Playstation 2 that you own and have made a legal backup of the PS2 game discs that you own, PCSX2 is extremely powerful on the Steam Deck.

There's a really useful guide and configuration that Phawx on YouTube has put together which is a little different than the other guides out there in that he provides an .ini file you can use with PCSX2 so that you can use Game mode instead of Desktop mode to play games directly in PCSX2 with full Deck control support pre-configured to the specific button identifiers.

You can watch the video here: https://www.youtube.com/watch?v=pnCObNCg0Ic

But in his guide, he sets up PCSX2 directly as the non-game app he's added to his Steam Library. There's a better tool for this, linked in this guide - https://github.com/nchristopher/steamdeck-emulation - called the Steam Rom Manager, which adds individual game entries, figures out custom artwork and names for each, and runs as a flatpak: https://steamgriddb.github.io/steam-rom-manager/

So after you've gotten the PAD.ini setup from the video, I'd recommend using the Steam Rom Manager to add individual entries to your Library view.

In order to do this - you must switch to Desktop mode, launch and configure the Steam Rom Manager to add your games, and then right before you add the games - fully quit Steam in Desktop mode. The Steam Rom Manager cannot add new entries while Steam is still running, but Steam running in Desktop mode provides a lot more control flexibility. So quitting right before you apply, you can just tap on the screen to save your changes / add the games, then re-launch Steam to get back full control.

Two notes about the configuration guides linked above:

  • Both of them mention a "Fast Texture Invalidation" setting. That's since been renamed to "Disable Partial Invalidation"
  • If you use Steam Rom Manager, it will attempt to use the --nogui setting for each entry it's configuring. You do want this. Without this, when you attempt to quit PCSX2, it won't fully quit but the window will close - which returns you back to Steam in Game mode, but then breaks future application launches (because it's already running). This is because with recent builds if you have --nogui enabled, it'll crash. This was documented as an issue in the project but closed out without fixing it: PCSX2/pcsx2#6380. Fortunately someone mentioned in a later comment the requirement for triggering the bug is having "Enable Input Recording" under the first menu in PCSX2 called "Game Settings" enabled. Just launch PCSX2 in Desktop mode, find the menu, and uncheck that and then --nogui will work again.

Most importantly, if you're following this advice: There's an associated controller layout that Phawx has added to the Steam community layouts that takes advantage of the PAD.ini configuration he provides. The Steam Deck will only suggest this layout to you if your game entry in the Library is specifically named "PCSX2".

So - after you've added your games to your Library, go back to the properties and rename one of them to "PCSX2". Then go into controller layout settings and you should see Phawx's PAD.ini config listed.

Once you've selected that for your game, you need to save a modified copy of it as a template with a name of your choice (like "PCSX2 Layout"). Then you can rename your game back to whatever it was called.

After you've created the template, you need to reboot your Steam Deck. There is a bug where templates you've newly created aren't suggested in the UI until after reboot. Once you've rebooted, you should be able to go back into the controller layout settings for each game (little game controller icon next to the gear), and in the first column of suggested layouts you should now be able to scroll all the way to the bottom and see your custom templates that you've created and choose / apply one of those regardless of what your Library entry is named.

Once you've got this configured, using Phawx's control layout, you should be able to launch a game from Game mode and play with relatively sane layout (he describes it in the video). When you're done playing the game, the default button to hit is L4 (one of the buttons on the back of the Deck), which triggers "Esc" which in nogui mode fully just exits PCSX2 by default.

Developer mode is not mutable filesystem control

Your Steam Deck works like ChromeOS - OS updates change all the underlying OS bits, nothing persists except for user data, unless you specifically enable that mode (which is generally not recommened). There's a Developer Mode toggle in the settings, but that's not what that does. Mutable filesystem enablement is outlined here:

https://help.steampowered.com/en/faqs/view/671A-4453-E8D2-323C

sudo steamos-readonly disable

Not recommended, mind. Stick to flatpak. But still - should you need it.

Configuring a sudo password

Also outlined in the same article is how to set a password for the default user account (which is named deck) in Desktop mode. There's no password set at all, so you can either use passwd in Konsole / terminal and configure one or you can use the Users GUI in Settings

SD card touchiness

The Steam Deck has a script that it's running to format the SD card, located at /usr/lib/hwsupport/format-sd.card

This script has more options than the Steam "Format" button UI provides, including additional arguments like:

--force - skip the "validation" check, where it attempts to add partitions and do a bunch of random things in a row to your disk to validate that it's a real functional SD card

--skip-validation - same thing as --force

--full - full format of disk

--quick - quick format of disk

When it runs, it will format the disk and then attempt to remount it. I've had at least one SD card at this point that took slightly longer to mount, post formatting, than the script accounted for - which caused it to mark it as failed. But it's a perfectly good SD card.

Using the script from Desktop mode, you may get a better sense of what's going on if you have an SD card that refuses to "Format"

On-screen keyboard in desktop mode

It works, but it's not terribly useful on-the-go for things like the terminal, because you're lacking keys like Ctrl, arrow keys, etc.

There's an app in the catalog - CoreKeyboard - but unfortunately it's not much better. Without an external display connected, it determines that your Steam Deck is a "mobile device" and shows a more limited keyboard, instead of a fuller keyboard with every single key. Being a flatpak, it's hard to make changes here - may need to build my own version. Hopefully Valve comes out with a an extended keyboard mode/layout soon.

One or more games losing audio

Update: SteamOS 3.4 and later is supposed to address some of this randomly happening. 🤞

If you're someone that uses Desktop mode and has occasionally launched Steam games while in it, if you find that one or more of your games has suddenly lost audio, potentially one of two things is going on.

If multiple games are now quiet, go back into Desktop mode and tap on the Audio Volume status icon in the lower right, which should show you available audio devices (both input and output) when you click on "Devices". At the top of the list, you will probably see an output device named "Echo-Cancel Sink". Check to see if you've inadvertently set its audio level to 0% / muted it. Make sure it's set to 100%.

Alternatively, if only certain games are quiet, while in Desktop mode, launch the game having audio issues. Without an external keyboard, the next step may be tricky - but you need to get back to the Desktop while the game is still running. If you use Steam + X, you can trigger the on-screen keyboard (occasionally, may take a few presses) - revealing a running task bar. While the task bar is visible, tap on the Audio Volume status icon with your finger (the cursor will likely not visibly move with any of the trackpads) and switch to "Applications". Check to see if you've lowered the volume of the specific game you're playing or possibly muted it.

Random shutoffs and BIOS settings

You can get into the BIOS settings of your Steam Deck by turning it off, then holding down the Volume+ button while powering it back on. The reason I know about this is because there's an apparently semi-common problem where you might find your Steam Deck randomly turning off. In my situation, it's after the device was sleeping and charging, I unplug it to start using it, and then start downloading something (often times it's a shader update). I think what's happening is the Steam Deck is improperly calculating remaining battery (in some of these situations). The reason I think that is because apparently some people have called into Valve support, which has in turn recommended the end user boot into the BIOS settings and then put the Deck into "battery storage mode" under the Power settings section.

Because the point of this mode is for long term storage of the Deck (as far as I can tell), the text of the option says that the battery needs to be low/discharged down to something like 20% and that it requires a charging cable to power it back on. The people in the various reddit threads and similar that I've found discussion about this option apparently are using the option without discharging first - so I'm guessing it's likely resetting the battery calibration in the process. I haven't used this setting yet myself, just documenting that it exists.

Update: Tried it out. Still didn't fix my unexpected shutdowns. The hunt continues.

Update 2: Picked up a tip that having Remote Play enabled can cause shutdowns on wake like this. Turned it off - so far seems to be working?? 🤞

Update 3: Nope - problem persists. Pretty sure this is a hardware issue on my Deck, but feels minor enough to not send it in for service.

Games unable to launch (immediately exit and return or take infinite time to launch)

If you find yourself in this situation, it may actually be the Proton runtime that you need for that game is in a bad state. If you go into gear menu for the game and select Properties... -> Local Files, you can choose to "Verify Integrity of the game files", which in addition to checking the files of the game itself are present will also apparently check and reinstall the Proton environment for it (of which you may have several, so if this fixes one game it may not fix others and you may need to repeat this step).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment