bottlesdevs / programs

Repository for programs installation
65 stars 67 forks source link

EA Launcher won't install games #214

Open fullmetalarmour opened 1 year ago

fullmetalarmour commented 1 year ago

EA Launcher installs without problems but when i download games it downloads than on around 70% during finalization i get an error.

Adu-3 commented 1 year ago

I could confirm this , I have used multiple runners with various updates for example : WINE-GE , Proton-GE , Soda , lutris. I have faced it before almost 2 months before Wine 8.0 came out and now with 8.0 and the problem still occurring while lutris do not have this issue and if you installed origin and through it then update it to EA Play with their runner it will just work :) but I tried to use lutris runner to install games in EA Play on bottles and no luck, the issue still exist.

The problem is in the installation process, after the game is fully downloaded and after some digging in EA app files we could see in the installation log of every downloaded game the following error :

19:50:32 Installing GDF ... 19:50:32 Installing C:\Program Files\EA Games\Plants vs. Zombies\GDFBinary_en_US.dll ... 19:50:32 Alternate GDF game name Plants vs. Zombies 19:50:32 IGameExplorer2 for windows 7 19:50:32 ERROR: Windows IGameExplorer2 is unable to InstallGame (80004005) 19:50:32 GameExplorerInstall returns 80004005 19:50:32 ERROR: Failed to install 'C:\Program Files\EA Games\Plants vs. Zombies\GDFBinary_en_US.dll' for install path 'C:\Program Files\EA Games\Plants vs. Zombies\' 19:50:32 Failed to install GDF 19:50:32 Installer finished with exit code: 3 19:50:32 Shutting down data reader.

I have tested the App on two different computers

pkgith commented 1 year ago

I had this issue with Dragon Age Inquisition and some dosbox wrapped games like Ultima VII. The workaround is to switch Windows version in Bottles compatibility settings to "Windows 2008 R2" for the duration of the game installation. Windows XP probably works too, but I haven't tested. This way the installer realizes that the system does not support GDF, then skips this step and lets the installation complete.

fullmetalarmour commented 1 year ago

I had this issue with Dragon Age Inquisition and some dosbox wrapped games like Ultima VII. The workaround is to switch Windows version in Bottles compatibility settings to "Windows 2008 R2" for the duration of the game installation. Windows XP probably works too, but I haven't tested. This way the installer realizes that the system does not support GDF, then skips this step and lets the installation complete.

I tried and still it don't work do you mean i had to change while the app is downloading or before launching the app?

pkgith commented 1 year ago

I tried and still it don't work do you mean i had to change while the app is downloading or before launching the app?

These are the steps I took:

  1. Exit the Launcher
  2. Change compatitibility to Win 2008 R2
  3. Start EA launcher and resume the failed game installation / download. I can also do clean installs for games that have this problem.
  4. Exit launcher and change compatibility back to Win 10

I am also using wine-ge-proton8-5 as a runner for this bottle if that makes a difference.

fullmetalarmour commented 1 year ago

I tried and still it don't work do you mean i had to change while the app is downloading or before launching the app?

These are the steps I took:

1. Exit the Launcher

2. Change compatitibility to Win 2008 R2

3. Start EA launcher and resume the failed game installation / download. I can also do clean installs for games that have this problem.

4. Exit launcher and change compatibility back to Win 10

I am also using wine-ge-proton8-5 as a runner for this bottle if that makes a difference.

Tried using booth WineGE and ProtonGE still the same i use Fedora Plasma and Bottles as a Flatpak can it be the Bottles Flatpak permissions?

pkgith commented 1 year ago

@fullmetalarmour: I am also using the flatpak. This might be game specific or you have a different problem than I and possibly @Adu-3 has. What does it say at C:\Program Files\EA Games\Game name\__Installer\InstallLog.txt?

My failed installations went like this:

17:23:49 EAInstaller version: 3.07.00.00 17:23:49 Original System Version (10.0.19043) 17:23:49 Launching System Version (6.2) 17:23:49 Touchup running under compatibility mode 17:23:49 OS: Microsoft Windows 8 17:23:51 Installing GDF ... 17:23:51 Installing C:\Program Files\EA Games\Ultima 7\GDFBinary_en_US.dll ... 17:23:51 Alternate GDF game name Ultima 7 17:23:51 IGameExplorer2 for windows 7 17:23:51 ERROR: Executing Windows API IGameExplorer2::InstallGame failed (80004005) 17:23:51 Windows API IGameExplorer2 failed to verify access!

And later success like this:

18:27:19 EAInstaller version: 3.07.00.00 18:27:19 Original System Version (6.1.7601) 18:27:19 Launching System Version (6.1) 18:27:19 Touchup not running under compatibility mode 18:27:19 OS: Microsoft Windows Server 2008 R2 Standard Edition 18:27:21 Installing GDF ... 18:27:21 Installing C:\Program Files\EA Games\Ultima 7\GDFBinary_en_US.dll ... 18:27:21 Alternate GDF game name Ultima 7 18:27:21 Obtained IGameExplorer2, but OS version does not support GDF. Skipping GDF install!

That GDFBinary_en_US.dll is different file depending on the game. EAInstaller versions also vary (EA doesn't update them for older titles). I have had success with versions 3.07.00.00 and 4.01.00.00.

fullmetalarmour commented 1 year ago

Install Date: 04/19/0123 21:12:24 Started logging


21:12:24 Install Location: C:\Program Files\EA Games\Command and Conquer Red Alert II\ 21:12:24 Install Locale: en_US 21:12:24 Initialized installation config. 21:12:24 CommandLine: install -locale en_US -installPath "C:\Program Files\EA Games\Command and Conquer Red Alert II" -autologging 21:12:24 OS: Microsoft Windows 8 21:12:24 Data reader initialized. 21:12:24 Data reader config: LOCALE = en_US 21:12:24 Data reader config: INSTALL_LOCATION = C:\Program Files\EA Games\Command and Conquer Red Alert II\ 21:12:24 Data reader config: INSTALL_LOCATION_DOUBLE_BACKSLASH = C:\Program Files\EA Games\Command and Conquer Red Alert II 21:12:24 Data reader config: 32BIT = 0 21:12:24 Data reader config: 64BIT = 1 21:12:24 Processing EAIN file 'C:\Program Files\EA Games\Command and Conquer Red Alert II__Installer\Touchup.dat'. 21:12:24 Installation registry missing. Game not yet installed. 21:12:24 (Config)Studio: EA Games 21:12:24 (Config)Game Name: Command and Conquer Red Alert II 21:12:24 (Config)Display Game Name: Command & Conquer™ Red Alert 2 and Yuri’s Revenge 21:12:24 (Config)Updating ForceUninstallAllFiles to: 0 21:12:24 Start redistributables install phase 21:12:26 Installing DirectX 21:12:26 Launching process: Command: C:\Program Files\EA Games\Command and Conquer Red Alert II__Installer\directx\redist\dxsetup.exe /silent Working directory: C:\Program Files\EA Games\Command and Conquer Red Alert II__Installer\directx\redist\ 21:12:26 Process exited with exit code 0. 21:12:26 Successfully installed DirectX runtime. 21:12:26 Installing VC2010 version: 10.0.40219.01 21:12:26 Installed VC2010 version: 10.0.40219.473 21:12:26 Newer VC++ Installed 21:12:26 x86 vc2010sp1 runtime already installed. 21:12:26 Installing Custom Component WestwoodOnline.msi 21:12:26 running msi program 21:12:26 Launching process: Command: msiexec.exe /i "C:\Program Files\EA Games\Command and Conquer Red Alert II__Installer\customcomponent\msi\WestwoodOnline.msi" /quiet Working directory: C:\Program Files\EA Games\Command and Conquer Red Alert II__Installer\customcomponent\msi\ 21:12:26 Process exited with exit code 0. 21:12:26 Successfully installed WestwoodOnline.msi. 21:12:26 End of redistributables install phase 21:12:26 Setting up uninstall data ... 21:12:26 Installing GDF ... 21:12:26 Installing C:\Program Files\EA Games\Command and Conquer Red Alert II\GDFBinary_en_US.dll ... 21:12:26 Alternate GDF game name Command and Conquer Red Alert 2 21:12:26 IGameExplorer2 for windows 7 21:12:26 ERROR: Windows IGameExplorer2 is unable to InstallGame (80004005) 21:12:26 GameExplorerInstall returns 80004005 21:12:26 ERROR: Failed to install 'C:\Program Files\EA Games\Command and Conquer Red Alert II\GDFBinary_en_US.dll' for install path 'C:\Program Files\EA Games\Command and Conquer Red Alert II\' 21:12:26 Failed to install GDF 21:12:26 Installer finished with exit code: 3 21:12:26 Shutting down data reader.


21:12:26 Stopping install logging


pkgith commented 1 year ago

I can confirm that my workaround doesn't work for Red Alert 2. It has a different version of installer(s). No version numbers shown or anything. No idea how to make that work.

Adu-3 commented 1 year ago

I have tried @pkgith workaround but sadly it does not work. As I said earlier lutris is making the user installing the origin then updating to EA App and I tried to do that on bottles with lutris runner and it did not work. I'm trying now to see how does lutris implement the installation and what are the dependencies or environment variables that has a relationship "IGameExplorer2" and GDF installing or Flatpak permissions that maybe a cause for this issue.

As far as I saw, this script which is from lutris installation for origin ( Which is could be simply replaced directly by EA App)

"files": [
    {
        "client": "https://download.dm.origin.com/origin/live/OriginSetup.exe"
    }
],
"game": {
    "exe": "$GAMEDIR/drive_c/Program Files (x86)/Origin/Origin.exe",
    "prefix": "$GAMEDIR"
},
"installer": [
    {
        "task": {
            "description": "Creating Wine prefix",
            "name": "create_prefix",
            "prefix": "$GAMEDIR"
        }
    },
    {
        "task": {
            "app": "arial",
            "name": "winetricks",
            "prefix": "$GAMEDIR"
        }
    },
    {
        "task": {
            "args": "/silent",
            "description": "Installing Origin... Login window will pop-up and close.",
            "exclude_processes": "Origin.exe OriginClientService.exe OriginWebHelperService.exe QtWebEngineProcess.exe explorer.exe winedbg.exe OriginER.exe",
            "executable": "client",
            "name": "wineexec",
            "prefix": "$GAMEDIR"
        }
    },
    {
        "task": {
            "name": "winekill",
            "prefix": "$GAMEDIR"
        }
    }
],
"system": {
    "env": {
        "STAGING_SHARED_MEMORY": 0,
        "__GL_SHADER_DISK_CACHE": 1,
        "__GL_SHADER_DISK_CACHE_PATH": "$GAMEDIR"
    },
    "exclude_processes": "QtWebEngineProcess.exe ActivationUI.exe OriginWebHelperService.exe"
},
"wine": {
    "overrides": {
        "nvapi,nvapi64": "disabled"
    },
    "version": "system"
}

there are some overrides and environment variables and process that is excluded, I will try to replicate it on bottles and let you know if I have found anything that would help.

Adu-3 commented 1 year ago

Finally I did manage to run Command & Conquer Red Alert 3 , Plants vs Zombie, both using bottles the problem seems to be something to do with the registry I can't tell what is really the problem in bottles about but you could fix that with the following :

1 - Download the game. 2 - When the error message pops up press OK 3 - open the main menu of your bottle and go down and click on " Registry Editor " 4 - Expand HKEY_LOCAL_MACHINE -----> Software -----> Wow6432Node

Then you would see numbers of files but you would search for the publisher name of your game usually and under it you will see the game name click on it and you will see in the right side of the viewer some data and GDFBinary already set

5 - Right click on the empty area on the name and data side and from the menu New --- > String Value

And start adding these values Name : Value Locale : en_US and the following depending on your installation directory but usually the same of that C:\Program Files\EA Games\ Game_Name , in my example it will be Command & Conquer Install Dir : C:\Program Files\EA Games\Command and Conquer Red Alert 3 also add this Path : C:\Program Files\EA Games\Command and Conquer Red Alert 3

6 - Return back to the launcher and click on install button like you would retry the installation and you will see your game ready to play :)

Enjoy ><

fullmetalarmour commented 1 year ago

Finally I did manage to run Command & Conquer Red Alert 3 , Plants vs Zombie, both using bottles the problem seems to be something to do with the registry I can't tell what is really the problem in bottles about but you could fix that with the following :

1 - Download the game. 2 - When the error message pops up press OK 3 - open the main menu of your bottle and go down and click on " Registry Editor " 4 - Expand HKEY_LOCAL_MACHINE -----> Software -----> Wow6432Node

Then you would see numbers of files but you would search for the publisher name of your game usually and under it you will see the game name click on it and you will see in the right side of the viewer some data and GDFBinary already set

5 - Right click on the empty area on the name and data side and from the menu New --- > String Value

And start adding these value Name : Value Locale : en_US and the following depending on your installation directory but usually the same of that C:\Program Files\EA Games\ Game_Name , in my example it will be Command & Conquer Install Dir : C:\Program Files\EA Games\Command and Conquer Red Alert 3 also add this Path : C:\Program Files\EA Games\Command and Conquer Red Alert 3

6 - Return back to the launcher and click on install button like you would retry the installation and you will see your game ready to play :)

I tried to copy lutris configuration before but it does not seem that the problem in DLL Overides or Environment Variables here in case the method In case the workaround does not work

1- New bottle 2 - Choose custom configuration and set lutris as runner in my case "lutris 7.2-2" and create it 3 - install following dependencies : mono, gecko , allfonts , d3dx9 , d3dcompiler_42 , d3dcompiler_47 4 - set new value on DLL Overrides "nvapi,nvapi64" and set it to disabled 5 - add the following Environment Variables "STAGING_SHARED_MEMORY" to 0 and "__GL_SHADER_DISK_CACHE" to 1 and "__GL_SHADER_DISK_CACHE_PATH" to the bottle directory for example /home/.var/app/bottles/data/bottles/EA App 6 - Install origin from the official website and then it will ask you to upgrade to EA App just update https://download.dm.origin.com/origin/live/OriginSetup.exe

7 - Do the above workaround and it should work

Enjoy ><

Nope mabye i did something wrong in the regedit can you give more specific instructions please i created String Value named Value but what should i name the other two like Install Dir and Path?

pkgith commented 1 year ago

@Adu-3 's registry edit seems to work. Kind of. RA 2 still doesn't work, but if this is due to an incomplete installation or other issues I cannot say. The edit trick worked for another problematic game I tested. Uninstall entries are not created when using this bypass however. So you can't use the EA App's uninstall for example. This might suggest that something else was not installed either. Luckily the app is so eager to scan your files that the game entry instantly vanishes from the installed list when you delete the game's folder.

Could it be that Wine's gameux.dll lacks some feature that older EA installers use? I noticed that EAInstaller v. 5.03.03.00 doesn't need any workarournds anymore, so the problem is limited to versions 4.x and older?

Adu-3 commented 1 year ago

After some trials I modified my comment above to be shorter so no body get confused with other variables that does not matter.

Nope mabye i did something wrong in the regedit can you give more specific instructions please i created String Value named Value but what should i name the other two like Install Dir and Path?

image

Here is an example how the registry and its value should looks like, also I have noticed that "Install Dir" and "Locale" might not be necessary to bypass installation process but you may want add them just in case.

@Adu-3 's registry edit seems to work. Kind of. RA 2 still doesn't work, but if this is due to an incomplete installation or other issues I cannot say.

Yeaaah I can confirm that RA2 does not work with this tinkering process :( but I have managed to add the registry string with the value as shown above and Installed the dependencies manually when you install it through the app it will say for you will need :

I did install them both through bottles and __Installer file inside game file to just make sure it will work but it asked me to administrator grant permission and I did but it will not work , then I changed the runner from lutris 7.2-2 to Wine-GE 7.x versions and I got a black screen box and I can't see anything inside it. I tried Wine GE 8.x versions but it just break the bottle then not working and using them to make fresh bottle install just not work.

But at least the workaround would help for some games

Uninstall entries are not created when using this bypass however. So you can't use the EA App's uninstall for example. This might suggest that something else was not installed either. Luckily the app is so eager to scan your files that the game entry instantly vanishes from the installed list when you delete the game's folder. Could it be that Wine's gameux.dll lacks some feature that older EA installers use? I noticed that EAInstaller v. 5.03.03.00 doesn't need any workarournds anymore, so the problem is limited to versions 4.x and older?

Yup because we are doing the installation manually the EA App just sees that the entries are set then he just think everything is ready so we skipped GDF installation and any other installation after that. We might need a help from windows user that knows how to make complete installation manually since we have __Installer File or a developer for bottles and I don't know about EAInstaller versions but on every bottle I just use the latest version from EA website I don't know if there are an ability to switch between versions or not, From what I know the installer will download latest version from EA website.

The question is why it is not working here in bottles and work on Lutris ? , I know that Lutris is specific for gaming but I didn't find any script or something special that they do to bypass this problem at least from my searching and according to Wine website https://www.winehq.org/pipermail/wine-devel/2010-June/084025.html IGameExplorer2 who is responsible for this issue should be embedded to Wine runner and since its 2023 and the link from 2010 all runner should have this feature.

Lastly I think we should try wine on the bare metal Lutris works , bottles doesn't , we could know if it is bottles bug or something related to by using wine without any isolation or limitations and I think that would tell where is the issue.

pkgith commented 1 year ago

Yup because we are doing the installation manually the EA App just sees that the entries are set then he just think everything is ready so we skipped GDF installation and any other installation after that. We might need a help from windows user that knows how to make complete installation manually since we have __Installer File or a developer for bottles and I don't know about EAInstaller versions but on every bottle I just use the latest version from EA website I don't know if there are an ability to switch between versions or not, From what I know the installer will download latest version from EA website.

I should clarify that I was talking about "EAInstaller" not the EA Launcher (or whatever it's name is) installer. EA Installer (that does the actual install process like installing dependencies etc.) versions are different from game to game. You can see it in the first rows of InstallLog.txt. Except RA2 because the older(?) installer doesn't print this info. I would say the "EAInstaller" is actually the Touchup.exe and Cleanup.exe in __Install folder. Game specific install instructions are in the .dat files. All of these files start with "EAIN" when looked at in a hex editor. For example Theme Park and Ultima 7 both have the same executables (both print out 3.07.00.00) and different .dats, but DA:I's .exes are different. I would say these installers have not been updated since the games were added to Origin store back in the day.

Was it really so that my windows version swap didn't help with any game @Adu-3 ? It completes the installation cleanly for me when the EAIN version is 3.x or 4.x.

Lastly I think we should try wine on the bare metal Lutris works , bottles doesn't , we could know if it is bottles bug or something related to by using wine without any isolation or limitations and I think that would tell where is the issue.

This is probably something that should be tried, but I'm not personally willing to mess with my system now, and have no spare hardware to dedicate to it. I also have very limited understanding on how Wine works.