ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.9k stars 1.04k forks source link

Mass Effect (17460) #177

Open FreeSevenSix opened 6 years ago

FreeSevenSix commented 6 years ago

in mass efect in game there is no sound. there is an option in the sound menu to enable or disable hardware sound. this does not work cuz when you restart the game the game enables hardware sound by default. in order too fix this you need to go to the BIOEngine.ini file, open it with a text editor and look for ISACTAudio.ISACTAudioDevice. add following in that section

DeviceName=Generic Software UseEffectsProcessing=False

save and restart the game

mirh commented 6 years ago

https://bugs.winehq.org/show_bug.cgi?id=40898

The game doesn't force anything by default then, I don't know what you are talking about.

eandry77 commented 6 years ago

I confirm the workaround works for me. Since I also have the same issue on Mass Effect 2, I'll try to find the parameter for this one.

FiXIDeA commented 6 years ago

Mouse behaves very strange as if stumbling on the walls.

ghost commented 6 years ago

Can confirm both the issue and the fix. I had to edit the following file : .steam/steam/steamapps/common/Mass Effect/BioGame/Config/DefaultEngine.ini And append the two lines provided by OP above under the [ISACTAudio.ISACTAudioDevice] section (after line 724). Audio now works fine, and I was able to complete Eden Prime with no issues.

The only strange thing is that video resolution was limited to 1366x768. Here is my Steam SysInfo.

mirh commented 6 years ago

Could you try installing libopenal1 ?

ghost commented 6 years ago

The libopenal1 package was already installed in my case. I thought of removing it for testing purposes, but gave up since KDE and a lot of smaller packages seem to depend on it.

FreeSevenSix commented 6 years ago

The only strange thing is that video resolution was limited to 1366x768

does the game have higher resolution on windows?

ghost commented 6 years ago

Not tested, I do not have a Windows install, but I just searched for the answer and realized I had merely stumbled on this issue, which existed on Windows. Thus the port is seamless AFAICT and could be whitelisted if the fix was included.

kisak-valve commented 6 years ago

Mass Effect crashes with a Pure Virtual Function error.

Issue transferred from https://github.com/ValveSoftware/Proton/issues/472. @nstgc posted on 2018-08-25T01:47:52:

I'm feeling quite silly; I should have spent more time on this, however I didn't think to report it until now. In the 100+ hours I've played Mass Effect in wine/CrossOver (it was the first game I beat in Linux, and I've beat it more times there after) I've never gotten an error related to pure virtual functions. In fact, it has run nearly perfectly, and I can't actually remember if it has ever crashed before in Linux (On Windows it sure did!). Both Mass Effect 1&2 run BETTER in Wine/CrossOver than on Windows 7. So within the first hour seeing a crash is a big deal to me. . .but I just reset whatever changed so I pushed it from my mind and moved on to something else.

I was able to fix this with a git reset --hard (I have compatdata as a Git repo). Unfortunate, I didn't take note of what it reset, but it wasn't an intentional change, I do know that. I had actually been working on Skyrim SE.

nstgc commented 6 years ago

Responding to ME2 comment, in my limited testing ME2 ran perfectly. A surprising number of games in fact are running perfectly without any intervention from me. At least in cursory tests. Initially I thought ME1 ran perfectly too. . .

muru commented 6 years ago

@DrWindu the dropdown in-game seems to show only up to 1366x768, but if I use the arrow keys and scroll down, I'm able to select higher resolutions, including 1920x1080... Guess the options are just not visible?

mirh commented 6 years ago

ME2 problem might be this, and at worst it will be solved when wine switches to FAudio.

rkfg commented 6 years ago

Not sure if discussing ME2 is appropriate in this issue but for me it has no sound when:

  1. launched the first time after install
  2. launched via the "Mass Effect 2 launcher" program

If started directly the second time, everything is totally fine.

FreeSevenSix commented 6 years ago

after playing for about 10 hours , i'm now in the feros system. the game starts crashing about evry 5 - 10 minutes with the Pure Virtual Function error

nstgc commented 6 years ago

You can fix that by reverting. . .something. I'm not sure what I reverted. I just did a git reset --hard and those errors stopped. However, could you capture an error log? I didn't and wish I had.

FreeSevenSix commented 6 years ago

i switched to the beta build of proton and i just played through the feros mission and some stuff on the citadel, no errors whatsoever. since the switch i played about 3-4 hours.

nstgc commented 6 years ago

Yeah. When you change builds it updates the prefix and had a similar effect to when I reset it.

rkfg commented 6 years ago

This is pretty weird and I just learned that it's UB to call pure virtual functions from constructor/destructor. I mean, this error must happen in the program itself so how does updating Proton/Wine fix that? Wine is written in C, not C++, it just can't cause this error by itself. Would be great to see the stack trace when it happens.

soredake commented 6 years ago

Set openal32 to builtin and remove

DeviceName=Generic Software
UseEffectsProcessing=False

from BIOEngine.ini This fixed 'Pure Virtual Function' crashes for me.

mirh commented 6 years ago

That already makes more sense. A bug in the wine passthrough would explain both the native-looking error, and the lack of sound for some people.

EDIT: could people getting the pure virtual function crash, attach log/dump to the issue I mentioned in the first comment?

shaphanpena1 commented 6 years ago

I have same problem. No sound in Steamos or Ubuntu. We should not have to edit the configuration files to get working sound in Steamos or any Linux machine. This game works fine on my windows 10 machine. If this can be fixed in steam launch options that would be acceptable

Zakhrov commented 6 years ago

The game works fine on my rig at home but on my laptop which has an AMD Kabini APU it crashes with the following log error

13251.102:0024:0031:err:d3d:wined3d_debug_callback 0xf3ded50: "GL_INVALID_ENUM in glMatrixMode(mode)".
13251.170:0024:0025:trace:module:GetModuleFileNameW L"C:\\windows\\system32\\dinput.dll"
ssEffect.exe: ../lib/CodeGen/LiveInterval.cpp:1020: void llvm::LiveRange::verify() const: Assertion `I->end <= std::next(I)->start' failed.

Both systems have an AMD GPU, the laptop has an AMD A4-5000 APU with an integrated Radeon HD8330 and the Desktop has an FX6300 with a Radeon HD 7770. The game works fine on the desktop rig but crashes on the APU with the above LLVM error. Both systems are running OpenSUSE Tumbleweed with the 4.18 kernel, the AMDGPU module and Mesa 18.1 I've tried deleting the Prefix and even reinstalling the game but the problem still persists on the APU

mirh commented 6 years ago

LLVM error.. try to update mesa or clang?

Zakhrov commented 6 years ago

@mirh I managed to get a wine debug trace of the pure virtual function error but I don't think its related to what you experienced.

Unhandled exception: page fault on read access to 0x1542f9e0 in 32-bit code (0x1542f9e0).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:1542f9e0 ESP:014ad154 EBP:014ad198 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:00000000 EBX:00000000 ECX:15924020 EDX:1542f9e0
 ESI:089d3e80 EDI:00d824b0
Stack dump:
0x014ad154:  007d48e7 15924020 00000000 115f885b
0x014ad164:  00d824b0 00100000 089d3e80 115f88a8
0x014ad174:  10004000 10d8eda9 00a72678 0001b172
0x014ad184:  00000000 014ad17c 014ad1b0 11734790
0x014ad194:  00000000 014ad1bc 10d950c6 00a72678
0x014ad1a4:  11b64530 00000000 014ad1a0 014afde8
Backtrace:
=>0 0x1542f9e0 (0x014ad198)
  1 0x10d950c6 in masseffect (+0x4950c5) (0x014ad1bc)
  2 0x10db34f0 in masseffect (+0x4b34ef) (0x014afdf4)
  3 0x014afe08 (0x11b29cf8)
  4 0x00000000 (0x1184b678)
  5 0x10908ab7 in masseffect (+0x8ab6) (0x10931ecb)
  6 0x75ebe900 _ZN4llvm19X86IntelInstPrinter16printInstructionEPKNS_6MCInstERNS_11raw_ostreamE+0x378f() in libllvm.so.6 (0x11f490e9)
  7 0xe90095b5 (0xfee900a6)
0x1542f9e0: addb        %al,0x0(%eax)
Modules:
Module  Address                 Debug info      Name (173 modules)
PE        540000-  7a7000       Deferred        d3dx9_31
PE        7b0000-  7c2000       Deferred        physxloader
PE        7d0000-  7ed000       Deferred        openal32
PE       1d10000- 1fad000       Deferred        physxcore
PE      10000000-10063000       Deferred        nxcooking
PE      10900000-11de4000       Export          masseffect
PE      18000000-18033000       Deferred        binkw32
ELF     73381000-78437000       Dwarf           libllvm.so.6
ELF     78437000-7928a000       Deferred        radeonsi_dri.so
ELF     7928a000-7a800000       Deferred        steamclient.so
ELF     7a800000-7a93d000       Deferred        opengl32<elf>
  \-PE  7a820000-7a93d000       \               opengl32
ELF     7a941000-7a959000       Deferred        hid<elf>
  \-PE  7a950000-7a959000       \               hid
ELF     7a959000-7a9e6000       Deferred        libvorbisenc.so.2
ELF     7a9e6000-7aac9000       Deferred        libgcrypt.so.20
ELF     7aac9000-7abff000       Deferred        comctl32<elf>
  \-PE  7aad0000-7abff000       \               comctl32
ELF     7b400000-7b7ea000       Deferred        kernel32<elf>
  \-PE  7b410000-7b7ea000       \               kernel32
ELF     7b7f3000-7b80c000       Deferred        msacm32<elf>
  \-PE  7b800000-7b80c000       \               msacm32
ELF     7b80c000-7b83e000       Deferred        winealsa<elf>
  \-PE  7b810000-7b83e000       \               winealsa
ELF     7b83e000-7b86c000       Deferred        libvorbis.so.0
ELF     7b86c000-7b8b3000       Deferred        libflac.so.8
ELF     7b8b3000-7b9cb000       Deferred        libasound.so.2
ELF     7b9cb000-7bb00000       Deferred        libsdl2-2.0.so.0
ELF     7bb01000-7bb17000       Deferred        midimap<elf>
  \-PE  7bb10000-7bb17000       \               midimap
ELF     7bb17000-7bb50000       Deferred        liblzma.so.5
ELF     7bb50000-7bc00000       Deferred        libsystemd.so.0
ELF     7bc00000-7bd0f000       Deferred        ntdll<elf>
  \-PE  7bc10000-7bd0f000       \               ntdll
ELF     7bd24000-7bdb6000       Deferred        libsndfile.so.1
ELF     7bdb6000-7be00000       Deferred        libdbus-1.so.3
ELF     7c000000-7c004000       Deferred        <wine-loader>
ELF     7c013000-7c0a4000       Deferred        libpulsecommon-12.2.so
ELF     7c0a4000-7c100000       Deferred        libpulse.so.0
ELF     7c414000-7c430000       Deferred        libspeex.so.1
ELF     7c430000-7c459000       Deferred        winepulse<elf>
  \-PE  7c440000-7c459000       \               winepulse
ELF     7c459000-7c484000       Deferred        libudev.so.1
ELF     7c484000-7c4bb000       Deferred        uxtheme<elf>
  \-PE  7c490000-7c4bb000       \               uxtheme
ELF     7c4bb000-7c500000       Deferred        usp10<elf>
  \-PE  7c4c0000-7c500000       \               usp10
ELF     7c806000-7c829000       Deferred        mmdevapi<elf>
  \-PE  7c810000-7c829000       \               mmdevapi
ELF     7c829000-7c87c000       Deferred        dinput<elf>
  \-PE  7c830000-7c87c000       \               dinput
ELF     7c89d000-7c8bc000       Deferred        liblz4.so.1
ELF     7cc0e000-7cc16000       Deferred        libogg.so.0
ELF     7cc16000-7cc1c000       Deferred        libcap.so.2
ELF     7cf3c000-7cf68000       Deferred        libtinfo.so.6
ELF     7cf68000-7cfa2000       Deferred        libedit.so.0
ELF     7cfa2000-7cfc0000       Deferred        libelf.so.1
ELF     7cfc0000-7cfcd000       Deferred        libdrm_amdgpu.so.1
ELF     7cfcd000-7cfdc000       Deferred        libdrm_radeon.so.1
ELF     7cfdc000-7cfe7000       Deferred        libdrm_nouveau.so.2
ELF     7cfe7000-7cffc000       Deferred        libdrm.so.2
ELF     7cffc000-7d003000       Deferred        libxcb-dri2.so.0
ELF     7d003000-7d022000       Deferred        libxcb-glx.so.0
ELF     7d022000-7d027000       Deferred        libx11-xcb.so.1
ELF     7d027000-7d045000       Deferred        libglapi.so.0
ELF     7d045000-7d0c0000       Deferred        libglx_mesa.so.0
ELF     7d202000-7d20b000       Deferred        libxcb-sync.so.1
ELF     7d20b000-7d239000       Deferred        libpng12.so.0
ELF     7d239000-7d2a6000       Deferred        setupapi<elf>
  \-PE  7d240000-7d2a6000       \               setupapi
ELF     7d2a6000-7d2ca000       Deferred        gameux<elf>
  \-PE  7d2b0000-7d2ca000       \               gameux
ELF     7d310000-7d520000       Deferred        lsteamclient<elf>
  \-PE  7d3d0000-7d520000       \               lsteamclient
ELF     7d520000-7d525000       Deferred        libxdamage.so.1
ELF     7d525000-7d528000       Deferred        libxshmfence.so.1
ELF     7d528000-7d52d000       Deferred        libxcb-present.so.0
ELF     7d52d000-7d534000       Deferred        libxcb-dri3.so.0
ELF     7d534000-7d549000       Deferred        gnome-keyring-pkcs11.so
ELF     7d549000-7d55e000       Deferred        libtasn1.so.6
ELF     7d55e000-7d597000       Deferred        p11-kit-trust.so
ELF     7d597000-7d5a0000       Deferred        libffi.so.7
ELF     7d5a0000-7d5c4000       Deferred        libgpg-error.so.0
ELF     7d5c4000-7d712000       Deferred        libp11-kit.so.0
ELF     7d712000-7d798000       Deferred        libgcrypt.so.11
ELF     7d798000-7d7aa000       Deferred        libtasn1.so.3
ELF     7d7aa000-7d872000       Deferred        libgnutls.so.26
ELF     7d874000-7d87b000       Deferred        libxfixes.so.3
ELF     7d87b000-7d887000       Deferred        libxcursor.so.1
ELF     7d887000-7d893000       Deferred        libxrender.so.1
ELF     7d893000-7d8a7000       Deferred        libxi.so.6
ELF     7d8a7000-7d8ab000       Deferred        libxcomposite.so.1
ELF     7d8ab000-7d8b2000       Deferred        libxxf86vm.so.1
ELF     7d8b2000-7d8b6000       Deferred        libxinerama.so.1
ELF     7d8b6000-7d8cc000       Deferred        libxext.so.6
ELF     7d8cc000-7d95f000       Deferred        winex11<elf>
  \-PE  7d8e0000-7d95f000       \               winex11
ELF     7d95f000-7d983000       Deferred        imm32<elf>
  \-PE  7d970000-7d983000       \               imm32
ELF     7daf6000-7db30000       Deferred        libexpat.so.1
ELF     7db30000-7db7d000       Deferred        libfontconfig.so.1
ELF     7db7d000-7dbbf000       Deferred        libpng16.so.16
ELF     7dbbf000-7dbd8000       Deferred        libbz2.so.1
ELF     7dbd8000-7dc89000       Deferred        libfreetype.so.6
ELF     7dc89000-7dcd4000       Deferred        dsound<elf>
  \-PE  7dc90000-7dcd4000       \               dsound
ELF     7dcd4000-7dcf5000       Deferred        bcrypt<elf>
  \-PE  7dce0000-7dcf5000       \               bcrypt
ELF     7dcf5000-7ddc3000       Deferred        crypt32<elf>
  \-PE  7dd00000-7ddc3000       \               crypt32
ELF     7ddc3000-7ddf9000       Deferred        wintrust<elf>
  \-PE  7ddd0000-7ddf9000       \               wintrust
ELF     7ddf9000-7df4c000       Deferred        msvcp80<elf>
  \-PE  7de30000-7df4c000       \               msvcp80
ELF     7df4c000-7e00f000       Deferred        msvcr80<elf>
  \-PE  7df60000-7e00f000       \               msvcr80
ELF     7e00f000-7e13f000       Deferred        oleaut32<elf>
  \-PE  7e030000-7e13f000       \               oleaut32
ELF     7e13f000-7e1b4000       Deferred        shlwapi<elf>
  \-PE  7e150000-7e1b4000       \               shlwapi
ELF     7e1b4000-7e454000       Deferred        shell32<elf>
  \-PE  7e1c0000-7e454000       \               shell32
ELF     7e454000-7e47f000       Deferred        msacm32<elf>
  \-PE  7e460000-7e47f000       \               msacm32
ELF     7e47f000-7e537000       Deferred        winmm<elf>
  \-PE  7e490000-7e537000       \               winmm
ELF     7e537000-7e54e000       Deferred        xinput1_3<elf>
  \-PE  7e540000-7e54e000       \               xinput1_3
ELF     7e54e000-7e5ce000       Deferred        rpcrt4<elf>
  \-PE  7e560000-7e5ce000       \               rpcrt4
ELF     7e5ce000-7e725000       Deferred        ole32<elf>
  \-PE  7e5f0000-7e725000       \               ole32
ELF     7e725000-7e741000       Deferred        dinput8<elf>
  \-PE  7e730000-7e741000       \               dinput8
ELF     7e741000-7e7f9000       Deferred        msvcrt<elf>
  \-PE  7e760000-7e7f9000       \               msvcrt
ELF     7e7f9000-7e813000       Deferred        version<elf>
  \-PE  7e800000-7e813000       \               version
ELF     7e813000-7ea11000       Deferred        user32<elf>
  \-PE  7e830000-7ea11000       \               user32
ELF     7ea11000-7eb3e000       Deferred        gdi32<elf>
  \-PE  7ea20000-7eb3e000       \               gdi32
ELF     7eb3e000-7ec86000       Deferred        wined3d<elf>
  \-PE  7eb50000-7ec86000       \               wined3d
ELF     7ec86000-7ecc7000       Deferred        d3d9<elf>
  \-PE  7ec90000-7ecc7000       \               d3d9
ELF     7ecc7000-7ece0000       Deferred        libz.so.1
ELF     7ece0000-7ed46000       Deferred        dbghelp<elf>
  \-PE  7ecf0000-7ed46000       \               dbghelp
ELF     7ed46000-7edbe000       Deferred        advapi32<elf>
  \-PE  7ed50000-7edbe000       \               advapi32
ELF     7edbe000-7ede8000       Deferred        iphlpapi<elf>
  \-PE  7edd0000-7ede8000       \               iphlpapi
ELF     7ede8000-7ee21000       Deferred        ws2_32<elf>
  \-PE  7edf0000-7ee21000       \               ws2_32
ELF     7ee21000-7ee3b000       Deferred        wsock32<elf>
  \-PE  7ee30000-7ee3b000       \               wsock32
ELF     f7631000-f7690000       Deferred        libgldispatch.so.0
ELF     f7690000-f76b3000       Deferred        libglx.so.0
ELF     f76b3000-f76bd000       Deferred        librt.so.1
ELF     f76bd000-f7724000       Deferred        libgl.so.1
ELF     f7724000-f7742000       Deferred        libgcc_s.so.1
ELF     f7742000-f7847000       Deferred        libm.so.6
ELF     f7847000-f784c000       Deferred        libdl.so.2
ELF     f784c000-f7851000       Deferred        libxau.so.6
ELF     f7851000-f7a32000       Deferred        libc.so.6
ELF     f7a32000-f7a51000       Deferred        libpthread.so.0
ELF     f7a53000-f7c0a000       Dwarf           libwine.so.1
ELF     f7c0a000-f7c46000       Deferred        gameoverlayrenderer.so
ELF     f7dd0000-f7f23000       Deferred        libx11.so.6
ELF     f7f23000-f7f52000       Deferred        libxcb.so.1
ELF     f7f54000-f7f7d000       Deferred        ld-linux.so.2
ELF     f7f80000-f7f82000       Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
        00000021    0
        0000001c    0
        00000018    0
        00000013    0
        00000010    0
        0000000f    0
00000011 winedevice.exe
        00000019    0
        00000017    0
        00000016    0
        00000012    0
0000001a plugplay.exe
        0000001e    0
        0000001d    0
        0000001b    0
0000001f winedevice.exe
        00000024    0
        00000023    0
        00000022    0
        00000020    0
00000025 (D) Z:\home\aaron\.local\share\Steam\steamapps\common\Mass Effect\Binaries\MassEffect.exe
        00000051    2
        00000050    2
        0000004f    0
        0000004e    2
        0000004d    2
        0000004c    0
        0000004b   -1
        0000003e    0
        0000003c   15
        0000003b    0
        00000036   15
        00000035    0
        00000034    0
        00000033    0
        00000032    0
        00000031    0
        0000002e   -1
        0000002d    0
        0000002c    0 <==
        00000026    0
00000027 explorer.exe
        0000002b    0
        0000002a    0
        00000029    0
        00000028    0
System information:
    Wine build: wine-3.7
    Platform: i386 (WOW64)
    Version: Windows 7
    Host system: Linux
    Host version: 4.20.0-agd5f-1-default+
Game removed: AppID 17460 "", ProcID 22693 
No cached sticky mapping in ActivateActionSet.JS method call WebChat.GetOverlayChatBrowserInfo with 1 arguments
pid 22695 != 22694, skipping destruction (fork without exec?)

removing the d3dx9_35 DLL override gives me an LLVM error:

 void llvm::LiveRange::verify() const: Assertion `I->end <= std::next(I)->start' failed.

It seems to happen only on my Kabini based laptop with integrated graphics. The game runs perfectly on my home rig that has a HD7770 and the same Mesa and LLVM stack (Mesa 18.1.6, LLVM 6.0.1)

kisak-valve commented 6 years ago

Hello @Zakhrov, if possible, please retest with mesa built against llvm 7+.

Zakhrov commented 6 years ago

@kisak-valve I tried it with Mesa git compiled with LLVM 8.0 and I got the same LLVM error message. It crashes right after you confirm your character choices and difficulty options.

MassEffect.exe: ../lib/CodeGen/LiveInterval.cpp:1022: void llvm::LiveRange::verify() const: Assertion `I->end <= std::next(I)->start' failed.
nstgc commented 6 years ago

@kisak-valve I got the same error (don't have logs, sorry) using nVidia's official drivers, version 396.54 (or .51, can't remember).

shaphanpena1 commented 6 years ago

I got sound working thanks to free sevensix. Changed config files using Steamos. It has to be done by first installing gedit via the terminal in desktop mode "sudo apt-get install gedit" and then opening gedit via terminal "sudo gedit". Added lines directly under iscat audio.

FreeSevenSix commented 6 years ago

new chrash with message: terraincomponent BIOA_UNC81_00LAY. TheWorldPersistentLevel.Terrain_0. TerrainComponent_514: Serial size mismatch: got 27345, Expected 39749

don't know that this is related to steamplay or just a bug in the game

edit: i reloaded the game and the bug didn't repeat itself

axeldavy commented 5 years ago

For the pure virtual function error, maybe try with the large address aware patch for ME1.

mirh commented 5 years ago

It shouldn't really matter with an unmodded game with default settings, just to reach menu.

axeldavy commented 5 years ago

Here i get crashes after some time on normal wine without the large address space patch. And with gallium nine it crahes faster. Investigation found that a lot of the 2gb address space is wasted and in particular 500mb is taken by all the linux libs: pulseaudio, llvm, etc. Large address fixes the issue as wine won't block some of the address space. Probably on windows the space taken by libs is lower and thus it just fits. I though maybe some of the issues in this bug report could be related.

Le ven. 5 oct. 2018 à 13:26, mirh notifications@github.com a écrit :

It shouldn't really matter with an unmodded game with default settings, just to reach menu.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/177#issuecomment-427333585, or mute the thread https://github.com/notifications/unsubscribe-auth/ACbbsWvPgTREuD7liKvPgvFpqbyOBMFXks5uh0H2gaJpZM4WIgCJ .

mirh commented 5 years ago

Uh That sounds like something that should be very much in need to be reported upstream

elcalenx commented 5 years ago

I've spent some time these past couple days trying to get Mass Effect to run on my computer, but the game keeps crashing when I'm loading a saved game. Not every time, but more often than not. I might get half a dozen or more fails before a successful load... Sometimes the game exits or freezes with no error message. Sometimes I get the 'Pure virtual function' error. Sometimes I get errors about loading assets with 'Serial size mismatch'. I've seen 'Bad name index', 'Bad export index', or even 'Ran out of virtual memory'... But almost always this has happened on the loading screen. To be fair, I haven't extensively tested actual gameplay (mostly just the bridge on the Normandy, and the beginning of Eden Prime), but so far I've yet to have issues outside of loading screens.

I've tried changing graphics settings. I've tried Proton 3.7-8 and 3.16-4-beta. I've tried wiping the prefix, and reinstalling the entire game. The audio workarounds in this thread make no difference (other than fixing the audio, that is). Based on earlier comments, I tried to set executables to handle more than 2gb ram (tried a tool called CFF Explorer, and the LAA patch), this also changed nothing. (For what it's worth, ME2 seems to run reasonably on this computer, I encountered no crashes in the hour or so I tested it.)

System info: Debian testing, kernel 4.18, i3-6100, integrated Intel HD Graphics 530, 8gb ram

axeldavy commented 5 years ago

You could try what the wine devs advised on the mailing list to reduce Virtual Mem usage of pulseaudio:

It is annoying that it takes up so much memory by default. Each PA stream that we open reserves 64 MiB of RAM, which can add up quickly depending on how the game does its audio. You can fix that by changing the value of shm-size-bytes in /etc/pulse/daemon.conf to something more reasonable, like 1 MiB:

shm-size-bytes=1048576
brian-brazil commented 5 years ago

You could try what the wine devs advised on the mailing list to reduce Virtual Mem usage of pulseaudio:

I tried this, and just got a pure virtual function crash after a few hours.

AlexJDowson commented 5 years ago

I'm experiencing this on both the Origin version, and the Steam version. Most of the time I get the "Pure Virtual Function" crash. But, I've had several other crashes like the "General protection fault" one. Also getting "Ran out of virtual memory".

All of these errors seem to be triggered by cutscenes. I rarely get crashes whilst moving around. The scene where the Normandy first flies to the Citadel almost always crashes my game (large cutscene = lots of memory usage/leakage?).

I tried the fix @soredake suggested. Having openal32 set to native fixed my audio (no sound), but there are several entries for "DeviceName", and "UseEffectsProcessing" so I'm not sure what part they are referring to. My "DeviceName" was already "Generic Software", but I've set all instances of "UseEffectsProcessing" to false. This fix seems to have little effect for me. But the openal32 override was a good pointer.

I tried the fix @axeldavy suggested with Pulseaudio, this does seem to reduce the frequency of crashes. But it still crashes pretty quickly.

I've tried both Proton, and Wine-4.0-rc2-22 (with Gallium Nine). Both are giving me the same trouble. Very odd, I remember this game running fine under Linux. I did have DXVK enabled for Origin, and disabling this seems to make Mass Effect much more stable for me, which I find odd.

michaldybczak commented 5 years ago

I had the same sound issue (no sound) in Mass Effect 1 that was resolved by adding those two lines showed in OP to the ini file as described in the 5th comment. Thank you!

I'm using Proton 3.16-6 beta.

axeldavy commented 5 years ago

I tried the fix @axeldavy suggested with Pulseaudio, this does seem to reduce the frequency of crashes. But it still crashes pretty quickly.

I've tried both Proton, and Wine-4.0-rc2-22 (with Gallium Nine). Both are giving me the same trouble.

You can try this patch on the ml: https://lists.freedesktop.org/archives/mesa-dev/2018-December/212125.html

This should reduce virtual mem usage of both gallium nine and mesa ogl with radeonsi, assuming that's the driver you use.

AlexJDowson commented 5 years ago

Responding to ME2 comment, in my limited testing ME2 ran perfectly. A surprising number of games in fact are running perfectly without any intervention from me. At least in cursory tests. Initially I thought ME1 ran perfectly too. . .

I've tested this as an attempted full playthrough of all three games. Mass Effect 1 has the "Pure Virtual Function Error". Mass Effect 2 also has the "Pure Virtual Function Error", but this sometimes manifests as a Microsoft Visual C++ Error "R6025". "R6025" appears to just mean "Virtual Function Error".

Tried using winetricks to install vcrun2005, vcrun2008, and vcrun2010. No luck with that. The game does work, but after a couple of loading screens it will crash during loading with the "Pure Virtual Function Error".

AlexJDowson commented 5 years ago

I tried the fix @axeldavy suggested with Pulseaudio, this does seem to reduce the frequency of crashes. But it still crashes pretty quickly. I've tried both Proton, and Wine-4.0-rc2-22 (with Gallium Nine). Both are giving me the same trouble.

You can try this patch on the ml: https://lists.freedesktop.org/archives/mesa-dev/2018-December/212125.html

This should reduce virtual mem usage of both gallium nine and mesa ogl with radeonsi, assuming that's the driver you use.

I'm using the amdgpu driver, is that supported by this patch? Going to be honest, I've got no idea how to apply that patch to my system. Has it been merged into Mesa?

michaldybczak commented 5 years ago

I also have this virtual function error all the time. Usually, it's one per hour, sometimes more often, sometimes less often but it eventually crashes the game at some point or another. I'm using nvidia non-free drivers 415 line (pn gtx 970M card) and 3.16-6 Proton in Steam.

I've been trying to understand what mesa is but I still don't understand what it is or what it does and I assume I don't use it when being on nvidia proprietary drivers? So this patch wouldn't work for me either and also I would have no idea how to use it anyway.

The game is playable but I have to remember to do often quicksaves to avoid using gameplay because of those crashes.

axeldavy commented 5 years ago

I tried the fix @axeldavy suggested with Pulseaudio, this does seem to reduce the frequency of crashes. But it still crashes pretty quickly. I've tried both Proton, and Wine-4.0-rc2-22 (with Gallium Nine). Both are giving me the same trouble.

You can try this patch on the ml: https://lists.freedesktop.org/archives/mesa-dev/2018-December/212125.html This should reduce virtual mem usage of both gallium nine and mesa ogl with radeonsi, assuming that's the driver you use.

I'm using the amdgpu driver, is that supported by this patch? Going to be honest, I've got no idea how to apply that patch to my system. Has it been merged into Mesa?

It has been merged to mesa git a few weeks ago.

AlexJDowson commented 5 years ago

I tried the fix @axeldavy suggested with Pulseaudio, this does seem to reduce the frequency of crashes. But it still crashes pretty quickly. I've tried both Proton, and Wine-4.0-rc2-22 (with Gallium Nine). Both are giving me the same trouble.

You can try this patch on the ml: https://lists.freedesktop.org/archives/mesa-dev/2018-December/212125.html This should reduce virtual mem usage of both gallium nine and mesa ogl with radeonsi, assuming that's the driver you use.

I'm using the amdgpu driver, is that supported by this patch? Going to be honest, I've got no idea how to apply that patch to my system. Has it been merged into Mesa?

It has been merged to mesa git a few weeks ago.

So I've switched over to mesa-git on the AUR, I assume that means I have mesa with the patch you linked. I'm still getting the issue though seemingly less frequently. Issue is still present in both Mass Effect 1, and Mass Effect 2. Mass Effect 1 gives me the classic "Pure Virtual Function" error. Mass Effect 2 is giving me "Error R6025", which according to Google is shorthand for "Pure Virtual Function Error".

[user@hostname ~]$ glxinfo | grep "OpenGL version"
OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.0.0-devel (git-e12b0b5c6d)
[user@hostname ~]$ sudo lshw -c video
  *-display                 
       description: VGA compatible controller
       product: Ellesmere [Radeon RX 470/480/570/570X/580/580X]
       vendor: Advanced Micro Devices, Inc. [AMD/ATI]
       physical id: 0
       bus info: pci@0000:22:00.0
       version: e7
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
       configuration: driver=amdgpu latency=0
       resources: irq:62 memory:e0000000-efffffff memory:f0000000-f01fffff ioport:e000(size=256) memory:fe800000-fe83ffff memory:c0000-dffff
AlexJDowson commented 5 years ago

@axeldavy Derp just re-read your post, I'm guessing that didn't work because I'm not using the radeonsi driver. I'm using amdgpu.

mirh commented 5 years ago

Amdgpu is the kernel driver, radeonsi the mesa opengl component. You might also want to try the shm-size-bytes workaround mentioned above.

Also check if vanilla wine (with and without nine) is performing any differently in crash frequency.

AlexJDowson commented 5 years ago

@mirh The shm-size-bytes fix was the first thing I tried, it had a noticeable, but limited effect on the frequency of the crashes.

It crashes less frequently with vanilla wine, but Gallium Nine is pretty essential for the trilogy. I know I'm being captain obvious, but it seems like the more patches you enable, the more crashes you get. Maybe Gallium Nine is chewing up virtual memory somehow? I have noticed quite high virtual memory usage (>3.5GB).

I've been testing it, and being on the mesa-git branch seems to have improved things quite significantly most likely because of the patch @axeldavy mentioned. But, it's still pretty bad at times. Usually when it crashes you'll have to start it again 2-3 times because you'll recieve the virtual function/R6025 error upon starting the game (no hanging processes when this happens). Most of the time I just kill the entire prefix to save time.

axeldavy commented 5 years ago

Do you compile mesa and wine with debug symbols by any chance ? Check your compile options. The libraries are mapped and take virtual space... so better have compact ones.

Le sam. 12 janv. 2019 à 01:30, CopiousCoffee notifications@github.com a écrit :

@mirh https://github.com/mirh The shm-size-bytes fix was the first thing I tried, it had a noticeable, but limited effect on the frequency of the crashes.

It crashes less frequently with vanilla wine, but Gallium Nine is pretty essential for the trilogy. I know I'm being captain obvious, but it seems like the more patches you enable, the more crashes you get. Maybe Gallium Nine is chewing up virtual memory somehow? I have noticed quite high virtual memory usage (>3.5GB).

I've been testing it, and being on the mesa-git branch seems to have improved things quite significantly most likely because of the patch https://lists.freedesktop.org/archives/mesa-dev/2018-December/212125.html @axeldavy https://github.com/axeldavy mentioned. But, it's still pretty bad at times. Usually when it crashes you'll have to start it again 2-3 times because you'll recieve the virtual function/R6025 error upon starting the game (no hanging processes when this happens). Most of the time I just kill the entire prefix to save time.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/177#issuecomment-453700764, or mute the thread https://github.com/notifications/unsubscribe-auth/ACbbscPxRmRW9D1_QzJzZt7-p41uSZUXks5vCSy7gaJpZM4WIgCJ .

mirh commented 5 years ago

By the way.. how have you been doing about https://github.com/iXit/Mesa-3D/issues/297?

Also of note, as a super half-assy workaround this patch

axeldavy commented 5 years ago

Using wine memory allocation function doesn't help with virtual mem usage and has higher overhead(i did try). Thus it isn't on my todo list anymore.

Le sam. 12 janv. 2019 à 02:03, mirh notifications@github.com a écrit :

By the way.. how have you been doing about iXit/Mesa-3D#297 https://github.com/iXit/Mesa-3D/issues/297?

Also of note, as a super half-assy workaround this patch https://github.com/iXit/Mesa-3D/issues/309#issuecomment-368314222

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/177#issuecomment-453704835, or mute the thread https://github.com/notifications/unsubscribe-auth/ACbbsUuwiisIIo1VkCvog8ZJ06KSgc6Zks5vCTRIgaJpZM4WIgCJ .