Steam

Steam

125 ratings
How to launch emulator games from Big Picture
By cunningmunki
**UPDATE 04/10/18**

IGNORE THIS GUIDE! I wrote this a while ago and since then I've realised the best way to play emulator games via Steam, and allow access to the Steam overlay and controller configurations, is to RUN THE LAUNCHBOX 'BIGBOX' UI AS A NON-STEAM GAME. This allows you to create a controller config for BigBox that will then persist throughout ALL the games launched from BigBox, regardless of the emulator. Coupled with Retroarch, this makes for a clean, consistent experience across all platforms, and no need to mess about adding hundreds of non-steam applications. Sure, you have to use two UIs to launch games, but the benefits are HUGE :-)


This is a guide to the most popular methods of getting your ROMs added to Steam as individual games and allow you to launch them directly from Big Picture (rather than launching an emulator and then selecting a game).

My aim is to make a consolidated guide in an attempt to clarify the methods available and dispel some misconceptions.
   
Award
Favorite
Favorited
Unfavorite
Method 1 - Use 'Ice' for Steam
When it works, Ice can make the process of adding ROMs and ISOs to Steam a lot less time consuming.

How it works:

Ice [scottrice.github.io]is a script that directly edits Steam's shortcut .vdf file (which stores all of Steam's shortcut paths for non-Steam games). You tell Ice where your emulators live and where your games live and then let it do its thing. It sounds simple; and in principle, it is.

Ice has no UI, so it's a manual setup process that requires a fair amount of editing of config files. There are instructions[scottrice.github.io] and FAQs[scottrice.github.io] on the website, but they are woefully brief and don't really explain what Ice does, which would probably help when it comes to troubleshooting.

The lack of transparency about how Ice works has led to a common misconception that Ice is a front end of sorts, or is in some way responsible for launching the games, when all it does is create the necessary shortcuts within Steam (which can be done manually, as shown in Method 2).

The online setup guide doesn't prepare you for the variety of issues you can run into, and assumes you're creating your game folders from scratch (which most users probably aren't). There's also no guide to the various command line arguments you need for each emulator or which emulators are supported.

Rather than follow the guide you can just point Ice's config file to your existing ROM folders, but you have to make sure you get it right first time. Multiple runs can create duplicates in Steam, which makes adding additional games problematic as you have to delete duplicates one by one. Also, Ice is a bit picky about special characters and can fill your Steam library with lots of junk if you point it at the wrong directory.

Having said all that, it's very well supported and those for whom it's worked seem to love it.

Pros:
  • If it works as it should it will save you hours creating your own shortcuts in Steam
  • It has an image scraper that will also automatically add grid images to Steam, instead of having to add them manually one by one
  • Excellent support. Scott (its creator) responds to questions, problems and suggestions and there's a whole load of other users who can help if you get stuck
Cons:
  • Doesn't work for all emulators
  • Lots can go wrong; the error messages can be baffling or undecipherable to most users and troubleshooting is tough
  • The online guide is too brief and doesn't cater for people with existing libraries of ROMs
  • Lack of emulator-specific guides
  • Although running Ice itself is quick, the preparation of reorganising your library for the script to work and renaming your files for the image scraper to work can take a very long time
Method 2 - Add the shortcuts manually
Many assume that Ice is the only way to configure emulator games to launch from Steam, but it's actually just an automated way of editing Steam's shortcuts, which you can do yourself.

Adding non-Steam games is great when you have an executable file to point it too, but not only do emulator ROMs not have exes, but you also need to tell Steam which emulator to use. Fortunately, Steam allows you to edit the shortcut paths, meaning you can just give it the path of the emulator and the game you want it to run. All you have to do is create the shortcut in the first place.

How it works:
  • Create a shortcut in Steam by pointing it to the .exe for the emulator you will launch the game with (you can create shortcuts from any old executable, and edit them later, but using the .exe for the emulator is half the shortcut you'll need to launch the game)

  • Right click on the shortcut in your Steam library and choose 'Properties'

  • Under where it says 'Target' you will see the path to the emulator (if that's what you used for your exe), all you need to do is then add the path to the ROM after the path to the emulator, like so:

    "C:\Emulators\N64\Project64 2.1\Project64.exe" "C:\Emulators\Games\N64\Banjo-Kazooie (Europe) (En,Fr,De).n64"


    An example of a Steam shortcut properties window

  • The 'Start in' will have the folder path of whichever .exe you used, but it's not important and leaving it blank doesn't seem to cause any problems.

  • Go to 'Grid' view in Steam (under the 'View' menu), right click on the shortcut you created and select 'Set custom image...' - add an image. (Steam Banners[steambanners.booru.org] has a great selection of grid images, including many by myself :-))



  • That's it. Well, almost...

There are a few emulators that need some additional command line arguments, to either work properly or just to make the launch a bit more seamless. Here are some examples, most are optional but some are required:
  • MAME (no need for the ROM path, just tell it the ROM name)

    "C:\Emulators\Arcade\MameUI64\Mameui64.exe" 1942.zip -autosave -skip_gameinfo -nowindow
    ('-autosave' saves the gamestate on exit, the others are self explanatory)

  • PCSX2

    "C:\Emulators\Sony Playstation 2\pcsx2-v1.3.1\pcsx2.exe" --nogui --fullscreen --fullboot "G:\Emulators\Games\Playstation 2\Legend of Spyro - A New Beginning.iso"
    ('--fullboot' is optional, for those who like to see the Playstation logo before the game launches ;-))

  • ePSXe

    "C:\Emulators\Sony Playstation\ePSXe1925\epsxe.exe" -loadmemc0 memcards\Alien.mcr -nogui -loadbin "G:\Emulators\Games\Playstation\Alien Trilogy\Alien Trilogy.bin"
    ('-loadmemc0' creates a memory card file for the game, which otherwise wouldn't be created)

  • Dolphin

    "C:\Emulators\GameCube & Wii\Dolphin-x64\Dolphin.exe" /e "G:\Emulators\Games\Wii\Donkey Kong Country Returns.wbfs" /b
    (The '/e' loads the file specified directly into Dolphin and the '/b' switch exits Dolphin when you close the game)

  • Stella

    "C:\Emulators\Atari 2600\Stella\Stella.exe" "G:\Emulators\Games\Atari 2600\Adventure.zip" -fullscreen 1
    (Stella is windowed by default, so the 'fullscreen 1' command forces a full screen launch)

  • PPSSPP

    "C:\Emulators\PSP\ppsspp\PPSSPPWindows64.exe" "C:\Emulators\Emulator Games\PSP\Daxter_EUR.iso" --fullscreen
    (PPSSPP also goes windowed by default so requires the '--fullscreen' command to launch full screen)

  • Higan (Include the library path of the sfc file after the emulator path rather than the ROM's path)

    "C:\Emulators\Famicom\higan-accuracy.exe" "C:\Emulators\Emulator Games\Higan Library\Super Famicom\Bust-A-Move.sfc"
I found most of these command lines over at the Launchbox website (thanks Jason!), which has an awesomely comprehensive list[www.launchbox-app.com] of all command line arguments for emulators you may need.

Tips:

Although this method is simple it can be time consuming if you're planning on adding a large number of games, so here are a few tips to ease the pain:
  • Create multiple exes of the same file to start off with (the Ctrl+mouse drag method is a quick way of creating multiple copies). This will save time when adding lots of exes to Steam that you can then edit.
  • Create a text file with all the paths of the ROMs that you can just copy and paste into the 'Target' section of the Steam shortcuts, rather than typing them out one by one. To do this:
  1. Open a command window in the Windows folder where all your games live (shift & right mouse click)
  2. Type the following into the command window:
    dir /s/b >list.txt


    Example of a command window

  3. You'll still need to add the quote marks and the emulator path to each line, but if you're good with spreadsheets then you can just create a quick formula to do it for you.

  4. When you're done, you will have a text document that contains all the paths to the games that you can just copy and paste into each Steam shortcut. All you need to do then is add the images.
Pros:
  • I'm yet to come across an emulator this method doesn't work with
  • You're in complete control of what you add and what you don't
  • A good learning experience about how Steam shortcuts work, which can help if you ever run into trouble or need to move files/libraries
  • Can be used in conjunction with Ice to make additional shortcuts or for those emulators that Ice struggles with

Cons:
  • Time consuming - this method can takes days out of your life if you have a lot of games across multiple emulators
  • If you lose your Steam shortcuts (after a reinstall or another reason) you'll have to do them from scratch (although keeping a copy of the text file with all the file paths, as suggested above, can help with this)
Method 3 - Create independent launchers for each ROM
Instead of putting the file paths for the emulator and the ROMs directly into Steam this method puts them in an .exe file which Steam can then be pointed to.

There are a couple of ways this can be done, but the most effective requires the creation of executable files from batch files.

Mister Slimm's method[misterslimm.wordpress.com] creates a batch file containing the path of the emulator and the game, in a very similar format to that used in Method 2, and then converts it to an .exe.

How it works:
  • Create a new text document anywhere you like. Open it up and write the path to the emulator followed by the path to the ROM, just like in Method 2, but start off with the starting folder path of the emulator (ie C:\Emulators\Nintendo 64\Project64 2.2). Something like this:

    CD "C:\Emulators\\Nintendo 64\Project64 2.2" "C:\Emulators\\Nintendo 64\Project64 2.1\Project64.exe" "G:\Emulators\Games\Nintendo 64\Banjo-Kazooie (Europe) (En,Fr,De).n64"

  • Now select “Save As...” from the 'File' menu, give the file a name, but then add '.bat' on the end (without the quotes) instead of '.txt'. Also, change the 'Save as type' from “.txt” to “All files” as shown below:



  • You should now have a fully functioning .bat file, so just double click it to make sure it works. If it does, it should launch the game.

  • Unfortunately, Steam ignores .bat files if you try and add them as shortcuts, so you have to convert them to an .exe. There are a number of free applications available to do this for you, but thankfully Mister Slimm made his own, which is fast and simple, and available from his downloads page[misterslimm.wordpress.com].

  • That's pretty much it, although you'll need to include the same command lines for certain emulators as described in Method 2. Mister Slimm includes a few of these command lines in his guide, but you can also use the Launchbox 'Emulator settings' guide [www.launchbox-app.com] to deduce what additional commands you may need.

An alternative method that many people use is very similar in principle but points Steam directly to the .bat file by pointing it first to a dummy .exe and then manually editing the path in Steam. This method is detailed in DrBaronVonEvil's guide.

Unfortunately, this method has a number of compatibility issues with Big Picture, first and foremost being that Steam Overlay doesn't work, but it's a good example of an another method.

Pros:
  • If you ever have to reinstall Steam or your Steam shortcuts are accidentally wiped, (which can happen) setting them up again is simple. Steam will also remember any grid images you have linked to the shortcuts (they are stored in the cloud), which is a massive bonus!
  • Exe files can be launched by anything, not just Steam.
  • If you ever need to set up the shortcuts on another PC, you can just copy the launchers over (as long as you keep the paths identical on the other PC).
  • This method is 100% future proof against any potential changes Valve make to how shortcuts work, since it's the .exes that are launching the games, not Steam.
Cons:
  • Also very, very time consuming. Even more so than Method 2 since you have to create the .bats, then the .exes, then the shortcuts. However, when you consider the amount of time you will spend troubleshooting, reorganising and renaming you library in order to get Ice to work, it's probably worth spending the time creating your own launchers.
Using the Steam Controller
Valve's Steam Controller is an extremely versatile input device, and as such is perfect for playing emulators especially if you're launching them from Big Picture.

However, not all emulators play nice with the Steam Controller, so I've compiled a few guides to help users get the controller set up with most of the main emulators that cause problems.

The guide can be found here.

19 Comments
Smeash_Bandit Nov 1, 2018 @ 4:50pm 
@KOOL_AIDS

I've noticed this as well with MAME shortcuts. Even with steamlink it still crashes. Were you able to find a fix?
Lexi Chomps May 30, 2018 @ 8:47am 
So how would I go about using this with RetroArch, as I did method two, pointing it to Retro Arch, but it doesn't want to launch.
remi Apr 8, 2018 @ 5:36am 
@Chompman

Weird, it should be working just fine :/

I set it up manually like this:
"C:\Emulation\PSP\PPSSPP\PPSSPPWindows64.exe" "C:\Emulation\PSP\Games\Monster Hunter Freedom Unite (U).iso"
Aidan Mar 31, 2018 @ 2:03am 
PPSSPP didn't work. :(
RobinVista Feb 28, 2018 @ 6:37pm 
Are Emulators allowed on Steam?
Oscillating Bitches Jan 26, 2018 @ 8:34pm 
Anyone know how to get roms to launch with mupen++?
Rexen² Aug 22, 2017 @ 4:45am 
its no longer \e its now -e
Rexen² Aug 22, 2017 @ 4:45am 
Nogs Jul 14, 2017 @ 1:21pm 
My only problem is the no gui. Some games need software mode, some need other fixes. Is there a game specific control set in PCSX2 that you know of? And great fucking guide
Atilla ☪ Jun 29, 2017 @ 7:38pm 
Kawaks emulator için yapılacak kısayol ayarlarını da biliyor musun ?

Do you know the settings for the shortcut to be made for kawaks emulator ?