Jump to content
LaunchBox Community Forums

Lahma

Members
  • Posts

    403
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Lahma

  1. 3 hours ago, neil9000 said:

    Correct, all our "launcher" importers use the respective API's to import your roms, it would be impossible for us to just scan your PC and be able to pick out games that came from Origin via the .exe.

    Thank you for the information @neil9000. That is helpful to know. If you have easy access to the information and it wouldn't be too inconvenient, could you confirm that the below information is correct concerning the custom URL format for Amazon, Battle.net, Epic, GOG, Origin, uPlay, and Microsoft Store and if possible, provide examples for the ones I'm missing (Amazon)?

    Battle.net:
    battlenet://{GameID}
    Example 'GameID': wow

    Epic Games:
    com.epicgames.launcher://apps/{GameID}?action=launch&silent=true
    Example 'GameID': Petunia

    GOG Galaxy:
    "C:\Program Files (x86)\GOG Galaxy\GalaxyClient.exe" /command=runGame /gameId={GameID}
    Note: As far as I can tell, GOG Galaxy doesn't use a custom URL handler but instead just uses command line arguments provided to its client EXE regardless of whether it is a native GOG title or an external game just manually added to the GOG client, right?
    Example 'GameID': 1423049311

    Microsoft Store (Xbox):
    xbox://{GameID}
    Example 'GameID': Microsoft.Patagonia_8wekyb3d8bbwe

    Origin Games:
    origin://LaunchGame/{GameID}
    OR
    origin://LaunchGameJump/{GameID}
    OR
    origin2://game/launch/?offerIds={GameID}
    Note: Not sure what the difference between the 1st 2 are.. I assume it just changes the behavior of the launch in some way? I would assume that the 3rd one (origin2://) is some type of new/updated API/URL handler?
    Example 'GameID': OFB-EAST:46851

    Steam (including just for reference as I'm intimately familiar with how Steam's URLs work):
    steam://rungameid/{GameID}
    Example 'GameID': 1145360

    uPlay:
    uplay://launch/{GameID}
    Example 'GameID': 420

    Thanks!

    • Like 1
  2. On 6/2/2021 at 5:42 PM, mrdead said:

    That makes perfect sense honestly.  I wonder if we should compile a list of easy work arounds.  For instance Origin you just have to manually point LB at the EXE and it seems to work.

    @mrdead Did you add the Origin game to LB via the "Origin Games" importer?

    image.thumb.png.3e55449d61ceb60bde98e734ccd1a571.png

    I've personally never used that feature myself (along with many of the other game/launcher importers) so I would have to look into it further to see exactly how it works. If Origin game shortcuts use some type of a custom, non-standard launcher (kind of like how Steam uses a custom 'steam://' URL handler to launch its own game shortcuts [steam://rungameid/XXXXXX]; Battle.net does this as well [battlenet://WoW]), they are definitely not going to work with SteamLauncher unless specific custom code is implemented which can identify when an Origin game is being launched and how to handle it.

    Based on the screenshot you posted of the error dialog, it looks like the Origin launcher might be doing just that (using some type of custom URL handler, similar to Steam). The error says, "Windows cannot find 'D:\Games\LaunchBox\origin:\Origin.OFR.50.0002537'. [...]". Being that the path in that error has a colon in it (origin:), which is an illegal character in Windows file paths, it looks like SteamLauncher is likely trying to assemble a file path as best as it can from a URL format which it doesn't understand. If I had to guess, I would say that Origin games use some type of URL such as 'origin://Origin.OFR.XX.XXXXXXX'. That is just a guess though.. without looking into it further, I can't say for sure. Regardless, even if I'm not able to implement a custom handler for Origin URLs, I should definitely implement code which detects when a game is being launched using a URL format that SteamLauncher does not recognize and provide a more useful, descriptive error to the user.

    I'm definitely not saying that implementing a custom handler for Origin games is out of the question (I'll have to look into it further before committing one way or another) but if I do decide to do it, it likely won't be until after I implement specific handlers for the GOG and Epic Games launchers. If you have any Origin games on your PC, could you look at the properties for one of those game's shortcuts (a shortcut that was created automatically by the game's installer, either on your desktop or start menu) and send me a screenshot of the properties dialog along with the contents of any textboxes in said dialog? Examples:

    image.thumb.png.acbbe380027d8d958d7c527d7be6fcc8.png

    Target: "C:\Program Files (x86)\GOG Galaxy\GalaxyClient.exe" /command=runGame /gameId=1423049311 /path="C:\PC_Games\GOG\Cyberpunk 2077"
    Start in: "C:\Program Files (x86)\GOG Galaxy"

    OR

    image.thumb.png.9ff1c09dc8e7fdadc06e9adf73bfa3dd.png

    URL: steam://rungameid/1286830

    image.png

  3. On 5/4/2021 at 2:42 PM, mrdead said:

    Origin links not working Boss

    image.thumb.png.ad78e0a025ecd73f3c4cdf2ee692e88b.png

    Trying to keep the plugin updated to work with all of these various launchers and their unique problems (especially when most of them are going out of their way to make 3rd party overlays not function with their launcher/games) is honestly something that I am probably just not going to be able to keep up with. In nearly all instances, there are workarounds and solutions you can implement if YOU decide that it is worth investing the time and effort to learn what these are and how to apply them. However, given that I have spent many, many hundreds of hours developing this plugin by myself, in my free time, without so much as asking for a single donation, I hope you will forgive me when I admit that I'm probably just not up to investing the extra effort into keeping up with unique intricacies of each publisher's launcher and battling against their constant efforts to keep 3rd party overlays from working.

    I may make exceptions to this in some instances but it will probably require some help and effort on your part as well. Instead of just saying that "so and so" launcher doesn't work, you might 1st check if manually adding a non-Steam shortcut to Steam with one of their games works in the 1st place. If it does, then perhaps it is an issue that I might be able to look into and fix. If it doesn't, then this is likely not something I am going to be able to implement at the end of the day, as all this plugin does is to create a temporary non-Steam shortcut in a way that is convenient and transparent to the user. Any additional information, debug logs, or notes you are able to provide me can go a long way in getting a problem fixed. It makes me very happy to be able to share the efforts of all my work with all of you but at the end of the day, if you really want an issue that is important to you fixed, putting in just a little time yourself to investigate the issue and provide me with a little bit of background may be the difference between the problem remaining in limbo and the problem getting fixed.

    With all of that being said, perhaps you might be willing to look into whether or not Origin games in general work with the Steam overlay? If not, probably the only solution is going to be something such as GlosC as others have mentioned in reference to UWP/Window Store games. Sorry if my response was a little more direct than usual but I have been very busy and stressed out with work stuff lately and I just haven't had nearly as much time to dedicate to the plugin as I would like. The point of my response was just to indicate that any help I could get from any of you that would make it quicker/easier for me to fix issues (that are fixable) would really go a long ways. Let me know what you find out in regards to Origin games and the Steam overlay and I will try to look into it if I can.

    • Like 2
    • Thanks 1
  4. Alright, the new update is ready to go. I've done very little testing prior to releasing this so there may be bugs or unforeseen issues. It is 6AM now and I've been working on getting this finished for about the last 14 hours... Needless to say, I am tired and need some sleep. If you have any issues, please post them here in the support thread and I will address them as soon as I can. If everything works great for you, I would love to hear that too. You can download the new update from the plugin download page linked below:

    SteamLauncher NETCore Alpha v0.9.7.6

     

    • Like 2
    • Thanks 3
    • Game On 2
  5. 19 hours ago, fromlostdays said:

    Don't kill yourself over it! haha. Everyone can wait. But do know that its appreciated, at least. :)

    In terms of the Steam Controller Support itself... I myself have a historic love of controllers (I never really got the hang of KB/Mouse but more importantly my computer is hooked directly to my living room TV and I play on the couch.... I have 10 years behind me of using EVERY available method of wrapping and keymapping to try and make things work. Steam demolishes all of them. It's not even close. Radial menu, MOUSE REGIONS (I saw a video the other day of someone using steam mapping to play league of legends on a controller) and just yesterday I bought and set up a Real Time Strategy game called They are Billions and played it with a controller with no trouble. It is a bit of learning curve as even with all the many keymappers I have under my belt, it STILL has features I don't know about. So yeah, I agree, its underrated.   

    Do you ever find yourself having more fun messing with setting up the controller configs/profiles than playing the actual game? Not saying that has ever happened to me or anything... but I did hear that from a "friend" once. Weird guy... ?

    Getting close to finished with the update now. I've finished all of the code related to implementing user supplied vtable offset values including all of the GUI stuff and config-side stuff. I've also implemented an auto-updater feature for automatically retrieving the vtable offsets from an online db I setup. That way, until I develop a better way of retrieving these values in an automated fashion, the plugin should "just work" (given I keep the online db updated that is). That should mean that in the future, the plugin won't be out of commission like this for any extended period of time like this. Finding the new offset values only requires opening the new steamclient.dll in IDA Pro, performing a bit of black magic, and about 10 min later I can have the new offset values and update the online db. The only thing I have left to do now is update the backend/native code so that it will make use of these new config values instead of using the old algorithm that was in place for finding the values automatically. That shouldn't take long though as I'm basically just commenting out all of that code and having it retrieve the values from the config instead.

    • Like 2
    • Thanks 1
    • Unusual Gem 1
  6. On 3/27/2021 at 6:36 PM, fromlostdays said:

    Just want to say thank you for this and for all the work! This is a feature I didn't know I needed and now I'm not sure how I lived without it. It's great for modded PC games oddly enough, allowing me to map controls using steam onto games which don't work reliably (or at all) when using the traditional method of importing them to steam as a non steam game, and also easily mapping old computer systems I emulate on the fly.

    You're awesome.

    Hey @fromlostdays, thank you so much for the kind words... really. It means so much to me to hear from users like you and it really makes the many hundreds of hours (if not more) I've put into this plugin's development worth all the work. Regardless of my plugin, I really think if more people were aware of Steam controller configuration and the enormous possibilities it provides, I think it would have a MUCH larger following. There is simply nothing else like it... not even close. Obviously, I thought it was so impressive and useful that I dedicated a large portion of my time to making a plugin that makes it more convenient and easy to use (at least for LB users.. although I would like to extend its functionality to be more generalized at some point if possible). So ya, thanks for your thanks. It always makes it easier to keep working on the project when I know there are people that find its use indispensable and are relying on me to maintain it and keep it working.

    In addition to that, I just wanted to provide an update on why I wasn't able to release the update yesterday. Valve made some pretty significant changes in 'steamclient.dll' which essentially completely broke the algorithm (if you can even call it that) I was using to locate the correct vtable offsets for certain undocumented/unexported functions needed for the plugin to operate. The method I was using lasted for a long time so I would say it was worth the effort I put into it but I'm going to need to develop something probably a bit more complicated in order to prevent situations like this from happening in the future. However, I'm implementing a temporary workaround, which should work fine in the meantime, until that is finished. Basically, I'm going to allow the 2 troublesome vtable offsets to be manually defined in the config file (can also be modified via the GUI). In this way, if the offsets change in the near future before I can implement this new method, I can provide an update in both the support thread and the plugin download page with these 2 new offset values and they can be easily changed by the user. I'm working hard on getting this update pushed out so stay tuned to the support thread. Shouldn't be too long. Thanks again for everyone's patience.

    • Like 4
    • Thanks 2
    • Unusual Gem 1
  7. @Metrasher and @Aetavicus, are you using the beta version of Steam? If so, please note the post a made a page or 2 back about there being a problem with the newest Steam beta release. As I stated in my last post, I am working on a new update right now which will fix that issue but in the meantime you can simply revert back to the non-beta Steam client in order to fix the issue. Like I said, I've been out of the country for over a week and I am just now getting back into the swing of things. Perhaps the issue that caused the Steam beta to break has now been integrated into the mainline release. If that is the case, I apologize and the new update will definitely fix both versions. Please let me know if y'all are using the Steam beta and if you are, if reverting back to the non-beta version fixed your issue. Thanks.

  8. Just letting everyone know that I'm looking into some weird problems going on with the plugin at the moment. For me, LB is stalling on startup and the window never actually appears. If I had to take a random guess, I would say that a recent Steam update probably broke something but that is total conjecture at this point. I will let y'all know as soon as I figure out what the issue is. It would probably be helpful if y'all could chime in on whether y'all are seeing the same issue or not (and whether you are running Steam or Steam beta).

    Update: Looks like the Steam beta might have made some type of significant changes in the vtable structures again. If you're having problems with the plugin while running the beta version of Steam, try switching to the non-beta version until I have a chance to release a hotfix.

  9. On 2/27/2021 at 9:12 AM, Aetavicus said:

    Hey, sorry to hear that. Don't feel like you have to rush to fix this as it is not a critical problem for me. Hope your situation gets better!

    Note: The Pastebin URL might have expired by now. Do let me know if you require any additional info from my end.

    I'm really sorry about not getting back to you yet man.. I've had a LOT going on the past few weeks. The pastebin URL did indeed expire. I do want to look into your issue further though. Unfortunately, it looks like there may be a bigger issue going on with the plugin at the moment. Literally discovered it right this minute. Looks like a recent Steam update might have broken something. I'm looking into it as I type this so let me figure that out first and then we'll come back to your issue.

  10. 17 minutes ago, Aetavicus said:

    @Lahma

    I installed the latest update that you posted but I am still unable to get the plugin to work for GOG-imported games.

    Using the game Dead Cells as an example, it is imported via the GOG importer in LB.

    1. The application launch path is "Games\Windows\Dead Cells\Launch Dead Cells.lnk"
    2. The properties of "Launch Dead Cells.ink" are as follows:
      • Target: "E:\LaunchBox\Games\Windows\Dead Cells\deadcells.exe"
      • Start in: "E:\LaunchBox\Games\Windows\Dead Cells"

    When opening the game from Launchbox, the following happens:

    1. GOG Galaxy client launches
    2. Game launches

    The SteamLauncher plugin does not appear at all during this process (Usually I see the icon appear in the taskbar for other games.) Note that all these was done without changing any of the default SteamLauncher settings.

    Changing the application launch path in LB to "Games\Windows\Dead Cells\deadcells.exe" also results in the same outcomes as above which is pretty strange because if I directly clicked on "deadcells.exe" in Windows Explorer, it will immediately open up the game without GOG. So my guess is something in LB is getting GOG to be launched when the game is imported via GOG. No idea what as I do not see any other configuration parameters in the game details in LB besides the usual metadata.

    I could only get the plugin to work if I delete the existing application in LB and just directly re-import "deadcells.exe" through "Import a ROM" in LB.

    That is very strange... If you would, do me a favor and on Dead Cells (imported from GOG), change the application launch path to point directly at deadcells.exe. Then, ensure that GOG Galaxy is completely closed (ensure it isn't still running in your system tray). Finally, open the SteamLauncher settings, change logging to verbose, click save, exit LB, reopen LB, try launching the game (with SteamLauncher enabled), let it run for a 10+ seconds, exit the game, completely close out GOG Galaxy again, exit LB, and then look for the file "debug.log" in the "LaunchBox\Plugins\SteamLauncher" folder. Copy/paste that file on pastebin.com and send me the URL. Hopefully we can get this sorted out.

  11. On 2/11/2021 at 5:13 AM, Aetavicus said:

    The new update works fine for me.

    Now I am just wondering how to use the plugin with GOG games. Launching any game that was imported via GOG seems to bypass the SteamLauncher entirely (icon doesn't even show up) and I have had no luck with the launcher settings. I could only get the plugin  to work when I imported the game executable through "Import ROM files..." instead of "Import GOG Games...". Something about the latter option seems to be telling LaunchBox to just start the GOG Launcher immediately.

    Did anyone managed to get this plugin working for GOG?

     

    Sorry it has taken me so long to get back to you. First and foremost, if you haven't tried the update I posted today, make sure to download and try it as I fixed a problem directly related to shortcut file paths (.lnk files). Now, with that out of the way, let's move on. After very briefly looking at how GOG Galaxy game shortcuts work, it looks like there is likely at least a few different possible problems with games imported via the GOG importer. In LB, if you right click a game that was imported via the GOG importer, click on "Edit", and then select "Launching" in the menu on the left, you will see a field labeled "Application Path". This field will likely point to a shortcut file (.lnk). Using 'C:\PC_Games\GOG\Cyberpunk 2077\Launch Cyberpunk 2077.lnk' as an example Application Path, you would do the following to get the properties of that shortcut file:

    • Copy the following to your clipboard, replacing my Application Path with your own:

      • explorer /n, /select,"C:\PC_Games\GOG\Cyberpunk 2077\Launch Cyberpunk 2077.lnk"

    • On your keyboard, hit "Win + R", paste the contents from your keyboard, and hit Enter

    • Windows Explorer will open with the shortcut file selected

    • Right click the shortcut and select "Properties"

    Inside the "Target" field, there will likely be 1 of 2 different options. In my case, for CyberPunk 2077 (which was imported to LB using the GOG importer), the Target path is:

    "C:\PC_Games\GOG\Cyberpunk 2077\bin\x64\Cyberpunk2077.exe"

    If your shortcut target looks like this, where it is pointing directly to the game's EXE file, then you shouldn't have any problems whatsoever. In my case, I am able to launch CyberPunk 2077 directly from LB immediately after importing it with the GOG importer without changing anything at all. The Steam overlay works fine and everything is as it should be.

    If however, your shortcut Target path looks something like this:

    "C:\Program Files (x86)\GOG Galaxy\GalaxyClient.exe" /command=runGame /gameId=1423049311 /path="C:\PC_Games\GOG\Cyberpunk 2077"

    This means your game shortcut file is not pointing to the game EXE but is instead pointing to the GOG Galaxy launcher which is itself then responsible for launching the game based on the arguments provided in the shortcut file. This case is very similar to any of the many other cases involving launchers (uplay, origin, battle.net, etc) including the many problems that can be encountered with those. To demonstrate just one of the possible issues that could occur specifically with such a shortcut Target path, let's look at what happens when I launch CyberPunk 2077 directly from LB whenever CyberPunk's Application Path points to a shortcut containing the Target path shown above:
    Note: Just as a quick aside, for my install of CyberPunk (installed directly from the GOG Galaxy client), the shortcut in the root of the game directory points directly to the game's executable whereas the shortcut in my start menu ("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Cyberpunk 2077 [GOG.com]\Cyberpunk 2077.lnk") points to the GOG Galaxy client. Now, back to our example:

    First, if GOG Galaxy is NOT already running (check the system tray because it runs in the background even after hitting the close (X) button), you will see GOG Galaxy start up and after a short wait, the game will start (with the Steam overlay and everything else working). Now, if you close the game, you might notice something odd. Steam (and my plugin) still believe that the game is running despite having exited it. You can check if Steam still thinks you're in a game by looking at your name in your friends list. Right under your name it will say the game you're playing (if Steam thinks your still playing a game). The reason this is happening is because the only EXE Steam is aware of is "GalaxyClient.exe" and GalaxyClient.exe is still running. If you close the Galaxy client, you will notice that Steam now believes you have stopped running the game (as will my plugin).

    There are a couple of solutions I can think of to this issue, but the most obvious and easiest is to make your game point to its actual exe in LB instead of launching through the GOG Galaxy client. If you think about it, the fact that you're running the game through 3 different "launchers" (LB, Steam, GOG Galaxy) is getting a bit excessive and is bound to start causing problems anyways (not to mention the fact that if you don't disable GOG's overlay, you are going to run into issues trying to open/close the Steam overlay).

    Anyways, please let me know if the new update or any of the info in my post helped you fix your issue.

  12. 5 hours ago, alienhuntinyeti said:

    No problemo, sorry for giving you extra work -.-

    I just looked in the debug, and I think this could possibly help maybe?

    2021-01-30 14:21:38 [Error] [GameLaunchingPlugin] [OnAfterGameLaunched] - An error occurred while creating/launching the Steam shortcut: Quota violation

    debug.log 8.13 kB · 0 downloads

    Huh... That is indeed an interesting error. I've never before seen that line, "Quota violation", in the debug log. With that being said, after a quick evaluation, it appears that something in the latest Steam update probably broke things. Since I'm not seeing that 'Quota violation' in my own log, I can't be sure what that is about, but the plugin isn't working for me either and it appears to be related to the plugin not being able to locate the correct vtable offset for 'GetIClientShortcuts' in the Steam client DLL. I just opened the latest steamclient.dll in IDA and I'm analyzing it to see what has changed. After a cursory inspection, it appears that there were a LOT of new entries added to the IClientEngine vtable. While my plugin has code that attempts to be "smart" about finding the correct vtable offset, I intentionally limit the number of vtable offsets it is allowed to investigate around a specified static offset value in order to prevent startup of the plugin from taking too long. I thought I set this value sufficiently high that even a major update to the vtable would not cause the offset to be outside of this range but it appears that my assumption may have been wrong (although, if that is the the only thing wrong, and simply adjusting this value will fix the problem, that will be comforting as that means my "smart" algorithm for finding the correct offset is still working and only a single range value needs to be modified). Let me do a bit more testing and I will get back to y'all.

    • Like 3
    • Thanks 2
×
×
  • Create New...