Raspi Steam Downloader: How to Download Steam Games with SteamCMD using Raspberry Pi 3
I have a Raspberry Pi 3 and I’ve always been curious, “Is it possible to download Steam games via Raspberry Pi?”. I have searched online, but most of them doesn’t have any answer, since SteamCMD doesn’t run on ARM device. But now, my Raspberry Pi 3 could run SteamCMD smoothly! Below I’ll share with you what I’ve done to make this happen.
Disclaimer: I worked mainly in Art & Design department, and programming is only a hobby — so I was mainly copypasting every script on the internet. If you have better steps, please let me know! While this is a relatively simple steps, I suggest you to make backup since I will not be responsible if something wrong happened (doubt it though, haha).
Here’s what I’ve used to make my Raspi Steam Downloader:
- Raspberry Pi 3 + micro-usb cable & power adapter
- Raspbian image
- Micro SD Card (8GB or more recommended)
- External HDD + Y cable (since most game won’t fit in your micro SD)
- Exagear License (https://eltechs.com/product/exagear-desktop/)
Yes, I am using Exagear which emulates x86 device on ARM. Someone said here that we can use qemu to emulate x86: https://lists.debian.org/debian-devel-games/2016/01/msg00027.html but unfortunately I have tried it and always stuck with segmentation fault error. Another great thing about Exagear is that we could run it from Raspbian. With qemu, we have to add i386 architecture, which is not supported by Raspbian (I tested it with Debian Stretch). The only downside: Exagear is a paid software. I am quite lucky to get Pi Day discount for 20.99$ (formerly 29.95$).
If someone managed to run SteamCMD on Raspberry pi with qemu, please let me know in the comment section!
- Burn your Raspbian image to your SD Card and finish all the basic things (https://www.raspberrypi.org/downloads/raspbian/ for more help on this)
- Boot up your Raspberry, and update your library.
sudo apt-get update
- Now, this is optional but — it really helps when you used SSH a lot: install Screen. Normally, when you do something via SSH and disconnects, the command will also stops. But with Screen, your command will still works even though you have disconnected from SSH. This is really useful for downloading large files.
sudo apt-get install screen
- Next step is to install Exagear. You’ll receive the instruction via email after you have purchased your license (easy-peasy).
- Plug your HDD with your Y-cable — one cable to Raspi’s USB port, the other to external power source . Only plugging one cable to Raspi’s USB port usually will not enough to power large external HDDs.
- Mount your HDD. I am using /mnt/usb as my mount point, but you can change it to wherever you want. My user in this code is pi.
sudo mount -o uid=pi,gid=pi /dev/sda1 /mnt/usb/
- Now, we can start installing SteamCMD. I used Screen here, since it’ll be parallel most of the time. Launch Exagear with Screen by typing:
- You are now emulating x86. It is recommended to run another sudo apt-get update after your first exagear login.
- Install SteamCMD inside exagear. Here’s how you do it based on https://developer.valvesoftware.com/wiki/SteamCMD#Manually :
mkdir ~/Steam && cd ~/Steam
tar zxvf steamcmd*
- Finally, run SteamCMD. You’ll have to download steam update at the beginning, but after that you’re good to go.
Congratulations, you have successfully ran SteamCMD on your Raspberry Pi!
You can go here https://developer.valvesoftware.com/wiki/SteamCMD for the complete documentation, but I’ll share the basic of SteamCMD.
First of all, you’ll need to login if you want to download paid games you own.
After that, you’ll be asked to enter your password and Steam Guard code. To download games, you’ll need to specify your install folder.
For example, I am using /mnt/usb/Steam for my path, which located at my external HDD:
And then, you can start downloading your game with:
app_update [appid] validate
You have to find your game’s appid here: https://steamdb.info/apps/. You can stop the download anytime with Ctrl+C and later start the same command again to automatically resume the download. Neat, huh?
How do I transfer it to my PC?
You just have to copy all of your folder in the Raspi’s Steam library with the .acf file to your PC folder. Here’s some other detailed help if you can’t find your .acf file: https://steamcommunity.com/sharedfiles/filedetails/?id=379830692. Also, you’ll need to create the proper folder on your PC, for example: my download folder for FFXV on Raspi is titled 637650, since it’s the app id. But on my PC, if I’m downloading it directly from Steam client, it’ll create a folder: steamapps/common/FINAL FANTASY XV. So I’ll need to copy all files inside 637650 to my FINAL FANTASY XV folder, copied the .acf according to website above, and redownload FFXV on my Steam client. After a few while, it’ll rediscover my game and add it to the library.
I want to download Windows/Mac games
SteamCMD will recognize your platform as Linux, so you’ll need to change the platform before downloading. Here’s how you change your platform to Windows:
The game is 64-bit only
You’ll also need to change to 64-bit if you want to download 64-bit games. Here’s how you do it:
Just be sure to run this everytime you start SteamCMD, since it doesn’t seems to remember these settings.
Thanks for reading!
This is my first Medium post, so I hope I posted it well. Please let me know if you have better suggestions in the comments section! I am really interested in tweaking Raspberry Pi, and I’ll be very happy to learn new things. Also if you have succeeded using other x86 emulator, please share it with us. :)
I’m hyuei_art at twitter or hyuei at instagram. You can check my web at http://hyuei.tumblr.com , but mostly are illustration-related.