Jump to content
LaunchBox Community Forums

Lahma

Members
  • Posts

    403
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by Lahma

  1. Well, it appears that the changes to the beta client have been pushed to the non-beta client, as my updated GameLaunchProxy is no longer working (I saw my Steam update yesterday.) When the beta stopped working, I looked into the problems that were causing it to no longer work, and it appears that its going to be a pain in the ass to fix the problem. If memory serves me right, it is specifically failing to retrieve the client engine interface. If I have some time today, I will take a look at the current state of things to see if there is any quick fix, but I suspect that is not going to be the case. I will report back here when I learn more.

    Update: It appears I may have jumped the gun, as some of my GameLaunchProxy shortcuts are still working, while others are not. I'm going to do some investigation and I will report back here when I know more.

  2. Just thought I would update you guys and let you know that the new Steam beta broke GameLaunchProxy again. It appears that the either the SteamClient interface offset or signature has changed, so its going to require a bit of reversing in IDA to figure out what is going on to update the Steam4Net dll. In the meantime I would suggest using the non-beta client as it is still working fine.

  3. 13 minutes ago, Kriven said:

    I don't think LaunchBox itself provides downloads for music themes. Are you using a legit version of the program?

    Yes, I'm using a legit paid license. I figured that LaunchBox doesn't actually have anything to do with the music library, but I thought someone here might know who the music library was downloaded from. According to Neil, the music is from emumovies, so maybe I will try to report this problem to them. Honestly, it's not that big of a deal.. I just thought it was strange that the music for such a popular game, that literally everyone is going to have in their SNES rom collection, has the wrong music.

  4. Ya, I really wish Valve would just add these basic client functions into their publicly available API/SDK. I'm not sure why they are so opposed to such a thing. I guess when you're essentially the only kid on the block, there's not a lot of incentive to make your application flexible for other developers to integrate with. 

    Hey Nielk1, if you happen to look at this thread again any time soon, I got a quick question for you. Actually, camelspit could probably answer this as well. How many times over the course of developing your app did Steam updates break the shortcut functionality (like how many times over how long) by either changing function offsets or the number/type/order of function arguments? I'm just wondering how common the problem is to judge how much work is warranted in trying to find a better way to do it.

  5. I'm not sure if this is the appropriate place to report such a problem, but this appears to be the only forum section labeled for posting "issues". While this is admittedly a very minor issue, I figured it was worth reporting.

    The "Super Mario World" [SNES] theme music that plays when highlighting that game is incorrect. I don't know what game's theme music it is playing, but it definitely isn't Super Mario World. I manually played the mp3 at "LaunchBox\Music\Super Nintendo Entertainment System\Super Mario World.mp3" and it is indeed the wrong music (so it is not an issue of LaunchBox simply playing the wrong mp3).

    I'm not sure what database this music is downloaded from, so it is entirely possible LaunchBox has no control over fixing this problem. Being that I do not know who to contact to sort such a thing out, I figured I would post it here so that someone who is more knowledgeable could pass the message along to whoever is responsible for such things.

    I was able to find the correct MP3 to replace the incorrect one with, but I assume there might be legality issues with attaching said file to this forum post. Instead, I will provide instructions for locating the MP3 from an outside source for anyone who is interested. The way I obtained the file was finding the Super Mario World title song on YouTube at the following URL:

    I then used the following webpage to convert that YouTube url into a downloadable MP3:

    https://www.onlinevideoconverter.com/mp3-converter

    Thanks for all the hard work on LaunchBox!

  6. Nielk1, its great to hear from the creator himself! I really appreciate you taking some time to explain in detail the workflow of the application and how it evolved into what it is now. I actually came across the "temporary shortcut" functionality you described, but I have not looked into it too deeply yet. 

    Looking back through the different version of the Steam4Net library and seeing how the Steam client library has changed over time, I noticed that the AddShortcut function has always required the AppName, the ExePath, and the StartDir as the 1st 3 arguments, and always in that order. I was thinking about using dynamic objects (reflection could be used as well) to get the Steam client libraries exported functions, and use those 3 strings as the first 3 arguments to the AddShortcut function. For the remaining arguments of the AddShortcut function, I think we could just use null objects, and then use the single-purpose functions (also gotten using dynamic objects) to set the shortcut icon, set it hidden, etc. It seems like this should resolve the problem of the Steam client library functions changing offsets between releases and the problem of the AddShortcut function changing the number of arguments required. I may be way off here, but at first glance, this seems doable without a ton of work. Do you see any glaring problems with this implementation? Perhaps I will play around with it tonight and see if its possible.

    Anyhow, thanks again for your input, and all of the hard work you've put into this application.

    Edit: It would appear that I oversimplified things after looking at the steam client dll in IDA. These functions apparently are not exported (unless they actually aren't in the steam client dll), so that makes things a lot more difficult.

  7. Wow, that sounds terrible. I'm glad your wife is ok though. I hate having to go to the ER. I will do just about anything to avoid it unless I'm missing an arm or something. 

    The LaunchBox scraper is working perfectly in my testing. Your plan sounds great. When you get some time, put it through its paces and take notes of any problems you come across. Since you have extensive experience testing the app already and collaborating with Nielk1, I will follow your lead. Let me know what you think should be priority, and we will tackle those issues first.

    I was actually thinking it might be advantageous to create a branch of the application with only the Steam proxy/shortcut and Launchbox scraping components. It would definitely significantly simplify the code, and more importantly, at least in my opinion, really simplify the description of the application. As it is now, if I was looking for an app to do what it is that we use GameLaunchProxy for, and I came across the GitHub page, I really don't think I would have any idea that the app was what I was looking for (based on the current description). Anyways, this probably isn't priority, and we can discuss it later if we think its important. Just an idea.

    I added you on Steam, so hit me up. I'm going to bed! Talk to you tomorrow.

  8. Alright, I think I got this GitHub thing figured out. I've got the modified code and fresh release posted. Give it a shot and if you run into any problems, let me know. 

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

    P.S. Since I know very little about any other communities (such as on Reddit as you stated) that might have used this app when it was working previously, feel free to notify whatever parties might find it useful. I'm happy to do whatever I can to keep Nielk1's project working until he has time to replace it with his new application.

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

    • Like 1
  10. 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).

  11. 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?

  12. 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
  13. 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?

×
×
  • Create New...