Jump to content
LaunchBox Community Forums

4 Screenshots

About This File

SteamLauncher Plugin for LaunchBox

Introduction

SteamLauncher is a LaunchBox plugin designed to allow roms/emulators to easily be launched through Steam, directly from the LaunchBox/BigBox interface, without any complicated setup or technical know-how. Simply follow the instructions for installation (see Installation section), enable the plugin (see How to Use section), and then launch any game as you normally would.

Updates/Notices

If you have ANY problems with the plugin, I want to know about them. While you are free to post on the plugin thread or send me a PM, the most effective/fastest way to speak with me personally is via Steam. If I am at my computer, I will answer your message immediately. My Steam alias is lahma0. You can click on my alias to open my Steam profile to add me as a friend, or you can copy/paste the following URL into your address bar:
steam://friends/add/76561198237461630

MAME Compatibility Fix

It was recently observed that MAME crashes when launched through a non-Steam shortcut in the latest version of the Steam client. This problem is not directly related to this plugin but being that this plugin relies upon non-Steam shortcuts, it meant that launching MAME via this plugin no longer worked. After a lot of investigation and tinkering by @cammelspit and @JedExodus, @JedExodus managed to find a fix for the issue. Whether launching MAME directly in Steam via a non-Steam shortcut or via LaunchBox/BigBox using this plugin, the fix is to simply 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. If you have any problems, feel free to join the plugin support thread by clicking the 'Get Support' button on the right hand side of this page.

6/18/2019 - New Update Adds Resilient Method for Resolving VTable Offsets (Beta v0.9.3.0)

This update makes some significant changes in the way the plugin finds the needed vtable offsets when interfacing with the Steam client DLL. This should finally solve the problem of Steam updates breaking compatibility with the plugin.

5/13/2019 - A New Beta Update is Available (Beta v0.9.2.0)

This new update to the March 2019 Beta fixes some reported issues and contains many small optimizations. If you are new to the plugin, please read the "March 2019 Beta" notice below as well as the rest of the documentation. For a list of changes, please see the Change Log at the bottom of the page. REMEMBER, if you're updating from an old version and want to back it up before replacing it with the update, it must be moved ENTIRELY outside of the LaunchBox root directory or ANY of its subdirectories. Having 2 copies of the plugin ANYWHERE within the LaunchBox directory structure simultaneously WILL cause big problems.

3/16/2019 - Major Overhaul of SteamLauncher - New Beta Available for Download (Beta v0.9.1.0)

There is a new beta version of the plugin available for download. I’ve been working hard over the last few months to complete this major overhaul of the plugin, and I’ve decided to release this beta for those wanting an early peek at the new features.

This new version works in a fundamentally different way when compared to the old version. The biggest change is that there is now a universal toggle to enable/disable the plugin, and when enabled, any game/emulator launched through LaunchBox/BigBox will now be launched via Steam, without the need to select the “Launch via Steam” context menu item. Nearly all of the limitations of the old plugin are now eliminated, enabling features such as compressed rom support, non-default emulator configs (“Launch with [...]”), and startup/shutdown screen support.

The old version of the plugin will still be available for those who prefer to wait for a stable release. However, the current beta still retains the old “Launch via Steam” context menu item whenever the universal Steam launching toggle is disabled. This should make it easy to switch between the old plugin’s Steam launching feature and the new beta’s universal Steam launching feature.

A moderate amount of testing has been done on the new version, but seeing as this is a beta, there may still be some bugs under certain edge cases. If you find anything, please report your findings in the plugin’s forum thread. Before using the new beta, please read the new “How to Use” section in the documentation below. While in transition to the new plugin, please excuse the messy, unorganized documentation. It will be completely overhauled once a stable release of the new plugin is available.

If you want to back up your existing "SteamLauncher" directory prior to installing the beta, MAKE SURE you do NOT leave it inside of the "Plugins" directory OR ANYWHERE ELSE within the directory structure of LaunchBox.. Move it outside of the LaunchBox directory entirely.. If you have 2 copies of "SteamLauncher.dll" ANYWHERE within the LaunchBox directory structure simultaneously, VERY WEIRD THINGS WILL HAPPEN. Strictly speaking, you probably do not have to delete your existing config.xml file before upgrading to the beta, but if you have any problems, close LaunchBox, delete config.xml, and then run LaunchBox again (it will create a new config.xml file when the plugin loads.)

5/26/2018

As of v0.9.0.2, the plugin now supports PC/Windows games, DOSBox games, and ScummVM games in addition to emulated games (roms).

UNBLOCK DLL AFTER DOWNLOADING

@neil9000 reminded me that Windows automatically "blocks" DLL files that are downloaded from the internet, so after following the instructions and placing the plugin DLL in your LaunchBox plugins directory, you need to right click the DLL, click 'Properties', and check the box at the bottom of the dialog that is labeled 'Unblock'.

Features

Here are just a few of the features or benefits provided by using this plugin:

  • Allow LaunchBox to do what its good at - be the sole organizer and maintainer of your rom collection, without having to duplicate its functionality in Steam (something it was not designed for)
     
  • Keep your 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 or per-emulator 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 your "currently playing" status with Steam friends for whatever rom you launched from LaunchBox/BigBox. Example: “YourSteamAlias is currently playing 'Super Metroid (SNES)'”

Features (New/Current Version)

Here are a list of the features added in the March 2019 beta update:

  • Compressed rom files are now supported (should work the same as when the plugin is not enabled)
     
  • Startup/shutdown screens should work normally (as they do when the plugin is not enabled)
     
  • Non-default emulator configurations are now supported (when you right click a game and choose a “Launch with” option)
     
  • There are other additional features included with the new beta that will be explained at a later date or upon release of a stable/final version.

Requirements

  • .NET Framework 4.7+
     
  • Steam for Windows
     
  • LaunchBox

Installation

  • Extract the 'SteamLauncher' directory from the compressed package into your LaunchBox plugins directory
  • Right click the SteamLauncher.dll file, click 'Properties', and look at the bottom of the dialog (on the 'General' tab) for a checkbox labeled 'Unblock'; if you see it, check that checkbox and click 'OK'; if you don't see it, then you are done

Screenshot (33).png

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 (if any) being inside the directory 'C:\LaunchBox\Plugins\SteamLauncher'.

It would be greatly appreciated if you would leave a comment/review on this page with a bit of feedback after installing the plugin and trying it out. Even just a short comment such as, "It works for me" or "Not working" would help out a lot. The plugin was tested on a very limited number of setups and environments prior to release, so any small amount of feedback will help in gauging whether the plugin generally works for most people or whether more testing is needed.

How to Use

New/Current Version

After installing the plugin, there is now a simple ON/OFF toggle to enable the new functionality. In LaunchBox, this toggle can be found at the bottom of the “Tools” menu. In BigBox, this toggle can be found near the bottom of the root system menu (go back one level after starting BigBox). The new functionality is OFF by default. To turn it ON, simply click the menu item. When enabled, the menu item text will end with “(ON)” as displayed in the image below. When this option is turned ON, the old plugin’s “Launch via Steam” context menu item will be unavailable.

LaunchBox

image.thumb.png.36bbbc86a34ca366f8f82ed75c9643e3.pngBigBox

image.png.22662fde21dfde41c40aded8af9181ee.png

Original/Old Plugin
(Deprecated Information - For new users, simply ignore this. The current version no longer requires this.)

Simply bring up the rom's context menu in LaunchBox (in BigBox or normal mode) and click the option at the bottom of the menu labeled "Launch via Steam"

Note: Currently SteamLauncher will only launch the rom using its default emulator. If you wish to use a different emulator with that particular rom, you will have to go into that rom's settings and change its default emulator (or change the default emulator for the entire platform associated with that rom.)

Customize Platform Names

When roms are launched with the plugin, the title of the game, as Steam sees it, will be in the format of: "Game Title (Platform Name)"

        Example: Super Mario Bros. (Nintendo Entertainment System)

For whatever reason, you may want to keep the long "official" name of the platform in LaunchBox, but use a shortened, abbreviated, or different platform name inside of Steam. The plugin has this functionality available, and it can be enabled by following these instructions:

  • Open the SteamLauncher directory and look for a file named 'config.xml'
     
  • If you do not see the file, you need to launch at least 1 game with the plugin, and then manually close LaunchBox, and the file should then appear in the directory
     
  • Open the file with a text editor, and look for the line labeled, '<CustomPlatformNames>'
     
  • Anywhere under this line, and before the line labeled, '</CustomPlatformNames>', you can add as many new lines as desired in the format of:

                <Platform Name="Original LaunchBox Platform Name" Custom="Custom Platform Name" />

  • You may already see a couple of example lines in place with fake platform names which you can copy/paste and modify to add your own custom platform names
     
  • After making your changes, simply save the file, close it, and then reopen LaunchBox
     
  • The next time you launch a game, you should see your new custom platform name substituting the real platform name in Steam (an easy place to see the title of the game you're playing is in the Steam overlay)
     
  • Just to reiterate, here is an example of what the aforementioned lines look like in my config file:

                <CustomPlatformNames>

                    <Platform Name="Super Nintendo Entertainment System" Custom="SNES" />

                    <Platform Name="Nintendo Entertainment System" Custom="NES" />

                    <Platform Name="Nintendo Game Boy Advance" Custom="Nintendo GBA" />

                    <Platform Name="Nintendo Game Boy Color" Custom="Nintendo GBC" />

                </CustomPlatformNames>

Known Issues

There appears to be a significant bug in the Steam Client right now that can cause problems with controller bindings under a variety of situations for certain users. If you launch a rom/emulator with LaunchBox and your controller bindings don't seem to be working, simply exit the game and launch it again. This may happen the very first time you try to launch a game using the SteamLauncher plugin (one time total after freshly installing the plugin, not on every new session in LaunchBox). If it happens frequently, please report the problem so further workarounds can be investigated.

Support

Unfortunately I don't run a dedicated call center to provide technical support... However, if you need help with any technical issues or bugs (see 'Debug Logs'), want to suggest a new feature (I am very open to any ideas), just want to chat, or anything else related to the plugin, feel free to send me a PM or shoot me an email at the address listed below.

Contact Information

Alias: Lahma

Email: lahma0@gmail.com

GitHub Project URL:

        https://github.com/lahma69/SteamLauncher
        (Does not yet reflect the changes made in the March 2019 Beta or newer versions. I will be updating the GitHub as soon as I can.)

LaunchBox Community Forums Profile:

        https://forums.launchbox-app.com/profile/89710-lahma/

Debug 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 debug logs are enabled in the configuration file. To enable debug logs follow these instructions:

  • Close LaunchBox/BigBox (this is important.. changes to the config while LB/BB is running will be overwritten)
     
  • Locate the file named 'config.xml' in the SteamLauncher directory and open it with a text editor
     
  • Find the line that looks like this: <DebugLogEnabled>false</DebugLogEnabled>
     
  • Change the word 'false' to 'true' (do not include the quotation marks)
     
  • Save the file and close it
     
  • Now simply repeat whatever behavior was causing the issue and/or bug, and after you're sure you've replicated the behavior, manually close LaunchBox
     
  • Again, look inside the SteamLauncher directory, but this time looks for a file named 'debug.log' (there may be more than one sequentially named log files if there was an enormous amount of output, but this is unlikely if debugging was turned on just briefly)
     
  • Zip up the one or more log files and attach them to your message, along with the details of your particular setup (Windows version, 32-bit or 64-bit, LaunchBox version, Steam version, SteamLauncher plugin version, etc). The more information the better.

Source Code

        https://github.com/lahma69/SteamLauncher

Legal Stuff

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


What's New in Version Beta 0.9.3.0   See changelog

Released

  • Finally added a dynamic method for finding vtable offsets which should ensure that Steam updates will no longer break compatibility with the plugin
  • Like 3
  • Thanks 6



User Feedback

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest

Lahma

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

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

  • The Cake is a Lie 1

Share this review


Link to review
trizzev

   2 of 2 members found this review helpful 2 / 2 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

Share this review


Link to review
CraZed

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

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.

  • Thanks 1

Share this review


Link to review
Nocta

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

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

Share this review


Link to review
jwarn010

· Edited by jwarn010

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

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

Share this review


Link to review
coasternd

· Edited by coasternd

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

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 1

Share this review


Link to review
The_Keeper86

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

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

Share this review


Link to review
CosmicDan

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

Does what it says! Would be great to have an option to make it replace the default launch, though - especially so variants can work with it.

Response from the author:

For anyone else wondering about this, check the main thread for more info:
https://forums.launchbox-app.com/topic/43142-steamlauncher/?page=2

  • Thanks 1

Share this review


Link to review
×
×
  • Create New...