Jump to content
LaunchBox Community Forums

Lahma

Members
  • Posts

    403
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Lahma

  1. If anyone could help me with a quick question on my plugin download page, I would greatly appreciate it. I'm the author of the "SteamLauncher" plugin, and I just spent the last hour trying to help a user with an issue he was having with my plugin. I finally figured out what the problem was, and it had nothing to do with my plugin, and was quite unexpected. After the Steam client updated, I had to make some changes to my plugin to maintain compatibility, so I uploaded an updated version (v0.9.0.1). The problem is, the main "Download" button on the plugin page still downloads the old version of the plugin, which for all intents and purposes is totally non-functional now. Although a link to the updated version of the plugin is available at the bottom of the plugin page, most people by default are just going to click the download button and not pay attention to anything else. Am I doing something wrong here, and if so, how do I change the version that the download button points to. If I'm not doing anything wrong, is there some way to fix this? Thanks!

     

  2. Hey CosmicDan, 

    Sorry it has taken me so long to respond.. I've just been really busy lately. You're absolutely right, I never posted the source to GitHub, and there is really no excuse for that. If I had any indication that anyone actually wanted to look at and/or use the source code, I definitely would not have procrastinated so long. Since it seems that you are indeed interested though, I will go ahead and get it done. I will try to have it posted by the end of the day today or tomorrow (April 8th or April 9th). I tend to get a little nitpicky about cleaning up the code before posting it publicly, so the process never goes as quickly as I would like ;) 

    Now, on to your other comments/questions... Where to start? The thing you are describing (with the standalone stub EXE) is exactly what this project was created to do away with. I'm not sure if you've heard of "GameLaunchProxy", but it is essentially exactly what you're describing. It was originally created by another user on these forms, Nielk1. However, when I came upon it, it was no longer functioning due to changes in the Steam API, and Nielk1 was no longer updating the project. I took it upon myself to fork his code and update it so that it would function again with current Steam versions. You can find my fork here: 
    https://github.com/lahma69/GameLaunchProxy

    I haven't used it recently, and I can't recall at this moment if any major changes have been made to the Steam API since I last updated it that would cause it to no longer function, but if it isn't working, it would be very easy for me to fix the problem... So, if its something you are interested in using, give it a shot, and let me know if you have any problems and I can push out a quick update for you. Wrapping your head around how it works is initially might be a little bit difficult, but it shouldn't be too hard to figure out.

    To be perfectly honest though, the entire project got very little attention, and seemed to have very few, if any, users. I think the difficulty required to set it up and use it properly (which is an inherent problem to any generalized approach that can work with basically any launcher) is probably what kept it from being widely utilized. That is exactly why I created this LaunchBox plugin. Its intent was to greatly simplify things and essentially make the entire process a zero configuration, 1-click affair. 

    The last point I'll address is about making "Launch via Steam" the default launch option. While this would be extremely valuable, and has been requested by other users besides you, it is unfortunately not possible using the built-in LaunchBox plugin API. Unfortunately the API is extremely limited. I won't go too far into the details, as if you're interested, you can take a look at the API yourself to get an idea of what I'm talking about. There is actually much more versatility I would have liked to have added into the plugin, but the API at this point just isn't versatile enough to do much else. 

    This isn't to say that adding such features through other means such as code injection would be totally impossible, but due to LaunchBox using the .NET Framework, practices such as code injection are actually not at all straightforward or simple. I've actually done a lot of experimentation as far as adding additional features that fall outside of the plugin API's supported abilities, but at this point, the only success I've really had is with deobfuscation and modification of LaunchBox EXE/DLL files themselves. I'm pretty sure Jason, the author of LaunchBox, would not be a happy camper if someone starts releasing modified versions of his code without his permission however, so unfortunately that path is a no-go for public release. Hopefully Jason will make extensibility updates to the plugin API a priority sometime in the near future though, and maybe at that point I can add some of the additional functionality people have been requesting. 

    Anyways, thanks for the kind words CosmicDan. Its always nice to know that someone is enjoying the result of all the time put into creating such a project (and keeping it updated and functioning with all of Valve's erratic constant changes to the Steam API). If I failed to answer any of your questions or if you have anything else you'd like to discuss, feel free to post a response, and I will try to respond a bit quicker this time! Thanks again.

    • Thanks 1
  3. 25 minutes ago, percybuttkins said:

    Here you go...weirdly it looks like it is using the directory from my Hello Neighbor game as my steam directory. My steam works fine...and my son has been playing Hello Neighbor...just weird. 

     

    Heres the log.

     

    debug.log

    Just wanted to note for future reference that we talked on Steam and got the problem resolved (not an issue with the plugin).

  4. 9 hours ago, neil9000 said:

    lol, no probs, this is a direct quote from what I said in the previous thread where you were discussing this plugin,

    If you upload the file to our third party apps and plugins section of the downloads, a support forum thread will be automatically created, with a link directly to it from the file download page.  ;) 

    Lol, you did tell me that didn't you.... Ugh.. I'm an idiot. :D

    • Haha 1
  5. 4 hours ago, percybuttkins said:

    Hey Lahma, 

    Just checked to make sure it was unblocked and no option to do so. No errors visible unless I'm in big box mode and not launching games at all where I have not changed any of the configurations from when it worked. Only error I get is the one I posted before. Also I am using the latest version. 

    Percy, will you enable debug logging (see the plugin info under 'Debug Logs') and then try the plugin again (you might try it a couple of times in BigBox and in normal mode just so we get more than enough data in the log). Once you've done that, if you could send me a copy of the debug log and a copy of your configuration file, I think we can probably figure out what your problem is and get you up and running again.

  6. On 2/12/2018 at 6:14 PM, Nielk1 said:

    I'm sure the blocking is an accident of how some part of RL works with its bezel and other display logic.  IDK if I can solve it but I've been too busy to do a lot lately (hence why my own Steam Proxy has fallen into disrepair).

    Nielk1, thanks for helping out with some of the questions and stuff prior to me realizing this thread even existed. I really appreciate it.

  7. On 2/14/2018 at 9:02 PM, Musungo said:

    Been trying to use this plugin but it keeps crashing BigBox and steam, Big box'll hang like it's trying to launch / work with Steam then nothing I have to force close big box. 

    Musungo, were you using the beta Steam client and v0.9.0.0 of this plugin when you were having the problems? If so, I would recommend updating to v0.9.0.1, as I fixed the plugin to work with the new Steam beta that was pushed out on Feb 14th. If the new version of the plugin still isn't working, I would be happy to look into the problems for you. Look at the plugin info under the heading 'Debug Logs' and follow the instructions to enable debug logging, and then send me a copy of the logs after you try the plugin again and it crashes. 

  8. On 2/15/2018 at 11:04 AM, folken61 said:

    i can use the plugin in default? i mean no use the label just click the game and launch in steam

    Again, like I've told everyone else, I'm really sorry for not seeing your question earlier.. I'm a moron and didn't realize this thread existed. However, to answer your question, no, unfortunately there is no way to set SteamLauncher to be the default option for running your roms in LaunchBox. The plugin API simply doesn't support doing such a thing, so it would require doing some ugly hacks like code injection. If enough people wanted such a thing, I could look into it, but it would never be a "clean" solution, as LaunchBox updates would always have the possibility of breaking the plugin. Sorry.

  9. 8 hours ago, percybuttkins said:

    Thanks bud, was working perfectly for me until I just updated to 8.1....now keep getting error messages and want to go back to 8.0 just because of this app. Thanks again for the work!

     

    Heres the message I get

      Hide contents

     

    Object reference not set to an instance of an object.

    App:     Big Box
    Version: 8.1
    Type:    System.NullReferenceException
    Site:    Boolean MoveNext()
    Source:  SteamLauncher

       at SteamLauncher.SteamClient.SteamShortcut.<GetSteamLauncherShortcuts>d__36.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at SteamLauncher.SteamClient.SteamShortcut.RecycleShortcut()
       at SteamLauncher.SteamClient.SteamShortcut.GetNewOrExistingShortcut(Boolean& isNew)
       at SteamLauncher.SteamClient.SteamShortcut.LaunchShortcut()
       at SteamLauncher.LaunchViaSteamMenuItem.OnSelected(IGame selectedGame)
       at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.<>c__DisplayClass149_3.<SelectionChangedTimerElapsed>b__26()
       at Unbroken.LaunchBox.Wpf.BigBox.MenuActions.MethodMenuAction.OnEnter()
       at (GamesViewModelBase )
       at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.GamesViewModelBase.OnEnter()
       at (MainViewModel )
       at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.OnEnter()
       at (MainViewModel , KeyEventArgs )
       at Unbroken.LaunchBox.Wpf.BigBox.ViewModels.MainViewModel.HandleKeyDown(KeyEventArgs e)
       at (MainView , Object , KeyEventArgs )
       at Unbroken.LaunchBox.Wpf.BigBox.Views.MainView.MainView_OnPreviewKeyDown(Object sender, KeyEventArgs e)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
       at System.Windows.Interop.HwndKeyboardInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawKeyboardActions actions, Int32 scanCode, Boolean isExtendedKey, Boolean isSystemKey, Int32 virtualKey)
       at System.Windows.Interop.HwndKeyboardInputProvider.ProcessKeyAction(MSG& msg, Boolean& handled)
       at System.Windows.Interop.HwndSource.CriticalTranslateAccelerator(MSG& msg, ModifierKeys modifiers)
       at System.Windows.Interop.HwndSource.OnPreprocessMessage(Object param)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

    Recent Log:

       6:16:30 PM Music.Pause Start
       6:16:30 PM Music.Resume Start
       6:16:30 PM Music.Resume Start
       6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
       6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
       6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) Free
       6:16:31 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
       6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
       6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
       6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) Free
       6:16:34 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
       6:16:34 PM Music.StopAndResumeBackground Start
       6:16:35 PM Music.Initialize Start
       6:16:35 PM Music.Kill Start
       6:16:35 PM Music.Kill Finished
       6:16:36 PM Music.StopAndResumeBackground Start
       6:16:36 PM Music.StopAndResumeBackground Start
       6:16:38 PM Music.StopAndResumeBackground Start
       6:16:38 PM Music.StopAndResumeBackground Start
       6:16:39 PM Music.StopAndResumeBackground Start
       6:16:39 PM Music.StopAndResumeBackground Start
       6:16:40 PM Music.StopAndResumeBackground Start
       6:16:40 PM Music.StopAndResumeBackground Start
       6:16:42 PM Music.StopAndResumeBackground Start
       6:16:42 PM Music.StopAndResumeBackground Start
       6:16:42 PM Music.StopAndResumeBackground Start
       6:16:42 PM Music.StopAndResumeBackground Start
       6:16:44 PM Music.StopAndResumeBackground Start
       6:16:44 PM Music.StopAndResumeBackground Start
       6:16:44 PM Music.StopAndResumeBackground Start
       6:16:44 PM Music.StopAndResumeBackground Start
       6:16:45 PM Music.StopAndResumeBackground Start
       6:16:45 PM Music.StopAndResumeBackground Start
       6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) HandleManager.Remove
       6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) EventManager.Detach
       6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) Free
       6:16:46 PM VlcMediaPlayer.Dispose(bool disposing) ReleaseMediaPlayerFunction
       6:16:48 PM Exception

     

     

    Hey Percy, so I'm using LaunchBox 8.1 and I just tested v0.9.0.1 of the plugin with both the non-beta and beta Steam client and both the regular LaunchBox and BigBox are both working fine for me. Did you try "unblocking" the DLL as Neil9000 suggested? If you look at the plugin info page under 'Debug Logs', it describes how you can enable debug logging for the plugin. If you continue to have problems, enable the debug logs and send me a copy of them and I'll take a look to see if I can figure out what's going on. I suspect there is some other problem at play here though if the plugin was working fine before and only stopped working after you updated LaunchBox (cause like I said, I'm running LaunchBox 8.1 as well). 

  10. On 2/11/2018 at 1:01 PM, neil9000 said:

    Just downloaded the plugin, ill test it in a minute. You may want to add to the install description on the download page that you will most likely need to unblock the .dll file also, at least I had to on my system as Windows automatically blocks .dll's coming from other computers.

    Screenshot (33).png

    Neil, I totally forgot about that, and I wish I would have seen your post earlier (see my previous post for why I did not). I will definitely add this info at the top of the plugin page. Thanks for the heads up.

  11. SteamLauncher

    View 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.


     

    • Thanks 1
    • Unusual Gem 1
  12. 8 hours ago, Nielk1 said:

    That's good to hear.  I wish the plugin system had been around when I started this project, as this is the perfect candidate for that.  I will definitely check out your code when it's up.  I have my old SteamTools plugin that also needs a ton of work, so when I have time again to work on plugins things could get a bit interesting.

    I didn't really look over your plugin code, but from some forum posts I saw in passing, it sounds like you managed to overcome a lot of the inherent limitations of the plugin API. I need to take some time and look through your code. Hopefully at some point, some more advanced functionality will be built into the plugin API, because there is really so many more useful things that could be accomplished with just a bit more functionality built into the API. 

    By the way, sorry I didn't get the plugin pushed out yesterday guys. I've been working feverishly on it... "Wrapping up" code for public release is always a bit more time consuming than you first recon it will be. I will definitely get it pushed out today though (hopefully here shortly).

  13. I tried Steam Rom Manager, but I just hate cluttering up my Steam library with all of my roms and such... especially when LaunchBox already does such an excellent job of organizing my entire rom/emulator collection. I know the author (FrogTheFrog) of Steam Rom Manager, and he undoubtedly put a lot of time and effort into making that app, so I'm definitely not downplaying its usefulness. However, I think most of us who paid for a LaunchBox license did so because we appreciated the ease and customization that it provides for organizing a large rom collection... and that is something that Steam just wasn't made to do. 

    My ultimate goal with this was to be able to continue using LaunchBox to manage my entire rom collection, but also be able to easily use the Steam overlay (and therefore Steam controller bindings) with anything launched from the LaunchBox UI. 

    P.S. Speaking of FrogTheFrog, if you use the Wii U emulator Cemu, and also have a Steam controller, you should checkout his app 'Steam Gyro for CemuHook'. It is awesome!

  14. 19 minutes ago, percybuttkins said:

    Looking forward to trying it out! Thanks for the work. I've been using Nvidia gamestreaming with a shield tablet and an ipega 9023 to play games remotely. Getting old and tired is sitting at the computer. Full launchbox compatibility with steam  would make it complete! 

    That sounds like a neat setup! I use Nvidia gamestreaming occasionally with the Moonlight app on my Android phone or tablet. I have a GameSir G4S controller that has a built in phone mount, so I guess that sort of accomplishes the same thing as your ipega in a way.

    I usually only use it when I'm out of town though, rather than when I'm at home. I host a VPN server on my router which I connect into when I'm away from home, and as long as I have a decent internet connection wherever I'm at, it surprisingly works pretty well. I didn't even think about my plugin being useful for that.. but it certainly would make it easier to setup LaunchBox/BigBox as a GameStream application and just use that to launch everything through Steam (and therefore still be able to use my normal controller bindings). 

    Anyways, I'm going to get back to finishing the public build of the plugin. Should be up here in a few hours.

  15. 33 minutes ago, neil9000 said:

    If you upload the file to our third party apps and plugins section of the downloads, a support forum thread will be automatically created, with a link directly to it from the file download page.

    Ok, sounds great. Once I'm done with the final touchups here in just a bit, I will do exactly that. Thanks for the info!

    • Like 1
  16. For anyone interested, I've created an entirely new app (well, plugin really) for launching roms/emulators from LaunchBox through Steam. It is a simple plugin for LaunchBox that only requires you to drop a DLL into the LaunchBox plugins directory and that's it.. everything is done automatically. You simply right click on the game you want to play in LaunchBox and select the menu option "Launch via Steam" and the emulator/rom will launch through Steam, giving you access to the Steam overlay, controller bindings, etc. CammelSpit has been helping me test it out a bit, and it appears that it is ready for public release. I am going make some final comments and cleanup the code a bit, then I will compile a final release and push it out onto GitHub. It should be up later today. Whenever its ready, I will make a new topic for it and post the topic URL here for anyone that is interested. 

  17. Quick question for anyone interested in this plugin. Do you use the "Launch with" option in a game's context menu often (meaning you use an emulator different than the one you have set as the default for that platform)? Right now, the way the plugin is working is that it is just using the default emulator in order to launch the game/rom in Steam (same as if you just double clicked on the game), and I'm trying to decide if that is good enough. 

    I originally intended to add a 2nd expanding menu option, like LaunchBox's "Launch with" menu option, that would allow you to choose any other compatible emulator to launch the game in Steam, but I quickly learned the LaunchBox plugin architecture was not capable of such dynamic behavior. It essentially just allows you to have static menu options that are created at compile time, meaning you can't create a number of menu options dynamically based off of a user's particular configuration. 

    In the regular LaunchBox interface (not BigBox), it would be possible to get around these limitations by introducing my own popup window that could dynamically display the different emulators available, but doing this in BigBox would be much more difficult and require its own separate implementation (due to the different UI type, controller input, etc).

    Regardless, I'm going to release the 1st version prior to implementing any of this more complex behavior (if I even decide to), but I just wanted to get some feedback to see if this is even wanted/needed before considering whether to put the time into it or not. Thanks.

  18. On 1/17/2018 at 2:49 AM, Cypher said:

    If I'm understanding this correctly, this will make it easier to set up games to launch straight from Launchbox without having to do the command line stuff yourself --IE adding Retroarch as a new game in Steam and then using the command line to point that specific instance toward launching an SNES game, for example-- and if that's the case, I'm all for it.

    If you can somehow find a way to tie all of the extra images in Launchbox to the screenshots function in Steam so they show in the UI/display in the background on game categories like native Steam games too, that'd be even better.

    Sorry it took me so long to respond. I missed the email saying the thread had a new reply. Addressing your first statement, that is correct. There will be zero setup needed. I've put a screenshot below which shows how it will be used. Basically, you just right click the game (or bring up the game's menu in BigBox), and click the 'Launch via Steam' menu option at the very bottom. 

    image.thumb.png.d032836218eefcd58b6e891addef6bb1.png

    Concerning your second statement/question, can you be a bit more specific, as I'm not totally understanding what you're asking. I understand that when in Steam and you select a Steam title that it shows a game-specific image behind the game description/news/etc, but I'm not sure what you're asking that I implement. Essentially, with this plugin, you won't see any emulators/roms/games in Steam that you didn't previously, it is only a way to launch games, as if they were started through Steam, but from the LaunchBox interface. The advantages of this is that you gain access to the Steam overlay (and all the goodies that come with it including one-of-a-kind controller binding system, screenshots, overlay web-browser, game play statistics, status sharing with friends, in-game chat, etc and so on) WITHOUT having to add a shortcut for each and every emulator+rom combination to the Steam launcher. LaunchBox does a very good job of organizing my rom collection, so the idea of this plugin is to let LaunchBox continue to do that job well, but in addition, gain the benefits of using the Steam launcher as well. 

    Please explain your request more thoroughly however, as I would be happy to implement whatever functionality your looking for as long as its possible and it fits into the "idea" and/or purpose of this plugin. The plugin is about ready to release publicly. It is working very well and just needs a bit more tweaking to make it stable under certain edge cases. I will check my email more closely so I don't miss your response again. Thanks for the interest.

  19. I'm not sure if this is really the right place to inquire about such a thing, but I'm simply trying to gauge if there is any interest amongst the LaunchBox community for a Steam launcher/proxy plugin for LaunchBox. If anyone has used Nielk's "GameLaunchProxy" or my more recent fork of it (to make it work again after Steam API changes broke it), it would be similar, but with a much more narrow focus... and instead of being an external application, I would wrap the functionality into a LaunchBox plugin that would require no prior setup or even knowledge of how it works or what it is doing. You would basically just right click the game you want to play in LaunchBox and click "Play via Steam" (or something similar).

    For anyone who hasn't used GameLaunchProxy before, let me briefly explain the concept so that you can tell me if it would be of use to you or not. Steam has the ability to add non-Steam shortcuts (games) to its interface, so that you can launch games through Steam that you didn't buy/download via Steam. There are a lot of reasons/benefits one might want to do this, but a few of the primary reasons are Steam's EXCELLENT and wholly unique controller binding abilities through the Steam Overlay (allow you to create multi-tiered radial menus, touch menus, multi-layered advanced controller configurations, and probably most importantly, per-game controller configurations), to keep track of gameplay statistics (last played, total time played, etc), and to share gameplay status with friends (ex: when you're playing Super Mario Bros (NES), it displays that as your status to all of your friends on Steam).

    For any hardcore emulator/rom players who have ever tried to take advantage of this behavior, they will know there is a problem however. You must add a separate shortcut to Steam for each and every emulator+rom that you want to play through Steam. For some of us with collections of thousands of roms (and the desire sometimes to play a single rom in different emulators), this becomes tedious and impractical very quickly. 

    What this plugin would allow is for you to keep your entire collection of roms/emulators organized in LaunchBox, and without having to add a single shortcut to Steam, you would be able to launch any combination of emulator+rom through Steam, giving you access to the Steam overlay, per-rom/emulator/game controller configurations (that are saved/remembered automatically). The plugin will use Launchbox metadata for the rom/game name and platform name in order to "label" your current Steam gaming session. For example, if you are playing "Super Mario Bros." on the NES, when you pull up the Steam overlay, you (and your Steam friends) will see the following as the name of your current play session (your controller profiles will be labeled as such too):

    "Super Mario Bros. (NES)"

    Additionally, your Steam client won't be littered with a thousand shortcuts (the plugin will only add 1 hidden shortcut that it will change dynamically to "proxy" launches between LaunchBox and Steam). Like I said previously, you would only need to bring up the context menu in Launchbox on whatever game/rom you want to play, and you would be able to click either "Play via Steam", or you could go into the "Launch With" menu and choose to launch the rom with any of the other emulators you have configured through Steam. 

    Currently, you can accomplish this using my current build of GameLaunchProxy, but it requires a lot of setup, configuration, and quite-frankly complicated understanding of what is going on under the hood (gets even more complicated when you start considering relative paths to roms and emulators). I suspect that a lot of people would find this plugin useful if they knew of the benefits and if it was extremely simple to use, but maybe I'm wrong. That is why I'm here. I simply want some feedback from people in the community if they would find this useful and if they would actually use it. I've already rewritten the core of GameLaunchProxy from scratch, and I was going to implement this into a new app that majorly simplifies the entire app's concept, but as I thought it over, I decided it may be much more useful to just write the functionality directly into a LaunchBox plugin (accomplishing the ultimate level of simplicity). 

    Anyways, if any of you made it though that doctoral thesis, please give me some feedback and let me know what y'all think. Since I've already written most of the core functionality, it shouldn't take a lot of time for me to implement it into a plugin if I get positive feedback from enough people. Thanks!

    • Thanks 1
  20. In case anyone is wondering, the Steam Client update yesterday/today (2017-12-13) broke GameLaunchProxy. I have already fixed the problem and will be uploading version 0.0.6.1 to my GitHub shortly. Let me know if you are still have any problems (the new version should also work with the Steam Client Beta).

    https://github.com/lahma69/GameLaunchProxy/releases

  21. Lol. Actually I'm glad you popped back into the thread Nielk1. I was wondering, have you ever messed around with signature scanning in order to use functions within DLLs which have their code changed on a regular basis (i.e. function offsets always changing and the functions you need aren't exported, such as steamclient.dll). I see that sig scanning has been used quite a bit within the Steam/Valve hacking/programming community and although it has its advantages and disadvantages just like any other method, it does seem like it might be a good method to use for such a narrow use-case application like this (adding/removing/modifying shortcuts within Steam.) I've used some IDA Python plugins (created by various members of the reversing community) to create some wildcarded function signatures from the steamclient.dll, but I have not yet had a chance to write some C# code to scan the DLL for the signatures and hook into them at the offsets where the signatures are found. It doesn't seem like it will be too difficult, but I do think that I'm going to have some questions about a few things which is why I'm asking if you have any experience in this area. As always, thanks for the neat app you created. I've had fun tinkering around with it ?

×
×
  • Create New...