Jump to content
LaunchBox Community Forums

7 Screenshots

About This File

SteamLauncher

logo2_window_256.png

A LaunchBox plugin designed to allow roms/emulators to easily be launched with Steam, directly from the LaunchBox/BigBox interface, without any complicated setup or technical know-how. Simply enable SteamLauncher and all LaunchBox/BigBox game/rom launches will be intercepted and launched via Steam. This will provide access to the Steam overlay, custom controller configurations, and will display the game/rom your are currently playing to any of your Steam friends.

Features

Here are a few of the features provided by SteamLauncher:

  • Allow LaunchBox to do what its good at - be the sole organizer and maintainer of your rom/game collection, without having to duplicate its functionality in Steam (something it was not designed for).

  • Keep the Steam library clean and uncluttered by hundreds of emulator/rom shortcuts.

  • Get all of the benefits of Steam's excellent overlay system while playing any rom or emulator.

  • Take advantage of Steam's infinitely customizable controller configuration (bindings) for both the Steam Controller and nearly all other DirectInput/XInput controllers.

  • Use per-rom/per-emulator/per-game controller configurations that are automatically remembered between gaming sessions (without having to create convoluted Steam shortcuts for every rom).

  • Bypass or improve upon many emulators' extremely limited controller bindings and hotkey options.

  • Share the game/rom currently being played with Steam friends (ex: JohnDoe is currently playing 'Super Metroid (SNES)').

Requirements

  • .NET Core 3.1
  • Steam for Windows
  • LaunchBox/BigBox

Getting Started

Installation

  • Download the latest plugin release from the LaunchBox forum plugin download page. This GitHub repository is meant as more of a resource for developers. While test builds and other pre-release packages may occassionally be posted on GitHub, the latest public release builds will always be posted on the LaunchBox forum plugin download page first:

    LaunchBox Plugin Download: https://forums.launchbox-app.com/files/file/972-steamlauncher/

  • Extract the 'SteamLauncher' directory from the compressed package into your LaunchBox plugins directory.

    Example: If LaunchBox is located at 'C:\LaunchBox', you would copy the 'SteamLauncher' directory to 'C:\LaunchBox\Plugins'. This would result in 'SteamLauncher.dll' and any additional files being inside the directory 'C:\LaunchBox\Plugins\SteamLauncher'.

How to Use

Note: Obviously, Steam must be running to launch games via Steam so one can either manually start Steam before opening LaunchBox/BigBox or SteamLauncher will automatically launch Steam when needed.

To launch a game/rom/emulator in LaunchBox/BigBox via Steam:

  • Ensure SteamLauncher is enabled by using 1 of the 2 following methods:
     
  1. Selecting the 'Tools' menu item and clicking 'Use SteamLauncher'. When SteamLauncher is enabled the menu item will be labeled '(ON)'. This menu item can also be found in BigBox.
     

        'Tools' Menu Items
 

  1. Selecting the 'Tools' menu item and clicking 'SteamLauncher Settings', resulting in the SteamLauncher settings dialog being displayed. By then checking the checkbox labeled 'Enable SteamLauncher' and clicking the 'Save' button, SteamLauncher will be enabled. The SteamLauncher settings dialog cannot be accessed in BigBox.
     

        Settings Dialog

  • Once SteamLauncher is enabled, all games/roms/emulators will be intercepted by SteamLauncher and launched through Steam.

Customize Platform Names

When games/roms are launched with SteamLauncher enabled, the title and platform of the game/rom will be displayed in one's Steam status in the format of: 'Game Title (Platform Name)'.

Example: Super Mario Bros. (Nintendo Entertainment System)

Friends on Steam will see this title in one's status whenever a particular game/rom is being played. If desired, the platform name displayed can be customized. For example, the platform 'Nintendo Entertainment System' can be changed to 'NES'. This customization can be performed by navigating to the 'Platform Names' tab in the SteamLauncher settings dialog.

Note: To entirely omit a platform name from one's Steam status, leave the 'Custom Platform Name' entry blank (as seen in the 'Windows' entry in the screenshot below).

Platform Names

Selective Use

The 'Selective Use' feature allows one to precisely customize the circumstances under which SteamLauncher will be enabled/disabled. The settings for this feature can be found in the 'Selective Use' tab in the SteamLauncher settings dialog.

Selective Use

Filter Mode

'Filter Mode' defines how the entries in the 'Filter List' will be applied.

  • Blacklist: SteamLauncher will always be enabled except when a matching filter is found.
  • Whitelist: SteamLauncher will always be disabled except when a matching filter is found.
  • Off: Disable the 'Selective Use' feature entirely.

Filters List

The 'Filters List' is a list of user defined filters that control when SteamLauncher will be enabled/disabled.

  • Enable: This checkbox must be checked for a particular filter list entry to be enabled. If not checked, it will be completely ignored.
  • Description: Used purely as a means of helping the user describe what the filter list entry does. It is entirely optional and has no impact on the actual functionality of the entry.
  • Filter String: This is the string which is matched against the target 'Filter Type', dictating whether or not this entry matches a particular game title, platform name, etc. The filter string is not case sensitive and it supports 2 types of wildcards:
    • '*' Wilcard: matches one or more of any character.
    • '?' Wildcard: matches any single character.
  • Filter Type: Dicates what field the 'Filter String' is compared against. The 'Filter Type' options are:
    • Game Title: Title of the game or rom (ex: Celeste, Super Mario World, Donkey Kong Country, etc).
    • Platform Name: Name of the platform (ex: Windows, Nintendo 64, Sony Playstation, etc).
    • Emulator Title: Title of the emulator (ex: Retroarch, Dolphin, Cemu, etc).
    • Exe Path: The path of the game or emulator EXE file (ex: 'C:\PC_Games\GOG\*', 'D:\*', '*\DOSBox\*', etc).
    • Additional Application Name: Name of an 'Additional App' (a LaunchBox feature which allows you to specify additional commands to run for a game).
    • Status: A field in LaunchBox's metadata for games (right click game, 'Edit' -> 'Edit Metadata') which specifies what platform/launcher/store a game was imported from (ex: '*Xbox*', '*Microsoft Store*', '*GOG*', etc).
  • Ignore Custom Fields: Enabling this feature causes SteamLauncher to ignore all 'SLEnabled' custom field entries. What are 'SLEnabled' custom field entries? Right click on a game in LaunchBox, click 'Edit' -> 'Edit Metadata', and then select the 'Custom Fields' menu item. By adding a new entry named 'SLEnabled' and setting its value to '1' or '0', SteamLauncher can be made to always be enabled for this game (1) or always be disabled for this game (0). This custom field value will always take precedent over all other filtering features (filter strings, filter modes, etc). The only exception to this is when 'Ignore Custom Fields' is enabled (which will cause all 'SLEnabled' custom field entries to be ignored).

'SLEnabled' Custom Field Entry

VTables 'Automatic Online Updates'

'Automatic Online Updates' of vtables definitions can be enabled/disabled in the 'Miscellaneous' tab of the SteamLauncher settings dialog. For SteamLauncher to properly work it has to access internal Steam features that are not meant to be accessed by developers outside of Valve. To access these undocumented, unexported functions, SteamLauncher uses a set of definitions which define what these functions are, their function signatures (their parameters, return values, and how to call them), and where to find them within the Steam client DLL. These definitions can change whenever Valve releases a new Steam update and if they change significantly, they can cause SteamLauncher to stop working correctly. In order for SteamLauncher to continue working properly, without the author manually patching the plugin and releasing a new SteamLauncher update every time this happens, an online database was created that can be updated when one of these changes happens, allowing SteamLauncher to continue functioning normally. If 'Automatic Online Updates' is enabled, SteamLauncher will automatically check for new updates every time LaunchBox/BigBox is launched. If new definitions are available, it will silently update and continue working normally. If automatic updates are not enabled, one can manually check for new updates by clicking the 'Force Update' button.

Miscellaneous Tab

Support

If you have ANY problems with the plugin, I want to know about them. If you need help with any technical issue (see 'Logs'), want to suggest a new feature (I'm very open to any ideas), just want to chat, or anything else related to the plugin, visit the support thread at the link below. I am also available to chat on Steam for any urgent issues or if more direct help is needed.

Plugin Support Thread: https://forums.launchbox-app.com/topic/43142-steamlauncher/

Logs

To provide help with any technical problems or to investigate a bug, I will need a copy of the debug log that is generated whenever 'Log Level' is set to 'Verbose'. To enable and collect 'Verbose' debug logs, do the following:

  • Open the SteamLauncher settings dialog.

  • Click the dropdown box under 'Log Level' and select 'Verbose'.

  • Click the 'Save' button.

  • Restart LaunchBox/BigBox.

  • Now simply repeat whatever behavior was causing the issue and/or bug, and after you're sure you've replicated the behavior, close LaunchBox/BigBox.

  • Look inside of the SteamLauncher directory for a file named 'debug.log' (there may be more than one sequentially named log file if there was an enormous amount of output but this is unlikely if verbose logging was turned on just briefly).

  • Open this 'debug.log' file in a text editor, copy its entire contents, and paste/upload it to pastebin.com.

  • In the SteamLauncher support thread, provide the PasteBin URL, the details of the problem you encountered, and the particulars of your setup (Windows version, 32-bit or 64-bit, LaunchBox version, Steam version, SteamLauncher plugin version, etc). The more information the better.

Contact Information

Alias: Lahma

Email: lahma0@gmail.com

Steam Alias: lahma0

Friend me on Steam: You can click on my alias above or you can copy/paste the following URL into your address bar:
steam://friends/add/76561198237461630

GitHub Project URL: https://github.com/lahma0/SteamLauncher

LaunchBox Community Forums Profile: https://forums.launchbox-app.com/profile/89710-lahma/

Plugin Support Thread: https://forums.launchbox-app.com/topic/43142-steamlauncher/

Credits

ChippiHeppu: Logo

m4dengi: steamclient_tracker (unfortunately, no longer updated)

cammelspit: Help with developing the idea and direction for the project

Nielk1: Initial inspiration for the project and just a talented programmer to bounce ideas off of

Helpful members of the LaunchBox community: The_Keeper86, JedExodus, FromLostDays, HTPCei, Corgana, Benuno, Neil9000 (sorry for anyone I'm forgetting)

Known Issues

MAME Compatibility Fix

It has been observed that MAME crashes when launched through a non-Steam shortcut. This problem is not directly related to SteamLauncher, but since SteamLauncher relies on non-Steam shortcuts, launching MAME via SteamLauncher was no longer working. After a lot of investigation and tinkering by some dedicated users on the LaunchBox forums (cammelspit and JedExodus), a fix was eventually found for the issue. Whether launching MAME directly via a non-Steam shortcut or via SteamLauncher using LaunchBox/BigBox, the fix is simply to modify the launch parameters to include the following:

-joystickprovider xinput -keyboardprovider win32

If one of these parameters already exists when modifying MAME within LaunchBox, you will obviously need to replace it (don't just add a 2nd instance of '-joystickprovider' or '-keyboardprovider'). You can safely ignore any popups/warnings that LaunchBox displays about pause screen compatibility.

Legal Stuff

©2022 Valve Corporation. Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.

Edited by Lahma
Minor fix in formatting


What's New in Version NETCore 0.9.8.0   See changelog

Released

v0.9.8.0 (May 23, 2022)

  • Overhauled a large portion of the codebase, changing nearly all functionality related to Steam internals into dynamic code that can be updated from an online database. Now, regardless of whether vtable offsets are modified or the number/order/type of parameters are changed, I can fix any broken functionality by simply updating an online definitions database. This should make future updates much quicker and more seamless.
  • Added a much requested feature: the ability to selectively use the plugin based on a list of filters. This new feature can be found in the settings menu under the tab labeled 'Selective Use'. I won't go into a lot of detail here as I believe it is pretty self-explanatory but I will describe one thing that might not be totally clear by the description in the settings menu. In LaunchBox, if you open any game's properties window and navigate to the 'Custom Fields' tab, you can add a new entry and set the key to 'SLEnabled' (without the quotes). If you then set the value to '0', this game will ALWAYS be ignored by SteamLauncher, regardless of any user-supplied filters. Alternatively, you can set the value to '1' and this game will ALWAYS have its launch intercepted (and run via Steam) by SteamLauncher, regardless of any user-supplied filters. If you have any additional questions, just leave a message on the support thread and I would be happy to explain things further.
  • Like 8
  • Thanks 7
  • Unusual Gem 1

User Feedback

You may only provide a review once you have downloaded the file.


Lahma

   4 of 4 members found this review helpful 4 / 4 members

I think its great :D Though I suppose you could argue I am a bit biased ;)

  • Haha 2
  • The Cake is a Lie 1
Link to review
jwarn010

· Edited by jwarn010

   3 of 3 members found this review helpful 3 / 3 members

This is exactly what I was looking for! Thank you so much! 

A quick tip in regards to non-steam windows games. I found that if the application path in launchbox leads to a .lnk file such as the launchers found in a lot of GOG games the steam overlay does not work properly. To fix this ensure that in launchbox your application path leads to the .exe file. This will ensure that it works properly. 

Also, I would love for this to eventually work with the steam link (or bigpicture mode). Any chance that it could in the future? If I add bigbox/launchbox to steam as a non-steam game it will work on the steamlink/bigpicturemode but the steamlauncher can't launch games. 

(That should say .lnk not .ink in the picture.... whoops) 

 

 

 

Screen Shot 2019-03-25 at 7.21.01 PM.jpg

Screen Shot 2019-03-25 at 7.20.53 PM.jpg

Response from the author:

Thanks for posting a review @jwarn010! Your detailed description of the issues you noticed is very helpful. I should be able to implement a fix for the shortcut problem (.lnk) very quickly. In fact, I will postpone the next update in order to implement a fix for it, as I think it is an important problem to resolve.

Concerning the issue of running LaunchBox/BigBox as a non-Steam game (in BPM or otherwise) and still having the plugin function normally, I will have to look into that further before I provide a definitive answer. It would actually be really helpful if I could ask you a few questions and get a bit more input from you on that issue. I will send you a PM. Thanks again!

 

Edit: I forgot to update this review previously, but shortly after @jwarn010 reported the issue with shortcuts (.lnk), a fix was indeed implemented and pushed out. Many bugs, such as this one, would never be identified without users of the plugin bringing them to my attention, so I very much appreciate the feedback and communication such as in this instance.

  • Thanks 1
Link to review
trizzev

   3 of 3 members found this review helpful 3 / 3 members

I didn't know I wanted this, but it is now my favorite feature in LB. The Steam Overlay is active and Steam Broadcasting even works using this plugin.  I don't know how it's possible with such a simple set up, but it works. Thanks for the work!

Response from the author:

Thanks for the kind words trizzev! I doubt most people realize how much work goes into creating and maintaining a plugin like this, so even the smallest compliment or positive review means a lot to me. If you have any problems or would like to suggest any additional features, drop a post in the plugin's main thread on the forum.

  • Thanks 1
Link to review
coasternd

· Edited by coasternd

   3 of 3 members found this review helpful 3 / 3 members

I've been looking for something list this! I hate the way Steam handle's "non-Steam games". By only request is that you could use it for other PC games that aren't in Steam and not just Roms/Emulators. If I could launch any applications this way it would 100% satisfy all of my requirements. Keep up the great work.

EDIT: Totally worth 5/5 now ? - Thanks again!

Response from the author:

Your wish shall be granted! Check for a new release with PC game support a bit later today. Maybe the plugin will be worth of 5/5 stars at that point! ?

  • Like 2
Link to review
JedExodus

   2 of 2 members found this review helpful 2 / 2 members

Powerful, simple, essential.

  • Thanks 1
Link to review
HTPCei

   2 of 2 members found this review helpful 2 / 2 members

This Plugin is great, and has been an essential part of my Launchbox setup for a long time now.

The level of controller customisation this integrates from Steam, and the convenience of it being a single integrated interface, accessible by the controller guide button, which automatically saves and reloads your custom configs per-game with zero effort, is just awesome. Even if you have no friends or games on Steam, this plugin is worth it for the controller configs alone.

Any problems with the plugin are usually user-error/odd use-case, or changes made by Steam or Launchbox. The Plugin author is very communicative, active on the forum support thread, and is quick to fix any problems that do come up, great job.

Response from the author:

Thanks for the excellent review! You've been an active part of the plugin from nearly the very beginning and I appreciate your constant attention to the support thread and the help you provide to other users when they experience common issues and such.

  • Thanks 1
Link to review
coleroddy

   2 of 2 members found this review helpful 2 / 2 members

This is a great piece of software. I loved it. I'd posted on the official thread about two bugs that I've found. But aside from that, I had no issues at all.

Thanks very much, sir!

Response from the author:

I'm glad you're finding the plugin useful and please return to the support thread and remind me of any bugs you've found if I have not yet fixed them. Progress towards the 1.0 release has been very slow (but steady) but I think we're actually getting pretty close to its release now. Can't wait to share it with all of the plugin's long time users to see what they think. Thanks for the excellent review!

  • Thanks 1
Link to review
CraZed

   2 of 2 members found this review helpful 2 / 2 members

Most useful plugin for LB/BB to date. Thank you so much for this plugin. Helped keep my steam list free from clutter and saved me from having make custom shortcuts etc. Now I can use my controller with my emulators without having to shut down Steam. 

Response from the author:

As always, I am very grateful when people take time to leave a review of the plugin and share their thoughts with others. It makes me happy to know that other people besides myself find SteamLauncher to be such a crucial element in their gaming/emulation setup.

  • Like 1
  • Thanks 1
Link to review
Nocta

   2 of 2 members found this review helpful 2 / 2 members

This is simply amazing. Thank you so much Lahma!

Response from the author:

I'm genuinely flattered by your compliments and gratitude. If you have any problems or feature requests, please feel free to join the forum thread!

  • Like 1
Link to review
The_Keeper86

   2 of 2 members found this review helpful 2 / 2 members

Something I've been wanting for LB for a long time now. Your hard work is much appreciated! Though I did notice that sometimes after exiting a game in BPM the desktop Steam UI pops up and I have to mouse the mouse to get back to Big Box.

Response from the author:

I'm working on a solution to this problem right now. Just trying to figure out the logic concerning when to prevent the Steam UI from gaining focus.

  • Thanks 1
Link to review
BiRaitBec

   1 of 1 member found this review helpful 1 / 1 member

Great Idea, however it doesn't seem to work correctly anymore, i think from a certain steam update from past year on september.

With this installed the system tends to crash more often than not, especially on the controller tab, and when the system works sometimes, the controller doesn't. (I have tested original xbox controllers, nes original with adaptors, third party aswell)

The UI also feels a bit tedious to navigate in general.

Thanks anyway! Hope in improvements and updates for current steam version.

Link to review

Doesn't work 90% of time. Opens, and silently closes without any error. Worked maybe twice.

Link to review
×
×
  • Create New...