Jump to content
LaunchBox Community Forums

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


Recommended Posts

I created this program to resolve an issue I was running into with some RPG Maker based games that utilized custom fonts.
I further improved this tool to add support for proxying games through Steam to utilize the Steam Overlay.
I hope to grow it's utility based on user feedback.

I've not uploaded this program here yet as it is only version 0.0.3.0 however it may be downloaded here (including the source code):
DOWNLOAD BINARY AND/OR SOURCE >>GitHub<<

 

GameLaunchProxy

This application may be used as an in-between for other applications. This tool was created to resolve issues with RPG Maker games and older games where in the needed fonts would not be installed in the system and thus not not be available. The user may not wish to pollute their system fonts with additional fonts specifically for the purpose of one game. With this tool, fonts may be loaded at startup and removed at shutdown of the proxied application. Additional features will be noted as they are implemented.

This tool can also be utilized for a 2 step proxied Steam launch of a chosen application/emulator/game.

Features:

  • Load fonts into Windows temporarily and unload them after execution. Fonts will also be removed on reboot. Some games may not detect the fonts are installed but will properly utilize them anyway.
  • Aggressive Focus will attempt to pull the launched program into the foreground once per second for the number of configured seconds.
  • Launching emulators and games through Steam via proxy.

Core Tab

The core configuration of the Proxy application is on this tab. For the Steam functions to work, the Steam userdata shortcut.vdf path must be set. To scrape the LaunchBox library the LaunchBox Library LaunchBox.xml path must be set. The Front End Shortcut section allows for the creation of shortcut paths for use in LaunchBox or another front end.

Steam Shortcut Names

To utilize the Steam Proxy feature a proxy shortcut must exist in Steam. This can be done with 1 click to the "Add Default" button. The LaunchBox library must be scraped to generate a platform and gamename list for the proper function of the advanced Steam Proxy functions, such as shortcut renaming. Platform names may be adjusted in the platform list. Game names are matched from the LaunchBox Library scrape to the stored name and platform information via the rom filename. If the library item is an archive, the contained file will also be checked for the case where the front end extracted the rom file.

Launch Options

These are the original functions of the GameLaunchProxy. Currently available are temporary font loading and forced game focus.


"X:\path\to\proxy\GameLaunchProxy.exe" [-steam] [-steambigpicture] [-name <string>] [-fallbackname <string>] -proxy "X:\path\to\emulator\emulator.exe" "FULL\PATH\TO\ROM\FILE"



-steam : optional, triggers the steam proxy logic

-steambigpicture : optional, triggers steam big picture via steam proxy logic

-name : Name for Steam shortcut.  The system will try to find a SteamProxy.exe shortcut with this name and, failing that, rename the default shortcut.

-fallbackname : Fallback name for the Steam shortcut.  The system will try this name if all attempts at using -name fail.

-proxy : REQUIRED, any instructions after this command will be run through the proxy



%platformname% and %gamename% may be used in -name and -fallbackname, they will be filled from the Launchbox Library Scrape data based on rom filename

 

Use Cases:

Temporary Font Loading

Spoiler

 

  1. I extracted Pokémon Uranium from it's MSI package via msiexec (I didn't want to install it, it's hard to trust installers on free games like that)
  2. When I ran the game I encountered the following notice because I had not installed the fonts.  This is not uncommon in RPG Maker games though those that use installers try to get around it by installing their fonts into Windows:
    NoFont.pngI did not wish to install the fonts and pollute the system's font set (once you have to wait 2 hours for your fonts to load you'll never let it happen again) so I created this proxy.
  3. Add the proxy to LaunchBox as an emulator.LaunchBox.png
  4. Set the application to use the "emulator" so the application is passed as if it was a ROM file.EmulatorSettings.png
  5. Run the GameLaunchProxy application and add the game via the File > Add New menu.  Add the game's fonts to the font list.Screenshot.png
  6. Launch the game using the new "emulator" and ignore the font warning.  Temporary fonts are not always properly detected by RGP Maker but they are utilized.YesFont.png

 

 

 

 

 

 

Edited by Nielk1
New features for 0.0.3.0
Link to comment
Share on other sites

@cammelspit Pulling you over here now that we're dealing with this tool directly.

I ended up getting it to work with quite well for me with the 0.0.1.1 code and created a video showing what steps I used.
I'll use your feedback based on the video to determine what changes are needed for a proper 0.0.2.0.
I'm thinking maybe a switch to grab the game name based on the rom's filename in the last argument but I'd like to know what other considerations I should have based on your experience.

While I didn't create a version 0.0.2.0 yet, I did upload a new 0.0.1.1 binary zip that includes the Steam4NET DLL.  If you are uncomfortable not having the source code for that DLL I also noted what repo the version I am using came from.  The Steam4NET DLL is used for both renaming the shortcut in Steam and aggressively searching for the shortcut in Steam based on it's target.  If you don't have the Steam4NET DLL the program will run (as you've seen) but won't be able to rename the shortcut or aggressively search for the shortcut in Steam, instead falling back to the original shortcut id number.

Link to comment
Share on other sites

What exactly is the command line syntax for launching a rom? I ask because the proxy is not passing along the rom path. The rom path must have quotes in it or Dolphin will not see it. You describe pretty much exclusively how to do it via RL but what I need is a specific example of the command line exactly as the proxy needs to load a rom. Otherwise, I got it to pass along the other command line switches and load the emulator. My guess is, since you are only using RL to launch your roms, RL is what is actually sending the rom path to the emulator and the proxy can't do that itself yet. Almost there! :)

Link to comment
Share on other sites

@cammelspit

My understanding of these things is a little limited, so please bear with me.  I know we can get it working but it might take a few tries.  I am going to describe how the proxy works and then I am going to ask specifics about your attempt to use it.

 

Normally an emulator command line looks like this, note that the way LaunchBox is right now it forces the rom file-path to be the last item:


"X:\path\to\emulator.exe" -a -b -c "test" -d "X:\path\to\rom.file"


A command to launch that with the proxy would be:


"X:\path\to\proxy\GameLaunchProxy.exe" -steamproxystart 61436684 -steamproxyname "optional name" "X:\path\to\emulator.exe" -a -b -c "test" -d "X:\path\to\rom.file"

The proxy program will internally remove the <-steamproxystart 61436684> and if present <-steamproxyname "optional name"> attributes from the argument list and then take the first remaining argument <"X:\path\to\emulator.exe"> and call it as if it was the executable, passing it the arguments after it <-a -b -c "test" -d "X:\path\to\rom.file">.

This should work universally.  In my initial testing I was using the following in LaunchBox to cause Steam to launch RocketLauncher:

Emulator Application Path:


"X:\path\to\proxy\GameLaunchProxy.exe"

Default Command-Line Parameters:


-gameproxystart 16477675849710043136 "X:\path\to\RocketLauncher.exe" -f "%launchboxorbigboxexepath%" -p "LaunchBox" -s "%platform%" -r

I copied the attributes from RocketLauncher from the default configuration of RocketLauncher in LaunchBox.

 

I believe the above is what you want, supplementing your emulator of choice for where I have RocketLauncher.  That said, when I tried to use this with RetroArch directly from LaunchBox I couldn't get it to load the rom file for unknown reasons that might be the same as your issue.  Additionally, there's no convenient way to utilize the steamproxyname parameter from LaunchBox's emulator list.

If you don't mind my asking, what is your current 'Default Command-Line Parameters' being sent to the proxy from LaunchBox?  I think it should be something like this:


-gameproxystart 16477675849710043136 "X:\path\to\Dolphin.exe" -b -e

Which would in turn become:


GameLaunchProxy.exe "X:\path\to\Dolphin.exe" -b -e "FULL\PATH\TO\ROM\FILE"

 

Edited by Nielk1
grammar + fixing extra lines in code boxes
Link to comment
Share on other sites

Sure, 


-steamproxystart 1b86a02f "E:\Dolphin\Dolphin.exe" -b -e "FULL\PATH\TO\ROM\FILE"

 was what got me the closest so far. In this example, the desired output would be


E:\Dolphin\Dolphin.exe -b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

 but I would be willing to bet that it isn't sending the quotes or more likely sending two sets of quotes on to Dolphin for the rom path. I say this because when the game is unpacked and the path has no spaces AND I disable quotes in LB it loads the rom just fine but when the game is extracted at runtime it fails. Without quotes, from the command line, it simply doesn't work so from LB it shouldn't work, but it does. So I think the proxy is adding quotes and if the path is too long or has spaces, it will add the quotes in the wrong place because I was able to get Dolphin to tell me GX in not a valid command line option. My assumption as to what the proxy is actually sending is something like this


E:\Dolphin\Dolphin.exe -b -e "E:\Dolphin\CSO\F-Zero" GX NTSC-U.gcz

 when quotes are disabled or


E:\Dolphin\Dolphin.exe -b -e ""E:\Dolphin\CSO\F-Zero" GX NTSC-U.gcz"

 when they are enabled,

both of which would not work stemming from extra quotes. I also tested these exact command from the command line and it seemed, to me that is, that it behaved the same. I did notice that with quotes it seems to flash the black frame in Dolphin as if it were trying to open a rom but it immediately closes which would be expected if it tried to load a rom that was not there or perhaps it could have something to do with the attempt to keep the emulator on top and in focus upon launch? I will try and find a minute or two this afternoon to maybe do some more testing, maybe even spend a minute or two and make a video of precisely the scenarios I have encountered so far.

The kind of bug testing is kinda fun! Maybe I should do this stuff more often. :D

Link to comment
Share on other sites

@cammelspit

I ran the following through the proxy in the debugger:


-steamproxystart 1b86a02f "E:\Dolphin\Dolphin.exe" -b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

 

After cleaning the arguments and chewing them up it tries the following:

 

Process Filename


E:\Dolphin\Dolphin.exe

Process Working Directory


E:\Dolphin

Process Arguments


-b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

 

That all looks correct to me, so I'm pretty perplexed.

 

 

Have you ever used "Process Explorer"?  It lets you see the exact command line that was used to start a program.

Link to comment
Share on other sites




-steamproxystart 1b86a02f "E:\Dolphin\Dolphin.exe" -b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

will not open Dolphin at all so I have no way to know what command line it is using.




-steamproxy 1b86a02f "E:\Dolphin\Dolphin.exe" -b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

DOES work. But if the game is decompressed by LaunchBox then absolutely nothing occurs.




-steamproxyname "Dolphin" 

If I add this, again, nothing occurs even if I am using the uncompressed version that works without it.

UPDATE: I just tested this with both launchbox and Steam.exe as admin and it did load the game properly but the shortcut was not renamed and for some reason the overlay has stopped working when it was working this morning and yesterday during my fiddling. Literally no idea why...

 

EDIT: I did reboot once since it was working so, maybe?! o.O

Edited by cammelspit
Link to comment
Share on other sites

@cammelspit OK, time for some good ol' brute force debugging.

Use this alternate EXE that generates a log.
0.0.1.1_logging.zip

Use the "-steamproxystart" based command line and launch a game from LaunchBox.
This is the command that stores the data temporarily and tells steam to run with "-steamproxy" to pick the data back up.

Attach the resulting "GameLaunchProxy.log" to your reply.

This log will contain some rough info on what the proxy is doing.

Link to comment
Share on other sites

Just ran it and I live the log, VERY easy to read.


Start

Args[6]

[0]	-steamproxystart

[1]	1b86a02f

[2]	E:\Dolphin\Dolphin.exe

[3]	-b

[4]	-e

[5]	E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz

steamproxy.data contents

program:	E:\Dolphin\Dolphin.exe

arguments:	-b -e "E:\Dolphin\CSO\F-Zero GX NTSC-U.gcz"

steamid:	0

oldname:	

start	steam://rungameid/0

End

So, it seems it is not picking up the steam ID... This makes no sense because it was working this morning, not properly but it was at least launching Dolphin.

Link to comment
Share on other sites

@Nielk1 Since swearing and cursing with electric delight is likely not allowed here on a forum for the civilized I will refrain. I finally figured it out! The logging version really helped me nail it down what I was doing wrong. In the steam shortcut, I didn't put anything on the target but I pressed the launch options button and added it there, apparently, that was the wrong way to do it, at least this was my only initial problem. I had tried this before but it was before I watched ur video and I simply hadn't tried it again. Another thing that was not super crystal clear was the -steamproxy VS. -steamproxystart. steam proxy start was what I had put on the target when I tried it before, which is wrong. -steamproxy is meant for the target in the steam shortcut itself and NOT the command line but -steamproxystart is what you use for the command line and not the shortcut. It tipped me off I was doing something wrong when I had steamproxystart in both places and I had triggered and infinite loop where steam proxy was triggering itself to start over and over again forever, requiring a hasty reboot to stop it. From there I just watched that part of the video for the 100th time and it clicked. I changed it around to the way it is supposed to be and BAM worked like a charm. :P

Compressed ISOs that are uncompressed by Launch box still do not work and Dolphin opens blank. I have a theory on this, though. I think, when steamproxy closes, LB is thinking the emulator closed and then it deletes the ISO in the temp directory. Below is the log from the last time I launched a game. it not only looks entirely different but it seems to have made two attempts.


Start

Args[8]

[0]	-steamproxystart

[1]	1b86a02f

[2]	-steamproxyname

[3]	Dolphin

[4]	E:\Dolphin\Dolphin.exe

[5]	-b

[6]	-e

[7]	E:\LaunchBox\7-Zip\Temp\Gauntlet - Dark Legacy (USA).iso

set shortcut name	Dolphin

steamproxy.data contents

program:	E:\Dolphin\Dolphin.exe

arguments:	-b -e "E:\LaunchBox\7-Zip\Temp\Gauntlet - Dark Legacy (USA).iso"

steamid:	14478098407094222848

oldname:	STEAM PROXY

start	steam://rungameid/14478098407094222848

End

Start

Args[4]

[0]	-steamproxy

[1]	1b86a02f

[2]	-steamproxy

[3]	1b86a02f

steamproxy.data [4]

[0]	E:\Dolphin\Dolphin.exe

[1]	-b -e "E:\LaunchBox\7-Zip\Temp\Gauntlet - Dark Legacy (USA).iso"

[2]	14478098407094222848

[3]	STEAM PROXY

Starting Program

FileName:	E:\Dolphin\Dolphin.exe

Arguments:	-b -e "E:\LaunchBox\7-Zip\Temp\Gauntlet - Dark Legacy (USA).iso"

WorkingDirectory:	E:\Dolphin

Ended Program

set shortcut name	STEAM PROXY

End

Looks like I may be forced to use a similar RocketLauncher setup similar to the one you used in your video, see if Rocket Launcher can cope with steam proxy closing and not delete the iso before Dolphin has a chance to pick it up. Not sure if there is anything you can even do on that one or some workaround can be made that will work but otherwise, this is still a good tool and I will be reforming all of my shortcuts to work in this way for better steam controller config management. I also like the idea of using RL to make the rom name and the system name appear. Try game by game steam controller configs without the HORRID ICE tool would be great. Then I will have to go and muck about with learning a brand new launcher step so, who knows?

I moonlight as a freelance writer and have worked for PCGamer in the past and if you would like me to, I would be more than happy to write out a readme with more explicit instructions on exactly how it should be configured for normal front end operation. Another suggestion is you may want to put something in there to detect if someone does it wrong like I did, and triggers a loop so it can gracefully shut itself down and display a message warning about the target in the steam shortcut. So you know, The shortcut for me is now named "STEAM PROXY" and it renamed itself perfectly while launching and my whole Dolphin Steam Controller configs were perfectly intact.

Thanks again! :D

Link to comment
Share on other sites

@cammelspit Excellent.  You've found a good number of design flaws for me to correct.  I'll wait on that readme till things stop changing so much.

Things to fix:

  • Make it clearer what command is for Steam and what is not, renaming steamproxybegin to steamproxysetup and steamproxy to steamproxyactivate might help a bit
  • Instead of closing the initial proxy, let it wait a few seconds to try to find the window of the program it launched by name like how rocket launcher works.  Then it can hold onto that program and close when it does.  This will help LaunchBox see the emulator is still running even if it's actually just holding onto the proxy.
  • Find a way to prevent improper configurations from starting an infinite loop.  I never even realized this could happen.  The system semaphore method that applications use to run only once should work here if applied to the 3 main modes of the proxy separately
  • Adjust the rename command so programs like LaunchBox can use it.  Perhaps simply auto replace the text "%cleanromname%" with the filename of the rom.  Thus using [-steamproxyname "%cleanromname% (%platform%)"] in LaunchBox would have the desired effect.  I do need to again make note that the rename function will stop working at some point when Steam itself updates.  It will be a bit of an arms race so be prepared to, in the future, need to copy your controller configurations.  I do suggest using a separate proxy entry in Steam per system for when the rename functionality fails,
Edited by Nielk1
Link to comment
Share on other sites

@Nielk1

I agree completely with everything you are planning to do with this app.

Do you know what method utilities like ICE use for adding steam shortcuts? If the name of the shortcuts are API functions, could be a more or less failsafe way to future proof the renaming functions. Then, if steam renames files or moves them around, a simple update to the app could be used to deal with those changes instead so if they do remove said functions, no hard done.

I also have found that the proxy app, when using launchbox to call Retroarch, it is not sending the quotes around the -L "cores\mupen64plus_libretro.dll". Instead, it is sending -L cores\mupen64plus_libretro.dll so the emulator fails to launch and the log looks like this.


Start

Args[3]

[0]	-L

[1]	cores\mupen64plus_libretro.dll

[2]	E:\Emulation\Roms\Nintendo -Nintendo 64 (N64)\Banjo-Tooie (USA).zip

End

Yes, this is also the entire log. Sometimes it seems to try doing this a second time and will just have two duplicates of the same entries.

Another little happy discovery I found is DeSmuME, when launched from Launchbox having, in turn, been launched from steam always slowed down to about a third the performance it should be getting. Even after using system explorer to make it a high priority, it would still be that way. When steam launched DeSmuME using the proxy app, not only do my SC configs stick around but also the performance seems to round off right back to where it was when I use it by itself!

If you do want me to lend my writing skills to the readme at any point, please, just let me know and I will be more than happy to do it as a thank you for making this app. I have quite enjoyed the testing and bug hunting here.

For the time being, when you make a newer version of this app, it may be beneficial to either include the logging as a checkbox in the app itself or include a "debug" exe for the app itself in the archive. At least so I can get an idea of what is happening and so I can report anything to you in a more useful way.

Thanks again for this awesome thing!

  • Like 1
Link to comment
Share on other sites

@cammelspit

I'd never heard of ICE.  I am looking at it's source code now.

Edit:

@cammelspit

Does ICE have the ability to add shortcuts to Steam while it is running or does it need to have Steam restarted?  If it can add them while Steam is running this can change a lot.  I see that it is using pySteam, which itself is parsing he user's shortcut.vdf file (a file I didn't even know existed).

Edited by Nielk1
Link to comment
Share on other sites

@cammelspit

I've uploaded a new binary to github as release 0.0.1.2 that has changed the commands slightly.  You will have to fix your Steam shortcut and LaunchBox command.  It has a few new features you can see listed in the repository's readme.md file.  It should resolve MOST of your issues.  I was also able to grab a small piece of steampy's code to automatically generate the shortcut IDs so you don't need to create a desktop shortcut.

 

Edit: Oh, and a logging toggle in it's UI.

Edited by Nielk1
Link to comment
Share on other sites

HAHA! It works now with the compressed roms! WOOT! I have found a handful of new things to fill you in on.




b6271bce-47f7-40d3-b9f8-c404e8ec86fe	Start



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	Args[6]



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[0]	-steamproxysetup



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[1]	1c3d4e34



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[2]	-steamproxyname



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[3]	DeSmuME (%cleanromname%)



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[4]	E:\Emulation\Emulators\DS\DeSmuME\DeSmuME_r5526_x64.exe



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	[5]	E:\Emulation\Roms\Nintendo - DualScreen(NDS)\Metroid Prime Pinball (USA).7z



b6271bce-47f7-40d3-b9f8-c404e8ec86fe	SteamProxySetup Mutex Aquisition Failed

This is when I tried to use the rom name feature. My command line that generated this was this...




-steamproxysetup 1c3d4e34 -steamproxyname "DeSmuME (%cleanromname%)" "E:\Emulation\Emulators\DS\DeSmuME\DeSmuME_r5526_x64.exe"

With quotes, around %cleanromname% it also generated the same result and it threw and error at me saying that steam proxy was already in proxy setup mode. I have also noticed that when it threw this error at me, it never closed out steamproxy at all and it had to be terminated via the task manager. When I remove the %cleanromname% altogether it works just fine and loads the rom as you would expect it to.

Also, it seems that the automatic insertion of the steamID# isn't working quite right. I still had to make a shortcut and manually paste it in because the number proxy generated was completely wrong. What metric does the proxy use to detect this? I would have assumed it would be just the name of the shortcut in Proxy but if I change anything in the target field within Steam Proxy it would change the number. My guess is it isn't supposed to do this because the number is based on the name of the shortcut and not the target if I understand it properly.

When attempting a launch of Retroarch, it returns the same result as the previous version. Not sure if you had a chance to look at it yet but I figured it was worth mentioning.

Oh, BTW, thanks for the logging checkbox. :) I like it! This is coming right along here my friend. and as soon as I can get RetroArch loading up properly, this should be able to launch my whole library in every way the way I want it to. The rom name thing is just a neat idea I want to play around with, even though I am not sure if that is how I want to do it or not.

Again, you rule!

 

EDIT: Forgot to mention that in Proxy, the target field and the emulator command line field both use just -steamproxy and dont reflect the activate or setup additions, this is how I discovered the steam ID# stuff because I tried changing it myself for the sake of copy pasting the whole target. Just thought I would mention it.

Edited by cammelspit
Forgot something... :)
Link to comment
Share on other sites

@cammelspit

Hmm, the automatic ID should work.  It's a CRC hash applied to the target and shortcut name.  If there's any difference between Steam's shortcut and the Proxy's Target and Name it will not match though.

So, I screwed up the rename code and caused an infinite loop...  Sorry about that, fixing that now.  It was replacing the marker in the name but not saving it into the string, and then it was detecting it was still there and trying again.

I added a new big picture switch.

Edited by Nielk1
Link to comment
Share on other sites

@Nielk1 My god man, you are a BEAST! Just tearing this thing up right now. So you know, you NEVER need to apologize for anything. I am just so amazed you have taken this stupid idea from a nitpicky steam controller obsessive and ran with it. I mean, I am honored to be able to help with the testing and that I can be useful, even in my extremely limited capacity. I am already thinking of how I am going to start making a steam community guide in the Steam Controller HUB because I know for a fact that everyone who uses an SC with emulators is going to want to use this thing as soon as a little spit and polish goes on. BIG thumbs up from me dude!

Link to comment
Share on other sites

@cammelspit The only rough spot that's inevitable is that the rename function *will* break at some point in the future and need to be fixed.  I know a way around it if Steam is closed and needs to open by editing the shortcuts.vdf file (the way ICE does it), but editing it live while Steam is running will require some code upkeep unless another way is found.  Luckily I made sure the program keeps working if the rename fails, but then your controller profiles would be a little harder to grab.

Link to comment
Share on other sites

@Nielk1 Ah, the big picture toggle is a great idea. Unnecessary with the steam controller since while the controller is on, steam will automatically use the BPM overlay instead, even when launched from the desktop UI since that is where all the SC configuration takes place. For those who want to use a traditional controller, in the same way, BPM is still nice and controller friendly. I especially like how it has a way to, through the steam BPM overlay interface, close out the app, in this case, emulator. This just pops me right back to Launchbox, kicks to the desktop config for the SC and I can browse the collection and just launch another game so seamlessly.

I also just tested the rename function with the game name and it works beautifully. That really is a nice touch and I am VERY tempted to make a template for systems and start using per game configs. What I usually do right now, like with Dolphin and DeSmuME, is make some complicated touch menus that switch action sets and load the per game configs. This is especially necessary with Wii and DS stuff since they all can play so differently and require specialized configs to perform certain actions with button presses.

I also wouldn't worry too much about the renaming function not working later on. I don't think the calls you are using can really do any harm so it is not likely that Valve would take the time or put in the energy to make these not work. I mean, it took nine months for them to fix the steam controllers completely bugged and 100% non-functional turbo fire and we are STILL waiting for Half-Life 3. :P I am glad to hear that you have an idea for a workaround in case they do decide to disable those calls. It may be a good idea to start work on that feature before they do make a change and have both options available until they do as a fallback scenario. Though, obviously not anytime soon since there is likely a lot more to do before you can't think of anything to add or fix, like RetroArch not launching correctly. (Just poking fun) :D

Link to comment
Share on other sites

@cammelspit It's basically that the function table can change.  All the interfaces Steam *wants* you to use are numbered so that if they change they up the number.  These are the interfaces games use to do stuff like give you achievements.  The interfaces the steam client itself use aren't numbered because both the client and it's steamworks libraries would update at the same time and always be in sync.  The renames would stop working if they add a new function to the shortcut API and cause the vtable binding to fail, etc.  We'll cross that bridge when we come to it.  If it ever breaks horrifically and somehow stops the proxy from working deleting the Steam4NET dll will get it going again.

As for shortcut IDs: are you using Set Launch Options in Steam on the shortcut?  I am considering that value as just blank.  If you are using that it might be why the generated ID isn't matching Steam.  I think the names and targets might also be case sensitive in this case.

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