Jump to content
LaunchBox Community Forums

GameLaunchProxy Version 0.0.3.0 (Steam launch proxy, temporary font loading, and more)


Recommended Posts

The new app is a script engine with an plugin system to add new functionality.  Plugins include items such as the LaunchBox module which can easily read the LaunchBox library files to find a game's additional information (such as the exact display name) and the Steam module which allows for launching arbitrary programs through Steam as well as requesting various information from Steam itself.  The prototype works, but I've been using the underlying code work recently to gather data from Steam for the GamesDB rather than finish a releasable prototype version.  It's also a smidgen slower than I would like.  It's sort of like RocketLauncher in a way, but instead of keeping a list of ROMs and using scripts to determine what to do it keeps a list of scripts and you need to pass it a rom and a script ID to know what to do.

Link to comment
Share on other sites

Currently the Overlay works so long as I keep RocketLauncher out of the process stack Steam is in (if RL runs the proxy, it's all good, if the proxy runs RL, it isn't).

I will try to solve this issue properly to avoid any issues with RL, I might find a way to solve it without any fun in RL scripts.

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Nielk1 said:

Currently the Overlay works so long as I keep RocketLauncher out of the process stack Steam is in (if RL runs the proxy, it's all good, if the proxy runs RL, it isn't).

I will try to solve this issue properly to avoid any issues with RL, I might find a way to solve it without any fun in RL scripts.

Sweet! Looking forward to seeing what you come up with.

2 minutes ago, cammelspit said:

LOL! That's my job! Though, someone to test around RL might not be a bad idea. I have been patiently waiting impatiently and I too am quite stoked at the prospects of the new app. ;)

Ha ha well I don't want to take that away from you but like you mentioned I'll be more than happy to test out RL with it :)

Link to comment
Share on other sites

  • 5 months later...

Hey all! I'm new and it's pretty quiet in this topic but I'm hoping I can get some help on this. I think I've taken all the right steps but my games will not launch from steam. Typically with an error of "failed to catch process from steam". I've removed the  -steam switch and everything works well. I've double checked the SteamProxy shortcut and it's definitely there. I've attempted both 0.0.4.1 as well as 0.0.5.0. I'm starting to dig into source code but haven't gotten very far yet. Any clues as to what I'm doing wrong? And here I'm including the log from my last 0.0.4.1 run:

 

9755f395-0e07-4c13-92eb-bbdbf05a5759	Start
9755f395-0e07-4c13-92eb-bbdbf05a5759	Version 0.0.4.1
9755f395-0e07-4c13-92eb-bbdbf05a5759	Raw Command Line	"C:\tools\glp0.0.4.1\GameLaunchProxy.exe" -steam -name "%gamename% (%platformname%)" -fallbackname "%platformname%" -proxy "C:\tools\retroarch\retroarch.exe" -L "cores\nestopia_libretro.dll" "D:\LaunchBox\7-Zip\Temp\Balloon Fight (JU) [!].nes"
9755f395-0e07-4c13-92eb-bbdbf05a5759	Possible Name Matches:
9755f395-0e07-4c13-92eb-bbdbf05a5759	-name Contains %gamename% or %platformname%
9755f395-0e07-4c13-92eb-bbdbf05a5759	New -name	Balloon Fight (JU) [!] ()
9755f395-0e07-4c13-92eb-bbdbf05a5759	-fallbackname Contains %gamename% or %platformname%
9755f395-0e07-4c13-92eb-bbdbf05a5759	New -fallbackname	
9755f395-0e07-4c13-92eb-bbdbf05a5759	Looking for steam shortcut
9755f395-0e07-4c13-92eb-bbdbf05a5759	Shotcuts must path to "C:\tools\glp0.0.4.1\SteamProxy.exe"
9755f395-0e07-4c13-92eb-bbdbf05a5759	Search Patterns:
9755f395-0e07-4c13-92eb-bbdbf05a5759		Balloon Fight (JU) [!] ()	
9755f395-0e07-4c13-92eb-bbdbf05a5759		SteamProxy	<rename>
9755f395-0e07-4c13-92eb-bbdbf05a5759		SteamProxy	
9755f395-0e07-4c13-92eb-bbdbf05a5759	Searching for item #0
9755f395-0e07-4c13-92eb-bbdbf05a5759	Shortcut ID Candidate:	0
9755f395-0e07-4c13-92eb-bbdbf05a5759	Searching for item #1
9755f395-0e07-4c13-92eb-bbdbf05a5759	Shortcut ID Candidate:	14598799026905153536
9755f395-0e07-4c13-92eb-bbdbf05a5759	Searching for item #2
9755f395-0e07-4c13-92eb-bbdbf05a5759	Shortcut ID Candidate:	14598799026905153536
9755f395-0e07-4c13-92eb-bbdbf05a5759	Done looking for steam shortcut
9755f395-0e07-4c13-92eb-bbdbf05a5759	GameRestoreData.json	{"SteamShortcutID":0,"OldSteamShortcutname":null,"AddedFonts":[]}
9755f395-0e07-4c13-92eb-bbdbf05a5759	steamproxy.json	{"Program":"C:\\tools\\retroarch\\retroarch.exe","Args":"-L \"cores\\nestopia_libretro.dll\" \"D:\\LaunchBox\\7-Zip\\Temp\\Balloon Fight (JU) [!].nes\"","ShortcutID":14598799026905153536,"AggressiveFocus":null}
9755f395-0e07-4c13-92eb-bbdbf05a5759	start	steam://rungameid/14598799026905153536
9755f395-0e07-4c13-92eb-bbdbf05a5759	failed to catch process from steam
9755f395-0e07-4c13-92eb-bbdbf05a5759	Restoring old Steam shortcut name
9755f395-0e07-4c13-92eb-bbdbf05a5759	End

 

Link to comment
Share on other sites

  • 2 weeks later...

Well, as of now, Steam has updated and the whole system is kind of broken. Until Nielk1 gets a chance to do some diagnostics and see what Valve changed, you just have to deal with loading LB/BB the old-fashioned way. The shortcut renames in Steam but never launches properly and they cannot be renamed back. Since you can't use an older version of Steam, try to just hang tight and we will see if something can be done about it. It broke my heart a bit when it happened too. :D

Link to comment
Share on other sites

cammelspit, 

Thanks for the quick reply! Its disappointing that its currently in a broken state, especially since I just discovered that such a thing exists (and I was ecstatic to try it out). However, I will be patient and wait to see if Nielk1 can provide an update. If I had a bit more context or insight into how things were working and what the current problem is, and if Nielk1 does not have time to dedicate to updating the project right now, I could probably update the source code myself. I am a reverse code engineer by trade, and have lots of experience with C#, so its probably just a matter of diving into the code and perhaps opening up the steam exe/service in IDA to see if we can figure out whats changed in its handling of the shortcuts.vdf file (if that is even the problem...). It appears that the proxy is successfully modifying the shortcut (at least initially) but it appears that steam proxy is never able to actually launch the shortcut (hence why it says it cant find the steam window associated with the newly launched shortcut). 

If you have any insight into the problem and you think you could give me enough clues into what is going on, and you would like me to take a look at the source code myself, let me know. I think I read somewhere in this thread that Nielk1 is actually working on any entirely new (but related) application, right? Perhaps he doesn't want to waste any more of his time with this old project if he has a new approach he using to tackle this problem?

Link to comment
Share on other sites

Just wanted to make anyone aware who cares, I forked GameLaunchProxy and I am attempting to fix the issues that are currently present. It would appear one of the main issues right now is that the Steam4Net library is out of date and so the functions it is attempting to use within the steam client dll are not at the addresses it is expecting them to be. Hopefully, by fixing this library alone (which shouldn't be too difficult seeing as GameLaunchProxy only calls a handful of functions within the steam client dll), the problem will be fixed. I will update this thread whenever I make some progress (I'm kinda busy with Super Mario Odys... I mean work... right now).

  • Thanks 1
Link to comment
Share on other sites

Ok, so I've definitely discovered the problems, and I can definitely patch things up to make things work. However, some of the logic in the app is a bit confusing to me, most likely because I don't have a complete grasp of everything the author was intending to do with the app. Besides simply using the one Steam shortcut as a proxy to run any application through, there is obviously additional functionality to put a unique shortcut for every single platform and/or every single game. Since the logic, at least in the main function of the app, is not segmented very well, its probably going to take a bit more time to go through. Can anyone who used this app previously tell me how you used the application? Like, were you simply using the single Steam shortcut as a proxy for every rom you launched, or were you actually using GameLaunchProxy to create multiple shortcuts for individual platforms/roms?

Link to comment
Share on other sites

The application was used by cammel and I and others to make it so that steam had an individual name for each ROM and that it would support the steam overlay. This allowed the controller configuration menus to be used so that you could load a profile for the rom and steam controller. Your friends would see the name of the rom you were playing on steam.,but that part was customizable. The individual name was important so that you can differentiate the controller settings on certain games. 

Link to comment
Share on other sites

That was definitely a feature but towards the end, that had broken entirely. The big thing was that Steam essentially just chokes on its own games list when you have more than a few thousand shortcuts. IIRC, the logic was meant to that in case the shortcut renaming broke, the app would then use individual named game shortcuts to launch itself, failing that, it would launch the platform shortcut so you could at least get Steam Controller configs per system. It all started because playing games through BB with the Steam Controller, I had to set BigBox in Steam and is I say, switched from playing PS2 to playing N64, I would have to manually change the config in the overlay so have proper control. Honestly, I am not 100% sure if that function ever worked quite exactly as intended. Usage was something like this.... In Launchbox, you would use a command line for the emulator itself. For emulator, you would use gamelaunchproxy.exe and the command line would be something like this

-steam -gameid %gameid% -name "%gamename% (%platformname%)" -fallbackname "%platformname%" -proxy "E:\Emulation\Emulators\DS\DeSmuME\DeSmuME_r5526_x64.exe"

 Anything after the This is how you could customize where the game name or platform name appeared in your steam. Fallbackname didn't work correctly but this is where you could tell it something like to launch via the platform shortcut in case of a rename failure. Anything after the -proxy argument was passed on as it to the emulator to build its own necessary command line. So you would put the path to the emulator in the command line and then it's arguments there, as in the example above. The app would scrape the LB database to get the gamename and platform name as a one time process and use that to figure out what game and platform it was. Bear in mind, I believe the scraping process was also broken right before the whole thing stopped working properly and there was at least one example I know of with an emulator that uses two EXEs for itself that proxy couldn't properly get Steam to hook into. FS-UAE.

 

Does that answer your questions? I wish I knew more about the specifics but that is the general idea of how a user would use it.

Link to comment
Share on other sites

Thanks for the additional info man. That is actually about exactly how I was assuming it was working, and I understand the ultimate purpose is to have individual Steam Controller configs for each individual rom (and/or platform) without having to switch them manually. However, can you please clarify one thing for me so that I can at least get the most important part patched first?

As I see it, the most efficient, and best way for the app to function is to simply use the single Steam shortcut that is dynamically renamed when launching a rom, so that your Steam doesn't get polluted with thousands of shortcuts (which you say causes problems anyways).

Additionally, according to my testing, Steam chooses controller profiles based ONLY on the name of the shortcut it is launching. For example, if I launch a shortcut and assign a controller profile, obviously it will by default use that same controller profile every time I launch that shortcut. BUT, if I rename that shortcut to a different name, it will forget the controller profile that was associated with it. However, I rename the shortcut BACK to what it was originally, it magically remembers the controller profile that was previously assigned to it.

So, what this tells me is that by dynamically renaming a single shortcut to "Rom-Name (Platform-Name)", our goal of having custom controller profiles per-rom will be accomplished. So, according to that breathless explanation, do you agree with me that the best course of action to take is to get the single Steam shortcut that is dynamically renamed working first? To me, that seems like that would be the most preferable way to do things anyways (whereas the other methods might be useful as fallback methods should the main method fail).

P.S. Just wanted to let you know, so you don't waste any more time on it, I have a good understanding of the command line options and how it uses the different parameters (as far as launching Steam, Big Picture, and retrieving the rom names using the game ID and stuff).

Edited by Lahma
Link to comment
Share on other sites

Woohoo! I just got my first rom launching from Launchbox through SteamProxy and successfully opening in Steam. Let me do a little more testing and clean things up a bit and then I'll shoot you guys an alpha build. Actually... since this is open source software that I modified, I think I legally have to post the source code online, so I might have to push my fork onto Github first. Since I don't have a lot of experience with forking projects on Github, it might take a little more time for me to get all that figured out. Or... perhaps I can just include the source with the executable I send y'all? I need to lookup the rules on how all that works.

P.S. Also, I just wanted to mention, that the name of the game, in this specific case, "Metroid: Samus Returns (Nintendo 3DS)", is appearing in Steam as its supposed to, and the controller profile is being remembered after launching a different rom, and then launching the original rom again. Not bad for a 4-bit Adder, eh? ;) Totally joking by the way... All credit goes to Nielk1 for all the hard work he has put into this program.

Edited by Lahma
  • Like 1
Link to comment
Share on other sites

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...