Zombeaver Posted August 17, 2016 Share Posted August 17, 2016 Yeah I totally understand that, believe me. For my purposes I'm hoping this will help a with multi-disk Atari ST games via the Steem emulator. Honestly for that the existing functions should work but...just don't for some reason. All I need it to do is to load multiple .st files via command line but for some reason this doesn't work in LB. The proper format is simply Emulator Path\Emulator.exe "Disk 1 path\disk 1 name.st" "Disk 2 path\disk 2 name.st" What this should do is load the emulator, load the first disk into "Drive A", the second disk into "Drive B", and then start the first disk. It seems like I should be able to accomplish this in one of two ways via LB - either 1) Leave the application/rom path in a game entry empty, use Steem as the emulator, and then tell the entry to use special command line parameters and simply specify my "Disk 1 path\disk 1 name.st" "Disk 2 path\disk 2 name.st" 2) Direct the application/rom path in a game entry to Steem, uncheck "use an emulator" and again specify special command line parameters of "Disk 1 path\disk 1 name.st" "Disk 2 path\disk 2 name.st" Neither one of these seem to work, however. The workaround I've found, which is a pain in the butt, is to simply create a shortcut in Windows to Steem, then edit the target path to append "Disk 1 path\disk 1 name.st" "Disk 2 path\disk 2 name.st" then rename the shortcut to the game name, and then use the shortcut as my "rom" in LB, and uncheck "use an emulator". It's a real pain to do that though... Link to comment Share on other sites More sharing options...
cammelspit Posted August 17, 2016 Author Share Posted August 17, 2016 @Nielk1 Please, by all means! I am by no means a hardcore scripter. Before all this, I had never even attempted anything quite like this before and so I have been learning as I go. Some of the awesome guys on the steam controller discussions have also tried to help out but we seem to always end up hitting a wall in one way or another. If you nail this, you will literally be my best friend forever! Link to comment Share on other sites More sharing options...
cammelspit Posted August 17, 2016 Author Share Posted August 17, 2016 @Zombeaver I added all of my X68K disk images to LB but I have a similar limitation. Too many games to just go around and make custom command lines or shortcuts, which is a great idea I hadn't tried yet, to use more than one disk at a time. Link to comment Share on other sites More sharing options...
Zombeaver Posted August 17, 2016 Share Posted August 17, 2016 The thing that puzzles me about it is that those two options should be functionally identical to the shortcut method. They should all be doing the same thing: Emulator -> Disk 1 -> Disk 2. Jason asked for some examples of platforms that are problematic for importing so I mentioned it there along with ScummVM and Amiga. They're all doable, just not in a practical, time-friendly way (or one that the average user would probably be cognizant/capable of). Link to comment Share on other sites More sharing options...
cammelspit Posted August 17, 2016 Author Share Posted August 17, 2016 @Zombeaver I know, I hate mentioning my steam controller all day long but because I use it 100% I have had some issues with privileges in some games. The overlay and such wouldn't work in Mass Effect unless steam itself was loaded in admin mode. Perhaps there is something about the emulator that Windows disallows due to it being launched from a third party app and not from Windows itself. Maybe, you could try loading up LB itself in admin mode to see if that helps in any way. Permissions have always been somewhat of a bane of my existence so I use the task scheduler to give steam god privileges so a similar method could be used for LB if the admin thing works. The benefit is you will no longer get the UAC prompts but the downside, of course, is security but if you don't do anything silly or run any crazy unknown apps from LB you should be fine as it will inherit the privileges right from LB if it is run this way. Link to comment Share on other sites More sharing options...
Nielk1 Posted August 18, 2016 Share Posted August 18, 2016 (edited) Welp, I just rigged LaunchBox to start my proxy program which stores a record and tries to rename it's own shortcut in steam, and then launches itself via steam, which then in turn launches whatever program LaunchBox passed as an argument, in this case RocketLauncher which then ran RetroArch... What have I done... Side point, the shortcut renaming thing will only work until steam majorly updates their client in which case the DLL interface I am using will change and my renames should fail. That said, I also discovered that the game's shortcut ID changes based on it's name. So yea, I'm still puttering around with this. Steam overlay didn't want to work but I don't know if that was the fault of my proxy not forking properly, RocketLauncher not forking in a way Steam likes, or RetroArch not liking the steam overlay. It's really buggy right now so I need to tinker with it. Edited August 18, 2016 by Nielk1 Link to comment Share on other sites More sharing options...
cammelspit Posted August 18, 2016 Author Share Posted August 18, 2016 Wow, dude! Super cool you already have something that more or less works! I would be MORE than happy to give it a go if you think it is even close to usable yet. I can do any bug testing you would like. I do have one question, though. When you have the shortcut rename itself, what exactly does the shortcut use to do the renaming? My assumption is, just the name of the exe without the .exe file extension? This is the default behavior in steam when adding a non-steam shortcut. The majority of people will just leave it that way so that is sufficient. A more robust way would be to somehow rename it to whatever LaunchBox has as the emulator name or even the system name but I am not sure if that is revealed in a way you can easily access it. Still, SUPER cool! Link to comment Share on other sites More sharing options...
Nielk1 Posted August 18, 2016 Share Posted August 18, 2016 (edited) I'm using the undocumented functions of the Steam Client API. I am being careful using them since they can stop working when steam makes a big update so I want to be sure this works even when renaming is disabled. EDIT: OK, so everything "works". Of course I have no way to actually pass it the name even though I went through the trouble of implementing a rename function, so that's a bit funny. When I use it with RetroArch via RocketLauncher it works but without the steam overlay (which looks like it might be an RL issue). When I use RetroArch with it directly it just self closes right away. It's technically working, but it's probably a bit over-engineered. I'll keep tinkering and if my resulting thing is too big I'll strip it down. EDIT2: I pushed my source any my binary up. I omitted the Steam4NET DLL so it should hopefully skip the rename function. The lacking Steam4NET DLL also disables some logic that makes it more aggressively try to find the 3rd Party Game link in Steam if the name changes. I'm quite late for bed here so I'll just give you the link to the 'so alpha it's omega' build and source: https://github.com/Nielk1/GameLaunchProxy/releases The game name parameter is optional and won't do anything without the Steam4NET DLL anyway. Edited August 18, 2016 by Nielk1 Link to comment Share on other sites More sharing options...
Nielk1 Posted August 19, 2016 Share Posted August 19, 2016 @cammelspit Yes, I got it working perfectly. I'll update my GameLaunchProxy to version 0.0.2.0 and update my topic for the 3rd party tool with information. It will take me some time to write that up. It's a little fiddly but it works. (The fiddly part is that you need to sort out Steam's ID for the 3rd party shortcut.) I use RocketLauncher to launch my actual emulators, so I hacked up RetroArch's script for RocketLauncher to pass through my proxy which in turn caused it to start with Steam. Because of the way RocketLauncher watches for windows it seemed to work properly, though more testing for issues would be needed. I don't know how well it will work with just LaunchBox in the picture. Link to comment Share on other sites More sharing options...
cammelspit Posted August 19, 2016 Author Share Posted August 19, 2016 @Nielk1 So, it worked to some degree. It launched Dolphin from launchbox through steam, the hard part works! 0.0.1.1 doesn't seem to want to pass along the command line arguments so I literally can NOT wait till you put up the 0.0.2.0 version to try out. The steam controller works and it saw my Dolphin config exactly as I wanted it to so it is super close! Cannot tell you how excited I am with this. This is just plain perfect for my needs. Just followed the GitHUB and the 3rd party sub-forum post you made so I can keep up to date. Anything, anything at all you need me to try I am there buddy, you rock! Link to comment Share on other sites More sharing options...
Recommended Posts