Proton icon indicating copy to clipboard operation
Proton copied to clipboard

Evil Genius 2 (700600)

Open PatTheSilent opened this issue 5 years ago • 44 comments

Compatibility Report

  • Name of the game with compatibility issues: Evil Genius 2
  • Steam AppID of the game: 700600

System Information

  • GPU: GTX 1660s
  • Driver/LLVM version: nvidia 460.67
  • Kernel version: 5.11.10
  • Link to full system information report as Gist:
  • Proton version: 5.13.6

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

steam-700600.log

Symptoms

Game crashes on launch

Reproduction

Start the game

PatTheSilent avatar Mar 30 '21 18:03 PatTheSilent

Evil Genius 2: World Domination (700600)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/4709. @hsmalley posted on 2021-03-30T18:04:11:

Compatibility Report

  • Name of the game with compatibility issues: Evil Genius 2: World Domination
  • Steam AppID of the game: 700600

System Information

  • GPU: GTX-1050
  • Driver/LLVM version: 460.67
  • Kernel version: 5.11.10-zen1-1-zen
  • Link to full system information report as Gist:
  • Proton version: 5.13-6

I confirm:

  • [X ] that I haven't found an existing compatibility report for this game.
  • [X ] that I have checked whether there are updates for my system available.

<Proton log omitted, please see #4709.>

Symptoms

Game installs but does not launch

Reproduction

Install game and launch

kisak-valve avatar Mar 30 '21 18:03 kisak-valve

I can reproduce the same issue. steam-700600.log

System Information

  • GPU: NVIDIA GeForce RTX 2080 Ti
  • Driver/LLVM version: NVIDIA 460.67
  • Kernel version: 5.11.7-051107-generic
  • Link to full system information report as Gist
  • Proton version: Proton Experimental

leinardi avatar Mar 30 '21 18:03 leinardi

I can also reproduce this issue, though I notice my backtrace is different:

Backtrace:
=>0 0x000000007b45318c GetFirmwareEnvironmentVariableW+0x17c() in kernel32 (0x000000000022f3e0)
0x000000007b45318c GetFirmwareEnvironmentVariableW+0x17c in kernel32: leaq	0xfffffffffffffff0(%rbp),%rsp

I get the impression that GetFirmwareEnvironmentVariableW is a nop in Wine, which the other backtraces seem to confirm.

System Information

  • GPU: NVIDIA GeForce GTX 970
  • Driver/LLVM version: NVIDIA 460.67
  • Kernel version: 5.11.10-200.fc33.x86_64
  • Link to full system information report as Gist
  • Proton version: Proton 5.13-6

svip avatar Mar 30 '21 18:03 svip

Bypassing the launcher...

cd ../Steam/steamapps/common/Evil Genius 2/Launcher mv eg2.exe eg2.exe.sav ln -s ../bin/evilgenius_vulkan.exe

I did actually get the game to produce a snippet of sound a few times before it barfed. Lately, I get an actual popup from what seems like the game saying that it failed to run.

sidrew avatar Mar 30 '21 19:03 sidrew

Using Proton 6.1-GE-2 and bypassing the launcher by linking it to ../bin/evilgenius_vulkan.exe has let me play the game perfectly fine, though it doesn't exit cleanly and has to be stopped through Steam afterwards.

ananace avatar Mar 30 '21 19:03 ananace

Using Proton 6.1-GE-2 and bypassing the launcher by linking it to ../bin/evilgenius_vulkan.exe has let me play the game perfectly fine, though it doesn't exit cleanly and has to be stopped through Steam afterwards.

I've tried this, but I still get failures akin to what @sidrew reports (including with 6.1-GE-2 specifically).

GBeauregard avatar Mar 30 '21 21:03 GBeauregard

Using Proton 6.1-GE-2 and bypassing the launcher by linking it to ../bin/evilgenius_vulkan.exe has let me play the game perfectly fine, though it doesn't exit cleanly and has to be stopped through Steam afterwards.

Can confirm this does get it to work. However it changes scaling to 200% on gnome for me, it caused my screen to freak out a little too unless I set it to boarderless rather than full screen. I'll have to try it later tonight to see if I can replicate it without an external display. I was able to play for about 30 min without any other problems.

hsmalley avatar Mar 30 '21 21:03 hsmalley

Bypassing the launcher was sufficient for me. I didn't even need to change the Proton version. steam-700600.log (from before it worked) system information

hatzka-nezumi avatar Mar 30 '21 23:03 hatzka-nezumi

I eventually ran it with Proton 6.5-GE-1 and bypassing the launcher. Worked perfectly, including closing the game and external display. It did flicker a bit during launch but otherwise playable.

PatTheSilent avatar Mar 31 '21 07:03 PatTheSilent

Bypassing the launcher...

cd ../Steam/steamapps/common/Evil Genius 2/Launcher mv eg2.exe eg2.exe.sav ln -s ../bin/evilgenius_vulkan.exe

I did actually get the game to produce a snippet of sound a few times before it barfed. Lately, I get an actual popup from what seems like the game saying that it failed to run.

Doing the same, but using Proton 5.13-6 makes it work nearly perfectly on my Debian GNU/Linux testing system (running on Ryzen 4800H + Radeon 5500M hardware). The only issue is the mouse cursor being very laggy in the menu. But that problem goes away when I check the "Disable mouse lag" option in the graphics settings.

spth avatar Mar 31 '21 07:03 spth

Ok, so the game is playable if we work around the crappy launcher. What do we do with this issue then? Close it as there is a workaround or keep it for launcher issues?

PatTheSilent avatar Mar 31 '21 08:03 PatTheSilent

@PatTheSilent afaik unofficial game compatibility issues do not get closed on this tracker, even if the game works flawlessly.

leinardi avatar Mar 31 '21 09:03 leinardi

Bypassing the launcher...

cd ../Steam/steamapps/common/Evil Genius 2/Launcher mv eg2.exe eg2.exe.sav ln -s ../bin/evilgenius_vulkan.exe

I did actually get the game to produce a snippet of sound a few times before it barfed. Lately, I get an actual popup from what seems like the game saying that it failed to run.

It seems we're the only ones the workaround doesn't work for so far. I'm on i3/gentoo/nvidia proprietary drivers/my monitor is 4k.

Do any of these match up with you?

GBeauregard avatar Mar 31 '21 09:03 GBeauregard

I found a way to run the Evil Genius 2 Launcher without renaming the game's executables, I have tested this on Proton-6.5-GE-1 and Proton-5.13-6. Leaving this here as this may help to enhance Proton to support more games.

My system specifications (click to expand)

System specifications


OS: Arch Linux x86_64 
Kernel: 5.11.11-zen1-1-zen 
Uptime: 3 hours, 17 mins 
Packages: 1298 (pacman) 
Shell: bash 5.1.4 
Resolution: 1920x1080 
DE: Cinnamon 4.8.6 
WM: Mutter (Muffin) 
WM Theme: Mojave-dark (Mojave-dark) 
Theme: Mojave-dark [GTK2/3] 
Icons: McMojave-circle [GTK2/3] 
Terminal: guake 
CPU: Intel i7-4770K (8) @ 3.900GHz 
GPU: NVIDIA GeForce GTX 980 
GPU: NVIDIA GeForce GTX 980 
Memory: 5487MiB / 15937MiB

Here are the few issues I encountered

EG2.exe hangs on startup (both Proton/ProtonGE): I'm working around it with WINEDLLOVERRIDES="*amd_ags_x64=d"

Wine log (click to expand)

Wine log


00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WINMM.dll" at 00000000637C0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\mpr.dll" at 000000006D9C0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shcore.dll" at 0000000064940000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0000000068A40000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shell32.dll" at 00007F96343D0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ws2_32.dll" at 00007F9634370000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WININET.dll" at 000000006B2C0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\OLEAUT32.dll" at 000000006A100000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\opengl32.dll" at 000000007A850000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wined3d.dll" at 00007F9634190000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dxgi.dll" at 00007F9634330000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 000000006BEC0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\usp10.dll" at 0000000062600000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\winsxs\\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef\\COMCTL32.dll" at 000000006E6C0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\urlmon.dll" at 0000000071140000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\jsproxy.dll" at 0000000071240000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WINHTTP.dll" at 0000000064340000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winex11.drv" at 00007F9633DD0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0000000062140000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\api-ms-win-core-synch-l1-2-0.dll" at 000000006E340000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\api-ms-win-core-fibers-l1-1-1.dll" at 000000006B880000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\api-ms-win-core-localization-l1-2-1.dll" at 00000000008D0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\vulkan-1.dll" at 0000000064D40000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winevulkan.dll" at 00007F96334F0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\amd_ags_x64.dll" at 0000000064DC0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dbghelp.dll" at 0000000066200000: builtin
00d0:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\dbghelp.dll" : builtin
wine: Unhandled exception 0xc06d007f in thread d0 at address 000000007B01193E (thread 00d0), starting debugger...
ERROR: ld.so: object '/home/arno/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ntdll.dll" at 000000007BC00000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B610000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winedbg.exe" at 00007F219A890000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00007F219A670000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dbghelp.dll" at 0000000066200000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 0000000061900000: builtin
00d8:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 00007F219A5E0000: builtin
Unhandled exception: 0xc06d007f in 64-bit code (0x000000007b01193e).
Register dump:
 rip:000000007b01193e rsp:000000000021ef80 rbp:000000000021f0d8 eflags:00000202 (   - --  I   - - - )
 rax:000000000021efc0 rbx:0000000000000000 rcx:000000000021efa0 rdx:0000000000000000
 rsi:000000000021f140 rdi:000000000021efc8  r8:0000000000000001  r9:000000000021f138 r10:000000007bc76540
 r11:000000000021ef48 r12:0000000140050330 r13:000000014004cb48 r14:0000000140050a10 r15:0000000000000001
Stack dump:
0x000000000021ef80:  000000000021efa0 ffffffffffffffff
0x000000000021ef90:  000000000021f050 000000007b647c1b
0x000000000021efa0:  00000000c06d007f 0000000000000000
0x000000000021efb0:  000000007b01193e 0000000000000001
0x000000000021efc0:  000000000021f080 0000000000000000
0x000000000021efd0:  0000000000000000 0000000000000000
0x000000000021efe0:  0000000000000000 0000000000000000
0x000000000021eff0:  0000000000000000 0000000000000000
0x000000000021f000:  0000000000000000 0000000000000000
0x000000000021f010:  0000000000000000 0000000000000000
0x000000000021f020:  0000000000000000 0000000000000000
0x000000000021f030:  0000000000000000 0000000000000000
Backtrace:
=>0 0x000000007b01193e EntryPoint+0xffffffffffffffff() in kernelbase (0x000000000021f0d8)
  1 0x0000000140017ffc in eg2 (+0x17ffb) (0x000000000021f0d8)
  2 0x000000014001934b in eg2 (+0x1934a) (0x0000000000000534)
  3 0x000000014000a26a in eg2 (+0xa269) (0x0000000000000534)
  4 0x0000000140009d75 in eg2 (+0x9d74) (0x000000000021ffd0)
  5 0x0000000140018b4e in eg2 (+0x18b4d) (0x000000000021ffd0)
  6 0x000000007b64ae76 in kernel32 (+0x3ae75) (0x000000000021ffd0)
0x000000007b01193e EntryPoint+0xffffffffffffffff in kernelbase: nop	
Modules:
Module	Address					Debug info	Name (41 modules)
PE	          8d0000-          8d8000	Deferred        api-ms-win-core-localization-l1-2-1
PE	        53000000-        530db000	Deferred        windowscodecs
PE	        61900000-        6192b000	Deferred        sechost
PE	        62140000-        62170000	Deferred        uxtheme
PE	        62600000-        6263c000	Deferred        usp10
PE	        637c0000-        6387a000	Deferred        winmm
PE	        64340000-        64383000	Deferred        winhttp
PE	        64940000-        64959000	Deferred        shcore
PE	        64d40000-        64d4f000	Deferred        vulkan-1
PE	        64dc0000-        64dcc000	Deferred        amd_ags_x64
PE	        65000000-        65143000	Deferred        ole32
PE	        65780000-        6578e000	Deferred        version
PE	        66440000-        66461000	Deferred        msacm32
PE	        68a40000-        68a94000	Deferred        shlwapi
PE	        6a100000-        6a231000	Deferred        oleaut32
PE	        6a700000-        6a77f000	Deferred        setupapi
PE	        6b2c0000-        6b340000	Deferred        wininet
PE	        6b880000-        6b887000	Deferred        api-ms-win-core-fibers-l1-1-1

Once this is "fixed", the launcher displays the error "This game requires Windows 10"

unsupported_os

What I believe is happening is that the structure of the kernel32.dll file is inspected to determine its version number.

Unfortunately for us, the default version chosen in Wine is the Windows 7 version [source]

Note: Changing the version in winecfg has no effects

Wine sources (click to expand)

Wine sources


#define WINE_FILEVERSION_STR "6.1.7601.17514"
#define WINE_PRODUCTVERSION_STR "6.1.7601.17514"

The cleanest workaround would be to download the Proton sources, update the version and recompile, but it is quite a tedious task especially as we need only one file.

The quickest I have found is to achieve the same result by directly editing the kernel32.dll (ProtonGE) and kernel32.dll.so (Proton) files.(ps: Make sure PROTON_WINEROOT exists for your system)

Linux sed commands (click to expand)

Linux sed commands


export PROTON_WINEROOT="/home/${USER}/.local/share/Steam/steamapps/common/Proton 5.13/dist/lib64/wine/"
# For Proton GE
sed -i.bak 's/\x01\x00\x06\x00\x6a\x44\xb1\x1d/\x00\x00\x0a\x00\x6a\x44\xb1\x1d/g' "${PROTON_WINEROOT}/kernel32.dll" > /dev/null 2>&1
# For Proton
sed -i.bak 's/\x01\x00\x06\x00\x6a\x44\xb1\x1d/\x00\x00\x0a\x00\x6a\x44\xb1\x1d/g' "${PROTON_WINEROOT}/kernel32.dll.so" > /dev/null 2>&1

This will result in saving the original file under the .bak extension, and will produce a new file as if it had been compiled with the following values

Wine's new configuration (click to expand)

Linux sed commands


#define WINE_FILEVERSION_STR "10.0.7601.17514"
#define WINE_PRODUCTVERSION_STR "10.0.7601.17514"

The launcher is then launched correctly, everything seem to work, to the exception, the background is white and the launch window cannot be moved.

evilgenius2_launcher evilgenius2_settings

After testing a little bit further I'm assuming it is coming from a missing interface in Windows Imaging Component windowscodecs.dll, the game launcher is probably linked against a Windows 10 version, in other words, the windowscodecs.dll we have available with winetricks is too old to display the launcher as crystal clear as on Windows 10.

Wine log (click to expand)

Wine log


00d4:err:ole:CoGetClassObject class {e018945b-aa86-4008-9bd4-6777a1e40c11} not registered
00d4:err:ole:CoGetClassObject no class object {e018945b-aa86-4008-9bd4-6777a1e40c11} could be created for context 0x1

class101 avatar Mar 31 '21 10:03 class101

@class101 wow 😮

@GloriousEggroll do you think this kernel32.dll fix can be added to the next GE release or do you foresee side effects?

leinardi avatar Mar 31 '21 11:03 leinardi

Nothing works for me so more digging is needed.

steve7233 avatar Mar 31 '21 12:03 steve7233

@steve7233 if you do not attach the Proton log, I doubt anyone will be able to help you.

<!-- Please add `PROTON_LOG=1 %command%` to the game's launch options and drag
and drop the generated `$HOME/steam-$APPID.log` into this issue report -->

leinardi avatar Mar 31 '21 12:03 leinardi

@leinardi Thank you :)

@steve7233 I think if the simple renaming method does not work for you, it is not necessary to test what I posted because it will not do any magic and you will come across the same error after the launcher.

What I posted just allows to run the launcher as expected, so the futur Evil Genius 2 updates will not overwrite the changes, but the Proton updates will overwrite the change anyway, so it is far from perfect anyway.

You should post your log indeed as leinardi wrote so everyone can help you to run it

class101 avatar Mar 31 '21 12:03 class101

Bypassing the launcher... cd ../Steam/steamapps/common/Evil Genius 2/Launcher mv eg2.exe eg2.exe.sav ln -s ../bin/evilgenius_vulkan.exe I did actually get the game to produce a snippet of sound a few times before it barfed. Lately, I get an actual popup from what seems like the game saying that it failed to run.

It seems we're the only ones the workaround doesn't work for so far. I'm on i3/gentoo/nvidia proprietary drivers/my monitor is 4k.

Do any of these match up with you?

I'm on Ubuntu 21.04, Intel Xeon, nVidia/Intel (Dell Notebook)... anyone with nVidia getting this to work?

My error log:

steam-700600.log

sidrew avatar Mar 31 '21 13:03 sidrew

@sidrew 2080Ti here, it starts fine for me:

image

I can't do more tests right now but, if you don't even reach this screen, this should be a confirmation that not all the Nvidia users are affected. Btw, I tested with GE 6.5.

leinardi avatar Mar 31 '21 14:03 leinardi

@sidrew I'm running a 1660s with latest proprietary drivers and I've played it for 7 hours yesterday.

PatTheSilent avatar Mar 31 '21 14:03 PatTheSilent

@sidrew I'm running a 1660s with latest proprietary drivers and I've played it for 7 hours yesterday.

Meh... okay... I'm on a Quadro RTX 5000 in my lappy... it just doesn't want to play along. :)

sidrew avatar Mar 31 '21 15:03 sidrew

Proton-6.5-GE-1

Editing the kernel32.dll doesnt work for me :(

EDIT: With log http://ix.io/2URy

noahrama avatar Apr 02 '21 15:04 noahrama

Proton-6.5-GE-1

Editing the kernel32.dll doesnt work for me :(

@noahrama

<!-- Please add `PROTON_LOG=1 %command%` to the game's launch options and drag
and drop the generated `$HOME/steam-$APPID.log` into this issue report -->

class101 avatar Apr 02 '21 15:04 class101

Bypassing the launcher...

cd ../Steam/steamapps/common/Evil Genius 2/Launcher mv eg2.exe eg2.exe.sav ln -s ../bin/evilgenius_vulkan.exe

I did actually get the game to produce a snippet of sound a few times before it barfed. Lately, I get an actual popup from what seems like the game saying that it failed to run.

Worked with the exception that the link command needs to be named eg2.exe as well for it to work for me. ln -s ../bin/evilgenius_vulkan.exe eg2.exe

Natherul avatar Apr 03 '21 06:04 Natherul

Replying to https://github.com/ValveSoftware/Proton/issues/4708#issuecomment-812822791

Yeah... of course, looks like I truncated my paste. Woops.

sidrew avatar Apr 03 '21 13:04 sidrew

I redid the link command with ln -s ../bin/evilgenius_vulkan.exe eg2.exe This got the game working and when I excited it closed correctly just took a few seconds to get the green steam play button to light up. Going to conquer the world now! Haaaaaa *Evil laugh 😈

steve7233 avatar Apr 09 '21 23:04 steve7233

I forgot to add Proton 6.3-2

steve7233 avatar Apr 09 '21 23:04 steve7233

It seems we're the only ones the workaround doesn't work for so far. I'm on i3/gentoo/nvidia proprietary drivers/my monitor is 4k.

Do any of these match up with you?

@GBeauregard absolutely same config. 2070 Super with nvidia-drivers-465.19.01 and kernel 5.11.11.

Anrock avatar Apr 10 '21 00:04 Anrock

It seems we're the only ones the workaround doesn't work for so far. I'm on i3/gentoo/nvidia proprietary drivers/my monitor is 4k. Do any of these match up with you?

@GBeauregard absolutely same config. 2070 Super with nvidia-drivers-465.19.01 and kernel 5.11.11.

I did eventually get it working... for a while... on my Ubuntu 21.04 (beta) box... until a new mesa and/or nvidia driver package came out and blew it up. So... seems like on my nvidia quadro rtx 5000 notebook system... it's very touchy with drivers. Had similar issues with BG3 ... worked for a while... then nothing.

sidrew avatar Apr 10 '21 01:04 sidrew