Tutorial  Updated

An Extremely Noob-Friendly Guide to Playing Steam Games On Switch (Please Read The Forward)

Okay, so until this guide gets removed, some backstory.

I created this when I was screwing around with Bionic, and had very little clue on upgrading L4T Linux. Basically, I just pieced together info I got from nvidia support threads, along with whatever I could find from any other source. I haven't really though about this guide in a bit, but I came across something better and forgot about the post I made. While this "technically" worked back in the Bionic days before I realized there was a Discord, it's been brought to my attention that this method can be risky for some users (not to mention, it doesn't work at all on Jammy anyway). That being said, until TheOfficialGman gives the all-green to nuke this thread, I'll leave this info here: DO NOT FOLLOW THE GUIDE IF YOU HAVE IT BACKED UP! IT IS OLD, OUTDATED, AND EVEN WHEN IT WASN'T, IT WAS/STILL IS RISKY!
Instead, I'll leave the link to the switchroot discord, although you can find it easily on the switchroot wiki pages (don't know how I missed it the first time):

https://discord.gg/53mtKYt
https://switchroot.org/
 
Last edited by TiredNModding7,

banner88

Active Member
Newcomer
Joined
Aug 16, 2005
Messages
36
Trophies
1
XP
507
Country
Can you give an example - e.g. for Dark Souls 3, what is the process after installing it from Steam? How do you add flags? Do you launch it from command line, or via Steam? Thank you!
 

TiredNModding7

Member
OP
Newcomer
Joined
Sep 3, 2023
Messages
20
Trophies
0
XP
76
Country
United States
Can you give an example - e.g. for Dark Souls 3, what is the process after installing it from Steam? How do you add flags? Do you launch it from command line, or via Steam? Thank you!
I'll add this in later, but it's the same for both flags and launch options. You can find the info in the simpler-website link, but for the sake of expediency, I'll describe it here. Installing works exactly like normal; right click install, or double click to install. As for launch options, right click on the game, and go to properties. As soon as you do, you'll be in the general tab. On the bottom of that tab is the "launch options" section. From what I understand, both flags that you usually add onto .exe's and regular launch options can be added here. I just did a quick search, just in case I remembered wrong, but this does seem to be the case:

https://help.steampowered.com/en/faqs/view/7D01-D2DD-D75E-2955

Funny you should mention Dark Souls 3; I have a score to settle with that game. I've been trying to get that pain-in-the-neck to work for a while, but no luck. If by chance you're thinking of trying yourself and you get it to work, let me know. I'd be ecstatic if someone got it to work. It is x64, so i would have thought it would work, but no luck on my end so far. Also just as a side note, games are found in a directory called ".steam". you'll need to enable viewing hidden files (option on right hand sidebar in file viewer/explorer equivalent, or control-h). The full directory is (from the home folder) /.steam/steam/steamapps/common.
 
  • Like
Reactions: banner88

banner88

Active Member
Newcomer
Joined
Aug 16, 2005
Messages
36
Trophies
1
XP
507
Country
Thank you, this is very cool. I got Dark Souls 2 to start usine WINED3D, which is borderline playable (around 10-15 FPS) - pity DXVK doesn't seem to work.
 
Last edited by banner88,

Askmin

Member
Newcomer
Joined
Apr 28, 2020
Messages
6
Trophies
0
Age
29
XP
51
Country
United Kingdom
Hey, that's a really good tutorial, you did an awesome job!!

Btw, I tried launching Hi-Fi Rush after completing the tutorial and it just says "running" on Steam and then quits... Does anyone know of any settings to try?

I also tried changing some settings on my own but none of them worked.

Thanks in advance!
 

TiredNModding7

Member
OP
Newcomer
Joined
Sep 3, 2023
Messages
20
Trophies
0
XP
76
Country
United States
this is using box64 rigtht? that is slowww
From what I understand, it uses a combo of box64/86 in order to install a Linux version of Steam. Then, in order to play PC games on Linux, Proton (which if I remember right is a fork of Wine) is utilized. That being said, while it's needed for running Steam alone due to being on an AARCH64/ARM64 system, that means having to work through multiple compatibility layers, so speed is definitely going to take a hit regardless.

Hey, that's a really good tutorial, you did an awesome job!!

Btw, I tried launching Hi-Fi Rush after completing the tutorial and it just says "running" on Steam and then quits... Does anyone know of any settings to try?

I also tried changing some settings on my own but none of them worked.

Thanks in advance!
I've had that problem in a couple of games. Compatibility is kind of hit-or-miss at this point, but there are some possible workarounds. If you right click on the game, and properties, you'll see the general tab. In the original post, there's a section that talks about "launch options". You can try using the "PROTON_USE_WINED3D=1 %command%" launch option (no quotes), and see if that works (or fool around with other launch options found in one of the links provided). There's also a compatibility tab, where you can try making that specific game run in another version of Proton. On that note you can also look into ProtonGE, which has other Proton versions that might work, though I'd recommend forcing compatibility rather than changing Proton's all-over version (just in case things don't work out). In all cases, your mileage will vary (in all honesty, some games will just not work, or be stuck in a "launching" loop). I think further down the road, the Switchroot group may find some more managable way(s), but until then, that's all I could find.
 

Randomguylol

Active Member
Newcomer
Joined
Aug 10, 2023
Messages
25
Trophies
0
Age
25
XP
105
Country
United States
Foreword:
Okay so I know there's already a guide posted for this by Randomguylol, but I noticed several things missing, and there was confusion on the part of the people attempting to do this. Since I had already done this myself, and had experience with the confusion moving from mainly using Windows to using an aarch64/arm64 build of Linux, I though I may be able to create a more noob-friendly guide based on what I already had done with my Switch. Mind you, by noob-friendly I mean I get as specific as I can so there's no confusion as to what needs to be done, so this is going to be really long. That being said, this will be an easy-as-possible-to-follow guide on how to install and play Steam games on Switch. Credit to Randomguylol for the upgrade fix found in their version of the guide, and Geekerwan for some extra stuff I didn't know about upgrading on Switch.

If you want to look at Randomguy's version (it's a lot shorter), here's the link:
https://gbatemp.net/threads/how-to-run-steam-on-the-nintendo-switch.638062/


Other sources of help were:
  • Nvidia for keeping pretty good records of different issues and tickets that were sent concerning problems with L4T, and how to upgrade/fix it.
  • GBATemp for some other pieces of info that helped move this along; thanks everyone!
There are a few prerequisites that you'll need, and a few things to go over:
Warning: This is going to be a looong one.
This guide was created by me messing with my 2017 launch version of the Nintendo Switch, and may not work for the OLED model.

Common terms to know:
1. Terminal: a command line for Linux, somewhat like Powershell is for Windows
2. nano: a text editor
3. sudo: the administrator privileges command, allows running commands as "admin" (or rather, the Linux equivalent)
4. apt, apt-get: allows using commands related to sources (where you get drivers/software from), with varying degrees of utility (we'll be using apt for the most part here)
5. swapfile: a file used to supplement ram/memory, albeit much slower than ram. Similar in function to (if not outright the same as) the pagefile in Windows


Early Note: You will be using Steam Proton which to my understanding, already has DXVK, so you may not need to install it (I didn't, at least)

Final thoughts before moving on: If anyone has fixes, or anything to add that will help in making Steam games work on Switch, feel free to mention them! Every bit helps. Although a long-shot, if enough work is put in, I can see the switch becoming a budget alternative to the other more capable (and expensive) steam deck competitors. Again, it would take a lot of work, and it would be a longshot, but it would be nice.

What you'll need:

Hekate bootloader for switch (latest version preferred)
Git Page: https://github.com/CTCaer/hekate

Switchroot Linux 18.04 Bionic
Install directions: https://wiki.switchroot.org/Linux/Ubuntu-Install-Guide
Linux Distros: https://wiki.switchroot.org/en/Linux/Distributions

Note: The reason I'm not suggesting Jammy is due to it being in beta. Focal is also unsupported/discontinued. You can try Focal, but Bionic is the most stable supported distro.
An SD card to run all of this stuff (16GB is said to be the minimum for Linux; I'd recommend 128GB if you're going to experiment with games)
Patience; sometimes Linux on aarch64/arm64 can be frustrating; especially for those new to Linux.


Directions (Initial Setup):

1. Set up Hekate as per the guide on the git page
2. Set up Switchroot Linux as per the Switchroot Wiki's install directions
Optional, Recommended: Dock your switch once Hekate and Switchroot initial setup is done, and once you attempt to boot into Linux (Select the "more configs" option in Hekate).
Plug in a usb hub with mouse and keyboard connected; it makes it easier to work with.

3. Once set up, boot into Linux and set up your user account
4. Once finished, go through the "Welcome" popup (I recommend not sending anything to Canonical).
5. Look on the left side. There should be an icon called "Terminal" (hover over for names, for non-linux users, it's sort of like powershell). Click it.
6. Type in the following "sudo apt update && sudo apt upgrade"; this will update and upgrade the system to the latest it can be at present. Just type y and press enter for any choices. Go to the top right and restart the system (power icon).
7. On the top left, there is an icon that allows for searching apps. Search for L4T. The L4T Megascript should be present. Click it. This will have a lot of what we will need.
8. Allow it to go through it's usual stuff, answer prompts when asked. Go to the selection, and choose Pi-Apps and the auto-updater if they aren't already selected. Install them. You will also get 2 prompts when attempting this; remove unused apps and remove canonical's proprietary store. These are up to you, but I usually say yes to both.
9. Look for Pi-Apps (either on the desktop or the top left search icon) and open it. It will likely ask for your password for security reasons. There should be a search icon on the interface. Use it, and search for wine. Install wine64 when you get the chance. This will install a version of Wine64 for tegraX1, along with box64.
Note: From my understanding, you can also just install steam from the L4T Megascript first, but I've had compatibility issues when doing that.
10. Once finished, go back to the L4T Megascript. Deselect Pi-Apps, and search and select Steam. Install it as you did the other L4T Apps. DO NOT RUN STEAM WHEN IT IS DONE! RESTART YOUR SYSTEM FIRST!


Directions (Steam)

Technically at this point you can run Steam and have it play some games, but you will be doing so with an old Nvidia driver and version of Vulkan. There is a way to update these, but there are some stability issues that may pop up. For those who want to try, and this is their first attempt, please use version 32.4 when going through the guide (you'll see what I mean). Every time I tried 32.7 (including Randomguylol's directions), it caused my screen to freeze on reboot, so keep that in mind if you attempt to use 32.7.


Initial Steam Setup: Upgrade Drivers and Vulkan (optional, highly recommended):

1. Go to terminal again. Type in the following: sudo apt install nano (if your updates and previous installs didn't add it, this will)
Q: What is nano?
A: Nano is a text editor that is a bit easier to use than others on Linux. You'll need it to alter specific files for the upgrade.

2. When finished, type in the following: "sudo nano /etc/apt/preferences.d/00-switch-bsp-restrictions". Entering this will allow you to edit the "00-switch-bsp-restrictions" file placed by the Switchroot group. This file disallows upgrading since it has a negative effect on stability, depending on which one you do. Erase the lines pertaining to 32.4 (Note: starting at 32.5, there is a file that may be needed, but not present on the system. You will need to add this file if you are upgrading past 32.4, or your system will break). Hold control and s. Then control and x. This will save the file, and then exit.

3. Next, type in "sudo nano /etc/apt/sources.list.d/nvidia-l4t-apt-source.list". This details the version that's used for the upgrade. Add ".4" to the end of 32 in both lines. ex: 32--->32.4, easy enough. Save and exit.
4. This next part is owed in thanks to "Randomguylol" on these boards; not sure, but I think they found a fix to a persistent problem I had that I was only partially able to fix at the time:



5. Update using sudo apt update. There shouldn't be any prompts, but say no to any that may show up.
WARNING: The following is one of the missing pieces I mentioned earlier, and is essential to the upgrade:

6. In order for the upgrade to properly take place, you need to use this command: "sudo apt dist-upgrade". I believe this step was accidentally skipped over in the other guide by Randomguylol. Answer "n" to all prompts (I say this in case the system tries to replace something, and that causes an issue. I didn't notice anything when i answered y, but it's best to be safe. )

7. IMPORTANT: If afterward, even after you apply Randomguylol's fix you get many errors, apply the following commands:

1. sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/backup/
2. sudo mkdir /var/lib/dpkg/info/
3. sudo apt-get update
4. sudo apt-get -f install
5. sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/backup/
6. sudo rm -rf /var/lib/dpkg/info
7. sudo mv /var/lib/dpkg/backup/ /var/lib/dpkg/info/

Restart the system; it should be mostly fixed now, with at least far fewer error messages.
Next, we need to add tegra stats. This will allow you to check the version of Vulkan, as well as see some other statistics (this can be installed at any time, really):

1. sudo apt install python3-pip (note: if you've followed the guide until now, python3-pip may already be installed)
2. sudo pip3 install jetson-stats

To check if it's installed properly, enter the following command: sudo jtop. A gui should appear. To check the Vulkan version, go to the Info tab (number 7). The initial version is 1.1.7x, so you should now have a later version (1.2.7x, or something similar).

When you want to max out the fans and cpu cores, and you have not upgraded, use this command: sudo jetson_clocks
Otherwise, use the same command for cpu cores, and this command to max out the fans: sudo jetson_clocks --fan

jetson-stats (jtop) will keep track if it has been activated or not.

Finally, so that Steam and the games do not eat into the Switch's resources too much, you need to create a swapfile. Enter the following commands:
(note, the letter is a lowercase -L, not uppercase -i, and the letter x is the size you want the swapfile to add to the default. I recommend a value of 7)
1. sudo fallocate -l xG /swapfile
2. sudo chmod 600 /swapfile
3. sudo mkswap /swapfile
4. sudop swapon /swapfile

This will make and activate the swapfile, but it will not be permanent/retained after restart. To make it permanent, type this command:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Restart one last time to ensure it changed. Go to system monitor (search in upper left), and go to resources. The swapfile should be marked by a green square on the left. Now, you can get to setting up Steam.

Setting Up Steam (Proper):


Wine will have already installed box64, and the L4T installer for Steam will have already installed box86 at this point, so no need to worry about those. On first startup, it will likely try and install some stuff that is only available to x86 systems. If it does, let it attempt to and fail (this may happen on more than one startup, if not, lucky you!). Then, using the top left icon, look for system monitor and open it and go to resources. If the memory in use starts climbing, that means steam is starting up in the background; just wait for it.

On the first startup, Steam will attempt to open in the store, and with all of its notifications and stuff. This is pretty bad, since the switch has only 4GB of memory and Steam is a ram hog when it's run through an emulation/compatability layer like box86/64/wine64. Close out the notifications. Steam is going to be a bit laggy, so you're going to need some patience for the next part.


1. Go to view, and click small mode. Wait for small mode to pop up; it may take a while.
2. Go to steam, and then settings.
3. On the interface tab, change startup location to library (this will help keep Steam in small mode). Deselect/disable the following, but do not restart yet if it asks:
  • Enable smooth scrolling in web views
  • Enable gpu accelerated rendering in web views
  • Enable hardware video encoding, if supported
  • Notify me about additions or changes to my games, new releases, and upcoming releases
  • Ready to play should include streamable games (only de-activate if you want to test local-only gameplay so that your pc won't interfere if you have one)

4. In the library tab, select small as the library size, and enable low performance mode
5. In the compatibility tab, activate "enable steam play for supported titles" if it is present, as well as "enable steam play for all other titles". Steam will ask to restart. You can allow it to now.
6. Unfortunately, it will actually shut down completely. Open steam up, ignore warnings, etc.
7. At this point, you should be able to play pc games on Switch. Steam Play uses Steam Proton, so you shouldn't need to install DXVK for games to work. Unfortunately, it has been brought to my attention that x86 (32 bit) games don't work for the most part, but might be coaxed to by using Steam launch commands. I'll leave a site with the commands here:

https://simpler-website.pages.dev/html/2020/12/proton-troubleshooting/

(search for launch options on the page)

Another good tool would be ProtonGE, but your mileage may vary:

https://github.com/GloriousEggroll/proton-ge-custom

There are also some compatibility issues with other x64 games that I couldn't resolve. I'll attach a list of games I've had the time to test, along with launch options and other fixes that may make them work. Many have issues, but the games that work best so far are (in no particular order):


1. Hollow Knight (works off bat althogh controller support is iffy)
2. Cuphead (works with WINED3D launch option)
3. The Talos Principle (Works pretty damn good with keyboard and mouse, and okay with joycons. You need to modify mouse speed and graphics options though, or else the visuals might make you sick)

I'm going to attach the early version of this guide that I made a while back, along with the compatibility list.

ETA: If you're looking for your games in the file explorer, they're in a hidden file. Pressing control-h is the simplest way to view hidden files. The full directory for your games will be (from your home folder) "/.steam/steam/steamapps/common". Also, "flags" can just be added to the launch options section by right-clicking the game you want to add a flag to, and selecting properties. Launch options will be at the bottom of the "general" tab.

Anyway, that's it! For the time being, this seems more a hobbyist sort of thing, but it's still pretty cool to me. Too bad Valve never made a version of Steam/Proton aimed at aarch64/arm64 systems. If they did, we could just use our phones instead.
THIS IS MUCH BETTER 😀😀😀😀😀😀
I suck at explaining things lol
But also if anyone can upgrade to 32.7 then they can use dxvk 😀😀😀 for me box86 works idk why 🤔
 
Last edited by Randomguylol,

banner88

Active Member
Newcomer
Joined
Aug 16, 2005
Messages
36
Trophies
1
XP
507
Country
Is running a game via steam any slower than attempting to run it from outside steam (if that's even possible) - e.g. does it have to keep emulating steam's x86 code while running the game in the background? Can you use proton outside steam a la `wine /path/to/executable` except with proton?
 

Randomguylol

Active Member
Newcomer
Joined
Aug 10, 2023
Messages
25
Trophies
0
Age
25
XP
105
Country
United States
Is running a game via steam any slower than attempting to run it from outside steam (if that's even possible) - e.g. does it have to keep emulating steam's x86 code while running the game in the background? Can you use proton outside steam a la `wine /path/to/executable` except with proton?
Steam takes up a lot of memory so if you run it though the exe file it will be much better
 

TiredNModding7

Member
OP
Newcomer
Joined
Sep 3, 2023
Messages
20
Trophies
0
XP
76
Country
United States
THIS IS MUCH BETTER 😀😀😀😀😀😀
I suck at explaining things lol
But also if anyone can upgrade to 32.7 then they can use dxvk 😀😀😀 for me box86 works idk why 🤔
Hey, thanks! Also thanks for that fix; it made things work much smoother when upgrading. IDK why, but every time I try to upgrade to 32.7 and reboot, the system freaks out (even after applying your fix I get a black screen, connecting to pc reveals that the system's booted up, it's just refusing to display properly); any ideas how to fix this? Nevermind! I just got it to work! It looks like either the method I used to create the .init file was wrong (terminal was being difficult, so I tried using nano the 1st time to create the file instead of touch), or I just had to update/upgrade another time to ensure everything was working; I'll experiment on another microSD to make sure, and I'll add it later on once I can verify consistent working upgrades. Also, DXVK does seem to work sometimes with the other versions, but it's very inconsistent. It would be awesome if I could upgrade so I could have more compatible games; there are a few I have working, but are damn slow on WINED3D. I'm gonna look back at your guide again though; looks like there's some interesting stuff I might have overlooked (specifically, I think you added a cleanup for leftover files, I'll probably add that in at a later time, once I can verify 32.7).

aren't games themselves x64?
Unfortunately, the Steam client itself is an x86 application on Linux and Windows, so it needs box86 to work. On top of which, many games on Steam are actually old x86 games.
 
Last edited by TiredNModding7,

Randomguylol

Active Member
Newcomer
Joined
Aug 10, 2023
Messages
25
Trophies
0
Age
25
XP
105
Country
United States
Hey, that's a really good tutorial, you did an awesome job!!

Btw, I tried launching Hi-Fi Rush after completing the tutorial and it just says "running" on Steam and then quits... Does anyone know of any settings to try?

I also tried changing some settings on my own but none of them worked.

Thanks in advance!
Can you show me the logs?
Post automatically merged:

Is running a game via steam any slower than attempting to run it from outside steam (if that's even possible) - e.g. does it have to keep emulating steam's x86 code while running the game in the background? Can you use proton outside steam a la `wine /path/to/executable` except with proton?
This does work! If the game is payed make sure you do buy it!
Post automatically merged:

Hey, thanks! Also thanks for that fix; it made things work much smoother when upgrading. IDK why, but every time I try to upgrade to 32.7 and reboot, the system freaks out (even after applying your fix I get a black screen, connecting to pc reveals that the system's booted up, it's just refusing to display properly); any ideas how to fix this? Nevermind! I just got it to work! It looks like either the method I used to create the .init file was wrong (terminal was being difficult, so I tried using nano the 1st time to create the file instead of touch), or I just had to update/upgrade another time to ensure everything was working; I'll experiment on another microSD to make sure, and I'll add it later on once I can verify consistent working upgrades. Also, DXVK does seem to work sometimes with the other versions, but it's very inconsistent. It would be awesome if I could upgrade so I could have more compatible games; there are a few I have working, but are damn slow on WINED3D. I'm gonna look back at your guide again though; looks like there's some interesting stuff I might have overlooked (specifically, I think you added a cleanup for leftover files, I'll probably add that in at a later time, once I can verify 32.7).
Yay it works!!! :O :D yeah I might have added some cleanup for the files. Make sure you install the NEW flatpack drivers :D
Post automatically merged:

I also add some games to the Compatibility List here it is!
 

Attachments

  • Compatibility List.txt
    3.5 KB · Views: 96
Last edited by Randomguylol,

Gheovgos

Member
Newcomer
Joined
Sep 8, 2023
Messages
15
Trophies
0
Age
23
XP
131
Country
Italy
Hi, I tried to download and run Oblivion from Steam, but it says "Only for Windows". How can I run stuff using box64+wine ?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    I wonder how many Broncos fans cellphones Kelsy's brother will smash today.
  • DragonMals @ DragonMals:
    he's
  • Faust03 @ Faust03:
    twitter is a very toxic website
  • K3Nv2 @ K3Nv2:
    Nuh uh
  • DragonMals @ DragonMals:
    An underrated opinion: While Bluesky as a platform is better than Twitter, Bluesky's userbase won't be better than Twitter as people are saying because everyone from the non-bootleg site are moving to the bootleg one expecting for themselves to change with their attitude, but that never works like that.
  • DragonMals @ DragonMals:
    I will say though: Bluesky as a micro-blogging site? Needs a bit more oomph and I would officially like it better than Twiter. Can't even post gifs on that site, like what the fuck?
  • K3Nv2 @ K3Nv2:
    Diarrhea is toxic
  • BigOnYa @ BigOnYa:
    Can you post milfs though?
  • K3Nv2 @ K3Nv2:
    Gilfs
    +3
  • BigOnYa @ BigOnYa:
    Kilfs. (Ken knows)
  • K3Nv2 @ K3Nv2:
    Gay
    +1
  • NinStar @ NinStar:
    fake and gay
    +1
  • K3Nv2 @ K3Nv2:
    Fake news is hot
  • realtimesave @ realtimesave:
    hey guyz
    +2
  • SylverReZ @ SylverReZ:
    @realtimesave, I'm here. Why?
  • SylverReZ @ SylverReZ:
    Have you found anywhere else to sell your Switch OLED?
  • SylverReZ @ SylverReZ:
    Ello :)
    +1
  • Xdqwerty @ Xdqwerty:
    @DragonMals, Yeah one is gonna have the same attitude in any site no matter what
  • Xdqwerty @ Xdqwerty:
    @SylverReZ, how are you?
  • SylverReZ @ SylverReZ:
    I'm okay.
    +1
  • BigOnYa @ BigOnYa:
    I'll buy it, full price, meet me in the dark alley behind that closed blockbuster.
    BigOnYa @ BigOnYa: I'll buy it, full price, meet me in the dark alley behind that closed blockbuster.