Proton: Mass Effect (17460)

Created on 23 Aug 2018  Â·  77Comments  Â·  Source: ValveSoftware/Proton

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

Game compatibility - Unofficial

Most helpful comment

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.

All 77 comments

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.

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.

Mouse behaves very strange as if stumbling on the walls.

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.

Could you try installing libopenal1 ?

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.

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

does the game have higher resolution on windows?

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.

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.

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. . .

@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?

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

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.

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

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.

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.

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

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.

Set openal32 to builtin and remove

DeviceName=Generic Software
UseEffectsProcessing=False

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

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?

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

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

LLVM error.. try to update mesa or clang?

@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)

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

@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.

@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).

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.

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

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

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

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
.

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

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

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

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.

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.

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.

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.

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".

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?

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.

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.

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

@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.

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.

@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.

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
.

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

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
.

@CopiousCoffee Just to check, you must use lib32's mesa-git as the games are 32 bits.
Could you try to tweak the mesa configure options to only compile for your graphic card ? (radeonsi I presume).
Some time ago, mesa defaulted to a monolothic model to reduce total package space: the gl and d3d .so do contain all the driver code... and thus also link to the libraries needed by all these drivers. I guess you can reduce the total number of library code loaded, and thus the virtual memory usage, by supporting fewer hardware.
Else I think it is still possible to use the old way, where each hw has a .so and you load only the .so of the hardware you need. The opencl implementation only supports that.

EDIT: it looks like only small libs are added by non-radeonsi drivers, I guess it won't help much unfortunately on that side.

Oh baby: https://www.phoronix.com/scan.php?page=news_item&px=Mesa-19.0-Halves-TF2-Memory
Anybody (without an nvidia card) could check latest git?

Set openal32 to builtin

Can anyone clarify what @soredake meant here? I don't see anything mentioning openal32 in the INI - in fact, I only see openal32 referenced as a dll inside the compatdata for the game.

Is this something I need to change on my system? Do I need to pass something as a launch option? I'd like to try this suggestion. Perhaps @CopiousCoffee can explain, since they seemed to understand, and get it to work?

@PisoMojado I just renamed OpenAL32.dll to OpenAL32.dll.bak in Steam/steamapps/common/Mass Effect/Binaries and everything works without ini modifications.

I did that too, played about 20 min. and got the crash so disabling OpenAL32.dll is not enough.
I wanted to change ini but I can't find BIOEngine.ini. Where is it?

I only found: BaseEngline.ini and it does have those lines:

DeviceName=Generic Software
UseEffectsProcessing=True

Hmm... Will make a copy of it and make changes in this file, let's see what happens.

EDIT: Played an hour and NO CRASH! So far so good. Will report more later but the solution looks very promising! To sum up:
1, Rename OpenAL32.dll to OpenAL32.dll.bak in Steam/steamapps/common/Mass Effect/Binaries

  1. Go to SteamLibrary/steamapps/common/Mass Effect/Engine/Config/BaseEngine.ini
    Backup BaseEngine.ini and delete the lines:
DeviceName=Generic Software
UseEffectsProcessing=True

In the second case, it can be also set to False.

BIOEngine.ini is in the documents folder, alongside saves and all other settings.
For ME it should be in ~/.steam/steam/steamapps/compatdata/17460/pfx/drive_c/users/steamuser/My Documents/Bioware/Mass Effect/Config/ or something like that.

I don't have that folder. In ~/.steam/steam/steamapps/compatdata/ there is no 17460 folder. I have two different ones, but for other games.
Those paths can be crazy long and complex. This is why they must be shown when giving any solution. Too often people omit that and the solution becomes useless because it's almost impossible to find certain files in such convoluted path structures.

EDIT: I found it finally. I have two locations for steam apps and in my case it was in:

/mnt/home-hdd/SteamLibrary/steamapps/compatdata/17460/pfx/drive_c/users/steamuser/My Documents/BioWare/Mass Effect/Config/BIOEngine.ini

which is on my other, hdd parition. So at least if I still come across crashes, I know where to look for the mentioned config but so far games was suprisingly stable, although more laggy then normal. I'm wondering if that is coincidence...? Hmmm...

@SergiusTheBest I appreciate the tip, but while moving OpenAL32.dll does produce audio, I continue to get game crashing errors.
@michaldybczak I tried your suggestion as well, but I continue to get crashes.
I will try mesa 19, as @mirh suggested.

@michaldybczak You can find the exact path from Steam: properties->local files->browse local files:
image

Mass Effect has very poor FPS in certain places with Proton. For example, the galaxy map thing in the very beginning (also during the starting split screencutscene for a few split seconds) causes this. A similar slowdown is present at the beacon in the first mission, but not so severe. I get very fluent FPS otherwise, but the galaxy map drops FTP to around 5-20 (don't have a functioning FPS counter, but I presume it is around 60+ FPS otherwise).

Haven't found a workaround, but can say that running trough plain Wine (and Windows Steam) the slowdown is much less severe. It is still there, but the effect is perhaps 1/3 - 1/5 of the slowdown on while running trough Proton. Also, this slowdown is a common issue on Windows and even Consoles, judging from some Google Searches I've found. Some suggest the engine is just buggy and works fine if locked to a single CPU core, but that does not help in my case (tried with taskset and "-CPUCount:1 -CPUPriority:high " -parameters for the exe.

This is on an i4790k, and Radeon RX Vega64, Proton 4.2-2 (also tried older versions).

Nth friendly reminder that vanilla wined3d (which gets used for d3d9) has bad buffers mapping, and you only get up to par performance with pba or nine.

@mirh : in case your comment was aimed at me, my point was you get subpar performance with Proton (while playable, 5-20FPS is quite immersion breaking, and reducing details and/or resolution doesn't help at all here - as if there's some kind of race condition in the engine triggered by some conditions). I think this is valuable information for other users, since it is a bit troublesome to install another steam instance (required for plain Wine). After all, it is a bit surprising wine (without proton) gives better performance. Also, perhaps Proton could be improved, or perhaps there is some other workaround I haven't found out.

Forgot I'm using wine-staging, which could of course have some optimizations which are not in Protons wine.

Otherwise, I'm having some difficulties understanding your comment. Nth? pba? Nine=d3d9? (please don't use acronyms which are not common, or maybe I'm just getting old...).

After some testing, I noticed it is actually csmt which is hurting performance (like halving-1/4thing FPS in said parts). If you get subpar performance at certain parts, disable csmt - which seems to be enabled per default in Proton wine. That requires running winecfg (issue #24) or editing the registry by hand.

After some testing, I noticed it is actually csmt which is hurting performance (like halving-1/4thing FPS in said parts). If you get subpar performance at certain parts, disable csmt - which seems to be enabled per default in Proton wine. That requires running winecfg (issue #24) or editing the registry by hand.

How do I do that?

Since my path is:

/mnt/home-hdd/SteamLibrary/steamapps/compatdata/17460/pfx/drive_c/users/steamuser/My Documents/BioWare/Mass Effect/

so I used the command:

WINEPREFIX=/mnt/home-hdd/SteamLibrary/steamapps/compatdata/17460/pfx/ winecfg

and it asked me to install mono, I thought it wouldn't hurt, then it opened winecfg correctly and then what? There is no csmt on the library list (enabled or to add). Also, am I running the proper winecfg? On one of the tabs I see version 4.6 which is correct for the system wine but not for the proton which hasn't reached that version yet.
And if winecfg won't work, how do I access the proper registry for the correct prefix in winetrick script? And if I do find it, how what is exactly to change in registry?

I noticed I had messed up a bit after my last comment ...

The wine is proton does not have that setting in winecfg (contrary to wine-staging). I was only able to change it trough winecfg since I was accidentally using external wine to run winecfg - my PATH was set incorrectly (actually, "protVer" was wrong - see the example script in the issue). So in case you want to disable it, edit user.reg, find [Software\Wine\Direct3D] and change csmt to "csmt"=dword:00000000 (or run regedit). Also see here

Note, there is no need to do this unless you get abnormal FPS drops. I haven't seen anybody else reporting this (might happen only on certain graphics drivers like AMDGPU).

I do get some slowdowns and lags. Performancewise Mass Effect is far from ideal. It works but has many situations where it's not optimal. If Witcher 3 can run smoothly in ultra settings, then Mass Effect should also be handled well. Although W3 uses Vulkan and Mass Effect still OpenGL which sucks.
Can't wait for this DX9 to Vulkan translation layer.

@WildPenquin, I found an easier solution. I just installed Protontricks and run in terminal:

protontricks --gui

That let me to choose Mass Effect from the list and opened winetricks for the needed Proton prefix. I opened registry editor and can't find HKEY_CURRENT_USER->Software->Wine->Direct3D. I tried to search for "csmt" but nothing was found.

Or maybe I don't have this csmt after all if registry search (I clicked on the "My Computer" to search all the registry branches)?

I didn't know about protontricks, thanks for the tip.

@michaldybczak : Maybe the registry entry is not there per default. However it seems that the Proton Wine still reads it. IIRC, at some point, csmt got enabled per default in the main wine branch and the option was removed from winecfg (it is beyond me why they chose to do so, as csmt is known to sometimes hurt performance, as is demonstrated here; the option is still there in wine-stagings winecfg). The same (as main wine branch) is probably the case with proton. You might try to create the entry; in my user.reg:

$ cat ~/.steam/steam/steamapps/compatdata/17460/pfx/user.reg | grep -i csmt -B2 -A2
[Software\\Wine\\Direct3D] 1555925604
#time=1d4f8ee6efb689c
"csmt"=dword:00000000

[Software\\Wine\\DllOverrides] 1555180385

However, I've also noticed that I get constant crashes in Proton while playing Mass Effect (Pure Virtualization function called and much more rarely some other crashes; quicksave is the savior but it's still annoying since they happen like every 5-30minutes). But with wine Steam, they are mostly absent (or completely absent? Only played a few hours, maybe I just got lucky...).

Some additional memory tricks (in addition to those already mentioned) you may want to try to avoid going out of memory
https://github.com/doitsujin/dxvk/issues/1100#issuecomment-519833964

Compatibility Report

System Information

LOG:
steam-17460.log

Symptoms

Game runs great, but there is no sound. Workaround mentioned in this https://github.com/ValveSoftware/Proton/issues/177#issuecomment-470393198.

I can also confirm that the game works great with Proton 5.0-2. Performance wise it is even a way better than it was before. Still, have to play longer to see if the old issue with crashes is still there or not.

The issue with the sound is an old one and once the workaround is done, the sound works no matter on which Proton version you are.

I'm not able to select anything at any menu with the mouse cursor. I've enabled the hardware mouse in the settings. In most of them I can just use the keyboard but in other menus is impossible to do this. Is there something else I need to do?

EDIT: Can confirm this only happens in Wayland, not in X11.

Research into and a proper fix for black blobs
https://cookieplmonster.github.io/2020/07/19/silentpatch-mass-effect/

Mass Effect modding tools ME3Tweaks Mod Manager and ALOT texture installer (and yes, despite the name ME3Tweaks, it's a mod manager for the whole trilogy) both don't work in Proton.

They're .NET applications but even attempting to install .NET with Proton still doesn't make them work.

About the Black Blobs, it's supposedly a known issue for AMD users and someone claims to have fixed it with a mod: here.

ME3Explorer works with dotnet48 and d3dcompiler_47.
And the latest AMD fix is here.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

shanefagan picture shanefagan  Â·  3Comments

AwesamLinux picture AwesamLinux  Â·  3Comments

prototype99 picture prototype99  Â·  3Comments

ArekPiekarz picture ArekPiekarz  Â·  3Comments

ghost picture ghost  Â·  3Comments