-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement launcher integration #9
Conversation
Is there a reason why the brackets were all placed on one line? It makes the commit harder to filter. I get that this is standard C# coding style, but still. If there is an issue with a style that should be in a separate |
There's no issue. I simply assumed that auto formatter is set correctly. For now I'll revert everything to the old style. Probably it would be good to add formatting rules that are in line with project code style in separate PR. |
82bf7a5
to
335d597
Compare
reverted code formatting to the old style |
`--launch=` option accepts both executable paths and URIs for launcher compatibility. Some games like Sackboy or Telltale Expanse Series on Epic will fail to launch correctly if .exe path is used directly. Instead they require proper launcher URI. This change will allow UEVR fronted to act as a launcher for games. Example. Creating shortcut to: ``` UEVRInjector.exe "--launch=com.epicgames.launcher://apps/da36711940d4460da57d8d6ad67236a4%3Aa1afcdb1d2344232954be97d4b86b9a8%3Acfbbc006f3ee4ba0bfff3ffa46942f90?action=launch&silent=true" --attach=CosmicShake-Win64-Shipping ``` Will allow to automatically launch and inject Sponge Bob: Cosmic Shake on EGS
Some games don't respond well to be injected directly on boot. Intro movies, menus, loading screens can appear broken or as a black screen. This commit augments `--attach` mode with `--delay` parameter allowing UEVR injector to wait upon detecting target application. This gives user time to get into the game without needing to go back to the injector UI and pressing inject manually. Example: `UEVRInjector.exe --attach=CosmicShake-Win64-Shipping --delay=30` will wait for SpongeBob Cosmic Shake process to spawn, then wait 30s on top and inject.
335d597
to
4f32ad6
Compare
btw. with recent change to rai-pal this could enable 1 click launches straight to VR. All that's needed is 1 line of code there (to get launcher URI) and trivial update in UEVR rai-pal manifest. EDIT: for example like this: Raicuparta/rai-pal#178 |
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}" ] }, "engine": "Unreal", "unityBackend": null } ```
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}" ] }, "engine": "Unreal", "unityBackend": null } ```
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}" ] }, "engine": "Unreal", "unityBackend": null } ```
Some launchers, notably GOG Galaxy don't support launching game via URI. They require command line option `Galaxy.exe /run:gameId`. This commit adds command line parameter `--launch-args=` thant can accept space separated argument list as as single string.
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}", "--launch_args={{StartCommandArgs}}" ] }, "engine": "Unreal", "unityBackend": null } ```
After discussion with Raicuparata Raicuparta/rai-pal#178 whole flow will be amended. Closing till then. |
Hello, if you want to simplify argument handling you can use this nuget package which removes substrings and the if https://github.com/commandlineparser/commandline?tab=readme-ov-file |
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}", "--launch_args={{StartCommandArgs}}" ] }, "engine": "Unreal", "unityBackend": null } ```
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}", "--launch_args={{StartCommandArgs}}" ] }, "engine": "Unreal", "unityBackend": null } ```
This change together with praydog/uevr-frontend#9 will allow one click 'launch to VR' from within Rai Pal. This also introduces proper division of responsibility where Rai Pal knows what to launch and UEVRInjector knows how to launch it. On top of the code change UEVR `rai-pal-manifest.json` needs to look like this: ```json { "version": "1.03", "runnable": { "path": "UEVRInjector.exe", "args": [ "--attach={{ExecutableName}}", "--delay=30", "--launch={{StartCommand}}", "--launch_args={{StartCommandArgs}}" ] }, "engine": "Unreal", "unityBackend": null } ```
Proposed change allows UEVR frontend to be in charge how game is launched an injected while other tool like Rai Pal tells it what to launch. This in turn enables one click 'launch to VR' flow.
For that end 3 new command line options are added:
--launch=<game.exe or launcher URI>
to specify game to launch--launch_args=<space separated list of game.exe arguments>
optional, mainly for Gog Galaxy integration--delay=<number of seconds>
to wait before injection for games that have problems with injecting right awaySummary example (put this into Windows shortcut):
This will automatically:
From user perspective all he/she does is to click the shortcut and magic will happen.
Alternatively launcher like Rai Pal can invoke options above.