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
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:
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.htmlThis 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
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
:
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
LOG:
steam-17460.log
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.
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.