My Steam Box: A Game Machine And More

February 19th, 2013 --


My Steam Box: A Game Machine And More

The following is a step by step guide in creating your very own Steam Box and Home Theater PC all in one. It is a synopsis of hours and days of trial and error culminating to my current preferred setup. Those who watch buy consoles, those who do build Steam Boxes.

Part 1: Steam is just the beginning

Forcing a PC  to act like a console in not usually the most user friendly experience in the world, it never has been. Luckily, Steam’s Big Picture mode offers much of what you need for a console gaming experience including launching games, chatting with your friends, and even using a web browser.

steam logoFor the purposes of my Steam Box I am running Windows 7, but as a recommendation it would be better to use Windows 8 due to it’s much  faster boot time and general speed improvements.  I chose Windows over a more recent development – Steam for Linux –  because of the current controller support on Windows and more up to date drivers. The hardware for your Steam Box should be small and quiet enough to fit in with your other TV boxes. I use an old laptop which contains a dedicated video card that was quite powerful for gaming at the time of its release – and it is still very capable. You may also choose to build a custom PC to fit in a small case of your choice. Connect your PC to your TV with an HDMI or DVI cable. I have found that VGA works quite well too, even at HD resolutions. If you are not using HDMI or your HDMI does not transmit audio you can simply connect an audio cable from your headphone jack to the PC Audio In port on your TV.

After Windows is setup install Steam and create a shortcut on the desktop. In the properties of the shortcut add “ -bigpicture” to the target field. Copy this shortcut to your user startup folder at “C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” so it will run when your computer starts. As with any computer make sure to run all Windows updates, install security software like Microsoft Security Essentials (it is Windows after all) , and install the latest drivers for your video card. For Nvidia cards you may want to try out GeForce Experience – the latest way to update drivers and install graphics settings profiles for supported games. Next, you will want to bypass the user login screen on boot. Check out this tutorial to do just that. In my setup I have also modified the Windows Power Options to never sleep. An alternative to this is to set how long you want the computer to stay awake and then disable “Require a password on wakeup“.

You should never have to use a keyboard or mouse once your box is set up. Search through your drawers or rush to your nearest electronics store and pick up an Xbox (with PC adapter), or any other XInput enabled PC controller. I personally use the Logitech Wireless Gamepad F710. Using an XInput controller ensures maximum compatibility with the latest games, meaning all of the games Steam has labeled controller supported in Big Picture mode. The F710 allows switching between XInput and DirectInput for even more customization including profiling.

Steam Big Picture mode works perfectly with XInput controllers right out of the box. But if it does not, you may have to enable your controller in the controller settings. It should also be known that while Steam has labeled many games as having only partial support, these usually only requires a changing of a setting to “use Xbox controller” to work perfectly. Even more than that, several games that are able to be used with controllers may not be labeled, so search online before you give up hope. An example of this is Assassin’s Creed 2 which by default works with XInput controllers but can be made ever better with a small modification in the control mapping simply by extracting the linked files to the executable’s directory. The only thing that makes this game not keyboard operable is Uplay, so I do have to get up and use the track-pad/keyboard in this case.

Part 2: Make a HTPC with XBMC (Oh, and the ultimate ROM player)

xbmc controller tvNow that you have a PC that boots and loads up Steam Big Picture mode you may want to make it even better by setting it up to be a fully-fledged home theater PC (HTPC). This is most commonly done by a program called XBMC. After install, the first thing you need to do is be able to navigate it with you controller. Since XBMC 12 Frodo support for Xbox (and other XInput controllers) is built in. But if you are like me and are using a previous version of XBMC, or your controller just isn’t working try out this keymap by saving the linked Pastebin file, renaming it to “gamepad.XML“, and placing it in your “C:\Users\%USERNAME\AppData\Roaming\XBMC\userdata\keymaps” folder. Assuming everything is right with your XBMC setup have some fun organizing and scraping your media before moving on.

ROM collection browserNow to get a little crazy. What if you are tired of the modern games offered on Steam, and want to play some of the classics you already own, but just don’t want to dust off that old console to play? You may have heard that ROMs and emulators are exactly what that is for. To get started install the XBMC plugin ROM Collection Browser. Now, download all the emulators you need. For NES I use Nestopia, for SNES ZSNES, for N64 Project64, for PS1 ePSXe and for PS2 PCSX2. Most of these emulators don’t need to be installed. Just make a folder for each in your documents folder, on your desktop, wherever, and copy all the files there. Inside those folders make a folder called Media which ROM Collection browser will use to store thumbnails and other information, and a ROMs folder. Copy your ROMs to these folders now, I won’t ask where you got them. In ROM Collection Browser you will make collections for each of your emulators. Create a new collection, select the console you are making it for, and direct it to the location of your emulator’s .exe file. Next it will ask you for emulator parameters. you should refer to the Advanced Launcher Wiki for the best settings. For example, for Nestopia I would stick with the default “%ROM%”. Next it will ask for the location of the ROM folder (which you created), then a file mask. The file mask tells ROM Collection browser what type of files to look for. Sticking with the example of Nestopia the Wiki page states the ROM extensions are .zip and .nes. Therefore you would need to enter “*.zip,*.nes” (the stars and the comma in between are both important). Next you will select the location for artwork, set that to the Media folder you created for the emulator. Finally, you may choose to add another collection or move right on to scraping. If your ROMs are named correctly this process can be quite automatic, if not it can also be done in a more manual way. Scraping may take a while depending on how many games you have.

Before you can play any of your games the emulators themselves will need to go through a bit of setup. You will need to set up your controller of course. You may map the buttons in any way you wish. I prefer to make it as accurate to the original gamepad as I can on my controller. You should also refer to the specific instructions given on the Advanced Launcher Wiki page page in terms of settings you should change. You will want the emulator to automatically go full screen. You may also want to change the resolution.

Important: Some emulators have issues with closing and continue to run in the background when you try to close them. PCSX2 has this issue and it is documented how you can fix it using a script with a program called AutoIt on the Wiki page. Be sure to to change the locations of the programs to match those on your computer, and I recommend changing the terminate hotkey from “{ESC}” to “!{F4}” for ALT-F4. This script should be compiled using Aut2Exe included with the AutoIt download. I have found that ePSXe also has issues with closing, so if you wish to use that emulator you will need to create and compile a script for that as well. Finally in ROM collection browser set the emulator .exe file to the compiled script you created (copied to the emulator folder) as opposed to the emulator itself.

joytokey default configNow you should be able to open all the emulators you want through ROM Collection Browser, but you will only be able to close them using your keyboard. What I did was download a program called JoyToKey. Also a standalone program, I placed the file inside a folder in my Documents folder. Set it up by mapping a button on your controller to send ALT+F4 to your computer. I chose to use an obscure button on my controller that I am not using on my emulators: the right stick button. Later on we will make this program start with XBMC using a script. Finally, I downloaded a program called AutoHideMouseCursor. Place the program wherever you wish and set the time in which you want the cursor to disappear. I set it to 5 seconds. This will be used to hide the mouse cursor while playing emulators. This seems to be an issue on Nestopia among others.

Part 3: Switching Back and Forth – Apps,  Scripts, and a Little Bit of Magic

Currently your Steam Box boots into Steam but you cannot transition to XBMC with your controller. What I did was create a link to XBMC in Steam by adding  a “Non-Steam Game”. Currently I have not found a way to do this in big picture, so it will have to be done in regular Steam. Unfortunately for this setup, just making a link to XBMC it not what I needed. When running XBMC I need JoyToKey and AutoHideMouseCursor working, but not in Steam. I have created a script that will start these programs and XBMC and bring XBMC to focus. Get the XBMC Launcher here, save it as XBMCLauncher.au3, modify it as needed, and compile it to a .exe. Instead of adding XBMC itself as a Non-Steam Game add the program you created. Finally you can set the image for this shortcut to whatever you wish.

autoit logoNow in XBMC we need a way to get back to Steam. First, install the Advanced Launcher XBMC plugin. Create a new launcher and direct it to the compiled .exe of the following script: Steam Return. Save, modify, and compile this script as before with AutoIt’s Aut2Exe. This script will close the three programs that were running above Steam and refocus it. Add a thumbnail for this launcher if you wish, and now you will finally be able to move back and forth between Steam Big Picture Mode and XBMC.

Part 4: Finishing Touches

Just as a habit of computer maintenance, after everything you need is installed and set up I would run Windows Disk Cleanup to delete any unnecessary temporary files and then run a Disk Defrag on my drive. This is important as games may end up being spread across the drive as they are so big.

Part 5: Conclusions

After many different ways of setting this up: Booting to XBMC first, different variations of scripts, etc., I find this methods to be what I am going to stick with. However, that is not to say there aren’t problems:

  • When launching XBMC you can not use the Steam overlay as if you created a shortcut to XBMC directly. This could be a deal-breaker if you enjoy being interrupted while you watch movies. It is unfortunate that you can’t use the web browser while watching movies though…
  • It’s not completely user friendly. It is 100% controller usable if used correctly but a small move such as closing Steam or XBMC as opposed to using the appropriate launchers can mess things up. If I were teaching someone I would just tell them to turn it off and on again if they encounter any problems.

With this setup anyone can be proud to say that they are a PC gamer, even if they sometimes enjoy games on a big screen with a controller.

Tags:  , , , ,