Skip to content
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

[EPIC]: Support third-party managed applications #3763

Merged
merged 5 commits into from
Jun 9, 2024
Merged

Conversation

imLinguin
Copy link
Member

This enables support for EA games in Heroic by installing EA App in wine prefix when needed.

We still need to see how this all behaves with Mac native games. At the moment only Windows titles are taken care of

Use the following Checklist if you have changed something on the Backend or Frontend:

  • Tested the feature and it's working on a current and clean install.
  • Tested the main App features and they are still working on a current and clean install. (Login, Install, Play, Uninstall, Move games, etc.)
  • Created / Updated Tests (If necessary)
  • Created / Updated documentation (If necessary)

this allows for EA games to be installed with Heroic, the EA App will be downloaded and installed accordingly
@imLinguin imLinguin added the pr:testing This PR is in testing, don't merge. label May 18, 2024
Copy link
Collaborator

@arielj arielj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's working good, I'll continue testing more games but all good so far

I added minor comments

@imLinguin imLinguin requested review from a team, arielj, flavioislima, CommandMC, Etaash-mathamsetty and Nocccer and removed request for a team May 19, 2024 12:12
@imLinguin imLinguin added pr:ready-for-review Feature-complete, ready for the grind! :P and removed pr:testing This PR is in testing, don't merge. labels May 19, 2024
@arielj
Copy link
Collaborator

arielj commented May 19, 2024

I tested the 4 ea games I have (star wars squadrons, star wars battlefront 2, dragon age, sims 4) and they all worked with this (for dragon age I needed the legendary build with the fix form the legendary repo too)

I had some issue with squadrons but that was unrelated to heroic (it wouldn't finish the installation with wine-ge for me, so I had to install the game using wine-staging -that failed to run- and then switch to wine-ge, I'm testing if everything works with proton)

not sure if someone else wants to review/test this but it's working (maybe in the future we could check some things like allowing importing the game, but I don't think we need to worry about that at this point)

@arielj
Copy link
Collaborator

arielj commented May 19, 2024

I think the only thing I was expecting to happen is that the filter for third-party managed apps also included Ubisoft games that need the ubisoft launcher (heroic can only install old versions of those games that always need an update during the first run)

but it's fine if we do that at another point too

@imLinguin
Copy link
Member Author

imLinguin commented May 19, 2024

I think the only thing I was expecting to happen is that the filter for third-party managed apps also included Ubisoft games that need the ubisoft launcher (heroic can only install old versions of those games that always need an update during the first run)

but it's fine if we do that at another point too

Actually you can use the filter I added for third-party apps in Heroic. Notice Ubisoft isn't there, as Ubisoft's integration is completely different.

@arielj
Copy link
Collaborator

arielj commented May 19, 2024

I think the only thing I was expecting to happen is that the filter for third-party managed apps also included Ubisoft games that need the ubisoft launcher (heroic can only install old versions of those games that always need an update during the first run)
but it's fine if we do that at another point too

Actually you can use the filter I added for third-party apps in Heroic. Notice Ubisoft isn't there, as Ubisoft's integration is completely different.

right, I meant that I expected that new filter to include Ubisoft games, even though the integration is different it's mostly managed by the ubisoft launcher (heroic can install the game, but then updates, launching, saves, etc, it's all done by the ubisoft launcher at the end, so technically it's managed by ubisoft, not really managed by heroic, or managed by both)

maybe at some point I make a PR for that, not really something needed or urgent though

@imLinguin
Copy link
Member Author

I see what you mean. For Ubisoft we get the possibility that Epic downloads the game files. Like you mentioned after that initial download Ubisoft Connect takes over. I think this is a matter of discussion where do we draw that thid-party managed line

@Zahrun
Copy link

Zahrun commented May 26, 2024

dragon age I needed the legendary build with the fix form the legendary repo t

I’m trying to get dragon age to work. Can you please tell which is the exact "legendary build with the fix from the legendary repo" that you used?

@Zahrun
Copy link

Zahrun commented May 26, 2024

I built the AppImage version of Heroic Game Launcher from the branch feat/epic-ea. I also built the latest git commit of legendary derrod/legendary@7fefdc4 and registered it into Settings --> Advanced --> Alternative Legendary Binary.
When installing Dragon Age: Inquisition - Game of the Year Edition, it seems the EA Game Launcher installs. But then I can’t get it to run.

Outdated comments
(17:07:59) INFO:    [Legendary]:        Game list updated, got 20 games & DLCs
(17:08:09) INFO:    [Backend]:          Launching Dragon Age: Inquisition – Game of the Year Edition (verdi)
(17:08:09) INFO:    [Backend]:          Checking if wine version exists: Wine Default - wine-9.8 (Staging)
(17:08:09) INFO:    [Backend]:          Checking if wine version exists: Wine Default - wine-9.8 (Staging)
(17:08:09) INFO:    [Backend]:          Checking if wine version exists: Wine Default - wine-9.8 (Staging)
(17:08:09) INFO:    [Backend]:          Checking if wine version exists: Wine Default - wine-9.8 (Staging)
(17:08:09) ERROR:   [Backend]:          Couldn't find all library folders of Wine Default - wine-9.8 (Staging)!
Missing undefined and/or undefined!
Falling back to system libraries!
(17:08:09) DEBUG:   [Backend]:          Running Wine command: wineboot --init
(17:08:14) INFO:    [DXVKInstaller]:    installing dxvk on... /run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition
(17:08:14) INFO:    [DXVKInstaller]:    dxvk already installed!
(17:08:14) INFO:    [DXVKInstaller]:    installing vkd3d on... /run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition
(17:08:14) INFO:    [DXVKInstaller]:    vkd3d already installed!
(17:08:14) ERROR:   [Backend]:          Couldn't find all library folders of Wine Default - wine-9.8 (Staging)!
Missing undefined and/or undefined!
Falling back to system libraries!
(17:08:14) INFO:    [Legendary]:        Launching Dragon Age: Inquisition – Game of the Year Edition: HEROIC_APP_NAME=verdi HEROIC_APP_RUNNER=legendary HEROIC_APP_SOURCE=epic LD_PRELOAD= DOTNET_BUNDLE_EXTRACT_BASE_DIR= DOTNET_ROOT= WINEPREFIX="/run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition" WINEDLLOVERRIDES=winemenubuilder.exe=d WINE_FULLSCREEN_FSR=0 WINEESYNC=1 WINEFSYNC=1 PROTON_EAC_RUNTIME=/home/aroun/.config/heroic/tools/runtimes/eac_runtime PROTON_BATTLEYE_RUNTIME=/home/aroun/.config/heroic/tools/runtimes/battleye_runtime ORIG_LD_LIBRARY_PATH=/tmp/.mount_HeroicjNVew9/usr/lib: LEGENDARY_CONFIG_PATH=/home/aroun/.config/heroic/legendaryConfig/legendary /home/aroun/.local/bin/legendary launch verdi --wine /usr/bin/wine --language en --origin
(node:43596) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 progressUpdate-verdi listeners added to [EventEmitter]. Use emitter.setMaxListeners() to increase limit
(Use `heroic --trace-warnings ...` to show where the warning was created)
(17:08:14) INFO:    [Backend]:          Stopping Power Saver Blocker
(17:08:14) INFO:    [Backend]:          Stopping Display Power Saver Blocker
(17:08:14) INFO:    [Frontend]:         Refreshing legendary Library
(17:08:14) INFO:    [Legendary]:        Refreshing library...
(17:08:14) INFO:    [Legendary]:        Refreshing Epic Games...
(17:08:14) INFO:    [Legendary]:        Running command: LEGENDARY_CONFIG_PATH=/home/aroun/.config/heroic/legendaryConfig/legendary /home/aroun/.local/bin/legendary list --third-party
(17:08:18) INFO:    [Legendary]:        Game list updated, got 20 games & DLCs

EDIT: Openend the settings of the game in Heroic and pressed run exe on prefix "/drive_c/Program Files/Electronic Arts/EA Desktop/EA Desktop/EADesktop.exe"

image

[5/26/2024, 5:20:06 PM] LEGENDARY_CONFIG_PATH=/home/aroun/.config/heroic/legendaryConfig/legendary /home/aroun/.local/bin/legendary eos-overlay info --prefix "/run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition"

[cli] INFO: Using prefix "/run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition"

[cli] INFO: No Legendary-managed installation found.

[cli] INFO: Found available Overlay installations in:

[cli] INFO: Overlay enabled: No

[cli] INFO: Enabled Overlay path: None

[cli] INFO: No enabled Vulkan layers.

[5/26/2024, 5:20:06 PM] HEROIC_APP_NAME=verdi HEROIC_APP_RUNNER=legendary HEROIC_APP_SOURCE=epic LD_PRELOAD= DOTNET_BUNDLE_EXTRACT_BASE_DIR= DOTNET_ROOT= WINEPREFIX="/run/media/data2/Heroic-feat-epic-ea/Dragon Age Inquisition" WINEDLLOVERRIDES=winemenubuilder.exe=d WINE_FULLSCREEN_FSR=0 WINEESYNC=1 WINEFSYNC=1 PROTON_EAC_RUNTIME=/home/aroun/.config/heroic/tools/runtimes/eac_runtime PROTON_BATTLEYE_RUNTIME=/home/aroun/.config/heroic/tools/runtimes/battleye_runtime ORIG_LD_LIBRARY_PATH=/tmp/.mount_HeroicrfRk58/usr/lib: LEGENDARY_CONFIG_PATH=/home/aroun/.config/heroic/legendaryConfig/legendary /home/aroun/.local/bin/legendary launch verdi --wine /usr/bin/wine --language en --origin

[cli] ERROR: The specified game is not an Origin title.

EDIT: found the legendary fix at derrod/legendary#632

@arielj
Copy link
Collaborator

arielj commented May 26, 2024

I built the AppImage version of Heroic Game Launcher from the branch feat/epic-ea. I also built the latest git commit of legendary derrod/legendary@7fefdc4 and registered it into Settings --> Advanced --> Alternative Legendary Binary. When installing Dragon Age: Inquisition - Game of the Year Edition, it seems the EA Game Launcher installs. But then I can’t get it to run.

Outdated comments
EDIT: found the legendary fix at derrod/legendary#632

do you still need the steps? I see you found the binary (you don't need to build the code from source, all binaries are automatically generated for each PR)

@Zahrun
Copy link

Zahrun commented May 26, 2024

Yes, this branch works for installing EA Games Launcher and the fixed legendary allows to run it and install the game within that.
I’m only left to find out how to launch the game without it crashing
verdi-lastPlay.log

@arielj
Copy link
Collaborator

arielj commented May 26, 2024

those errors seem unrelated to this PR, for help with that you should ask in Discord (join discord and create a thread in #-support sharing the logs after trying with Wine-GE (not wine staging))

@imLinguin imLinguin merged commit 19ff381 into main Jun 9, 2024
9 checks passed
@imLinguin imLinguin deleted the feat/epic-ea branch June 9, 2024 13:14
@Heroic-Games-Launcher Heroic-Games-Launcher locked and limited conversation to collaborators Jun 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
pr:ready-for-review Feature-complete, ready for the grind! :P
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants