WombatFromHell / OriginSteamOverlayLauncher

An executable wrapper for Steam to make third-party launchers more convenient to use with a Steam Controller
MIT License
411 stars 25 forks source link

Epic Games Launcher URI Launching is broken in the most recent update to EGL #44

Closed michaelphagen closed 4 years ago

michaelphagen commented 5 years ago

It seems like launching games from the Epic Games Launcher no longer works with the most recent update to EGL (10.1.2-6910972+++Portal+Release-Live). Looking at the EGL logs, it seems like the URI isn't being passed properly. The logs show

GoToUrl('/null')

whenever OSOL tries to launch a game via URI.

WombatFromHell commented 5 years ago

It's a known issue. I'm working on it right now in fact.

WombatFromHell commented 5 years ago

There's several ways to workaround the problem. The easiest is to just put the game URI shortcut in the LauncherArgs= variable instead of LauncherURI=. (Edit: This requires you to double-click the tray icon for now though. A proper fix will be coming in the next pre-release beta.)

WombatFromHell commented 5 years ago

Okay, I think I've finally got a method that works reliably. Try out the v1.09e beta that I just uploaded. You'll need to use the LauncherURI method for EGL from the OSOL Wiki (minus LauncherMode). Basically, a [Paths] section like this should work out of the box now:

[Paths]
LauncherPath=C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe
LauncherArgs=
LauncherURI=com.epicgames.launcher://apps/Jackal?action=launch&silent=true
GamePath=E:\Games\Epic Games\Dauntless\Dauntless.exe
michaelphagen commented 5 years ago

It isn't working on the beta for me. Here is the OSOL Log

[6/14/2019 9:16:07 AM] [NOTE] OSOL is running as: OriginSteamOverlayLauncher
[6/14/2019 9:16:08 AM] [OSOL] Physical CPUs: 4 / Logical CPUs: 8
[6/14/2019 9:16:08 AM] [LAUNCHER] Launching process via: C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe com.epicgames.launcher://apps/Jackal?action=launch&silent=true @EpicGamesLauncher.exe
[6/14/2019 9:18:10 AM] [MONITOR@EpicGamesLauncher] Timed out after 2.01m searching for a matching process: EpicGamesLauncher.exe
[6/14/2019 9:18:10 AM] [OSOL] Game exited, cleaning up...
[6/14/2019 9:18:10 AM] [OSOL] Found launcher still running, killing it...
[6/14/2019 9:18:11 AM] [OSOL] Exiting...

and here is my OSOL ini file

[Paths]
LauncherPath=C:\Program Files (x86)\Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe
LauncherArgs=
LauncherURI=com.epicgames.launcher://apps/Jackal?action=launch&silent=true
GamePath=A:\Program Files\Dauntless\Dauntless.exe
GameArgs=
MonitorPath=
PreLaunchExecPath=
PreLaunchExecArgs=
PostGameExecPath=
PostGameExecArgs=
[Options]
ReLaunch=True
SkipLauncher=False
CloseLauncher=True
AutoGameLaunch=True
MinimizeLauncher=False
ElevateExternals=False
PreGameLauncherWaitTime=15
PreGameWaitTime=0
PostGameWaitTime=0
ProcessAcquisitionTimeout=120
InterProcessAcquisitionTimeout=15
GameProcessAffinity=
GameProcessPriority=Normal
[Info]
ReleaseVersion=1.0.9.7

It seems like OSOL isn't locking on to the EGL process, but I can see it running in the taskbar.

WombatFromHell commented 5 years ago

Hmm... does it work when you run it outside of Steam?

michaelphagen commented 5 years ago

It does not, I get the same result. Also, putting the URI into the launcher args causes the launcher to open, but does not launch the game. In both cases the launcher says that Dauntless is running, but it the dauntless process does not start.

WombatFromHell commented 5 years ago

I can reproduce this behavior. I'll dig more deeply into what EGL is doing and try to find a solution.

WombatFromHell commented 5 years ago

Could you test this hotfixed version of OSOL for me and tell me if you can still reproduce this behavior? OriginSteamOverlayLauncher-v1.09f-TEST1.zip

WombatFromHell commented 5 years ago

Also, move the OSOL files for that game to another directory that is -not- under the game's directory in this case. So if Dauntless is under A:\Program Files\Dauntless\ and OSOL is in the same directory, move the OSOL files to some other directory that is -not- under A:\Program Files\Dauntless\ and try again. I'm finding that if an executable is running under the game's directory before it launches the game will fail to launch every time.

WombatFromHell commented 5 years ago

I'll update the Wiki with Dauntless specific instructions to cover this case. Dauntless apparently has an anti-cheat mechanism that just forces the game to exit immediately if -any- non-game executable is running under its game directory. Executables running outside the game directory are fine though.

michaelphagen commented 5 years ago

That hotfixed version works great! All of the games that weren't working by directly adding the executable to steam (Dauntless, Transistor, the Heavy Rain Demo, and Subnautica) are all working. This is great, I usually play Dauntless using the steam link app on my phone and she plays on the tv, so this fixes it for both of us!

I really appreciate all of the work you do, this is amazing!!

SubSonix commented 5 years ago

Sorry to re-open, but I'm having issues with Satisfactory. As soon as the EGL opens it says that it's running the game (Ignoring the PreGameLauncherWaitTime and the game never actually opens)

Eventually I get an error in EGL: Satisfactory

P.S. same thing happens with or without LauncherURI P.S.S. Worked fine until the EGL update.

OSOL log:

[19/06/19 01:44:06] [NOTE] OSOL is running as: OriginSteamOverlayLauncher [19/06/19 01:44:07] [OSOL] Physical CPUs: 4 / Logical CPUs: 8 [19/06/19 01:44:07] [LAUNCHER] Launching process via: C:\Programs\Epic Games\Launcher\Portal\Binaries\Win64\EpicGamesLauncher.exe [19/06/19 01:44:09] [MONITOR@EpicGamesLauncher] Process acquired in 1s: EpicGamesLauncher.exe [9960] [19/06/19 01:44:09] [OSOL] Launcher detected (type 4), preparing to launch game in 15s... [19/06/19 01:44:24] [LAUNCHER] Launching process via: X:\Games\SatisfactoryEarlyAccess\FactoryGame\Binaries\Win64\FactoryGame-Win64-Shipping.exe [19/06/19 01:46:27] [MONITOR@FactoryGame-Win64-Shipping] Timed out after 2.01m searching for a matching process: FactoryGame-Win64-Shipping.exe [19/06/19 01:46:27] [OSOL] Game exited, cleaning up... [19/06/19 01:46:27] [OSOL] Found launcher still running, killing it... [19/06/19 01:46:28] [OSOL] Exiting...

WombatFromHell commented 5 years ago

Take a look at the Wiki page on EGL: https://github.com/WombatFromHell/OriginSteamOverlayLauncher/wiki/Epic-Games-Launcher

If you have OSOL in the game directory move it to another directory that is not the game directory and run it from there. That should fix launch failures when using EGL.

SubSonix commented 5 years ago

Moving it out of the game directory fixed it, I tried just moving it up a folder with not luck.

Thank you :)

WombatFromHell commented 5 years ago

I'll leave this open for a bit in case anyone else has a similar issue.

SubSonix commented 5 years ago

Thanks again Wombat, keep up the great work :D