Playing PC games on your HDMI-connected TV

 

You are reading the old blog! This post has been moved to http://www.ohadsoft.com/2014/01/playing-pc-games-on-your-hdmi-connected-tv/

 

Many people have a TV connected to their computer via HDMI as their secondary monitor. It is very convenient for HTPC usages, but playing games on the TV can be nice as well (especially when you have a gamepad connected).

The trouble is, most games will only run on the primary monitor, and the only way to get them to run on the TV is to make it the primary monitor. Windows makes this rather easy, but still, doing it manually each and every time before playing can be cumbersome. Fortunately, Michael Welter comes to the rescue with W7ToggleDisplay, a simple command-line tool that does the switching (don’t worry about the name, it works on Windows 8.1 as well). Simply run w7toggledisplay.exe /primary to make the switch.

Another annoyance is in the audio department. Presumably, when you play a game on the TV, you want the audio to come out of it as well (be it through its speakers or through some audio system connected to it). Since HDMI can carry audio, the easiest thing to do is switch the default playback device to the HDMI audio device. Again, this is easy enough to do but a nuisance to do every time. Fortunately, Dave Amenta created AudioEndPointController, a command-line tool that switches playback devices (even though the post mentions Windows 7, I’ve used it on Windows 8.1 without a hitch). First run EndPointController.exe and note the number identifiers for your regular and HDMI audio devices (the X in Audio Device X:). Then Run EndPointController.exe X where X is the number of the device you want to switch to.

Putting it all together

Now that we have all the prerequisites, we can create the following batch file to switch primary monitors, switch to HDMI audio output, run the game, and finally when the game is over switch everything back:

EndPointController.exe X
w7toggledisplay.exe /primary
Game.exe
EndPointController.exe Y
w7toggledisplay.exe /primary

Where X is the ID of your HDMI audio device, Y is the ID of your regular audio device, and Game.exe is the executable of your game.

Steam

Unfortunately, the above won’t work for Steam games, since they are not launched directly via their executable. Instead, they are launched via a special protocol that looks like steam://rungameid/219150. You can replace Game.exe above with start steam://rungameid/X where X is the steam ID of your game (as it appears in the original shortcut). This will launch the game, but the trouble is it won’t wait for the game to quit, switching the audio and display immediately back (the /wait switch doesn’t help). I haven’t found a way around that (if anyone is aware of one I’d be happy to hear), so for Steam games I use two batch files. One to switch primary display and audio, and run the game:

EndPointController.exe IdOfHdmiAudioDevice
w7toggledisplay.exe /primary
start steam://rungameid/SteamId

And then another script to toggle everything back (I give it a shortcut so I don’t have to find the icon on the TV every time):

EndPointController.exe IdOfRegularAudioDevice
w7toggledisplay.exe /primary

Happy gaming !

Advertisements

3 Responses to “Playing PC games on your HDMI-connected TV”

  1. Introducing TvGameLauncher | Programs & Programming Says:

    […] Home of StreamRecorder.NET « Playing PC games on your HDMI-connected TV […]

    Like

  2. 52 Says:

    start /b /wait steam://rungameid/SteamId

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: