Proton: Batman: Arkham Asylum Game of the Year Edition (35140)

Created on 24 Aug 2018  路  34Comments  路  Source: ValveSoftware/Proton

Arch Linux
Kernel 4.18.3
Proton 3.7
Nvidia GTX 1070 - nvidia-beta 396.54
KDE Plasma 5.13.4
KDE Framework 5.49.0
Qt 5.11.1

The game doesn't even launch. The preparing to launch... dialogue pops up for some seconds then exits without starting the game at all.

.NET .NET-winforms Game compatibility - Unofficial

Most helpful comment

How to make it work:

  1. Install protontricks (Arch Linux users can do so via AUR), then run:
    protontricks 35140 mdx d3dx9 d3dcompiler_43 win10

  2. Next, fix the game launch command:
    Steam -> Library -> Right Click on Game -> Properties -> SET LAUNCH OPTIONS -> PROTON_NO_ESYNC=1 PROTON_USE_D9VK=1 %command% -> OK

The game does not close at exit and needs to get manually killed. I suggest to transform the launcher executables into symlinks to ShippingPC-BmGame.exe.

Even though it runs, Alt+Tab combination does not work as expected. Moreover, if the sole controller is used, the mouse pointer remains visible on screen (can be moved away though, but it's uncomfortable to get off the couch to move the mouse).

All 34 comments

Seeing the same result on Xubuntu 18.04. Interestingly, Arkham Origins seems to work fine.

Same on Ubuntu 18.04.1 LTS x86_64 / 4.15.0-33-lowlatency / Ryzen 5 1600X / NVIDIA GeForce GTX 1070 / NVIDIA 396.54

Steps to reproduce:

  • Install game (35140)
  • Exit Steam.
  • Open terminal and run: steam steam://rungameid/35140
  • Exit Steam (after waiting for 10+ minutes).

Full output: 35140.txt

Arkham Origins runs well, better than with PlayOnLinux & wine 3.12-staging.

Tried again after adding PROTON_NO_ESYNC=1 PROTON_LOG=1 %command% to launch options.
steam-35140.log

steam-35140.log

Another log if it'll help

Distro: Ubuntu 18.04.1
GPU: Intel Iris Pro 580
Resolution: 1280x720
RAM: 32GB
Controller: DS4
Proton 3.7-5 Beta

https://gist.github.com/daasuharo/cb605b8cd50227982a9bfa4dfcb1f635

@miguev @daasuharo looks like the architecture doesn't match or gameoverlayrenderer is just missing?!

ERROR: ld.so: object '$HOME/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

Compatibility Report: Batman: Arkham Asylum Game of the Year Edition (appID: 35140)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/1311.
@furai posted on 2018-09-08T09:35:23:

Compatibility Report

  • Name of the game with compatibility issues: Batman: Arkham Asylum Game of the Year Edition
  • Steam AppID of the game: 35140

System Information

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

Symptoms

Game won't even start.

Reproduction

Install the game on Ubuntu 18.04 via Steam and try to launch it.


@whizse commented on 2018-09-08T10:00:59

Tracked in #421


@furai commented on 2018-09-08T10:06:32

Uhm, what? This is weird, I've searched for issues before posting this, made sure it's not there. I have no idea how I missed that report. Should I post there instead?

Hm, maybe there is a specific way Steam or Proton runs executables?

err:module:LdrInitializeThunk Main exe initialization for L"Z:\\.....\\BmLauncher.exe" failed, status c0000017

Meanwhile the game can be launched directly, using Proton and it's prefix.

Using q4wine I set up :

  • Proton as custom wine version
  • new prefix pointing to Proton's prefix
  • using builtin tools installed mono, mdx, physx, d3dcompiler_43 (according to AppDB)
  • "icon" for BmLauncher.exe

Launcher started, the game runs fine with all setting to HIGH (except MSAA:2x).

Here is a "beautified" (as an script) console command used by q4wine:

#!/bin/sh

steam_library="/media/Games/SteamLibrary-Wine/SteamApps"

 WINEPREFIX="${steam_library}/compatdata/35140/pfx"

       WINE="${steam_library}/common/Proton 3.7 Beta/dist/bin/wine"
 WINESERVER="${steam_library}/common/Proton 3.7 Beta/dist/bin/wineserver"
 WINELOADER="${steam_library}/common/Proton 3.7 Beta/dist/bin/wine"
WINEDLLPATH="${steam_library}/common/Proton 3.7 Beta/dist/lib64/wine"


cd "${steam_library}/common/Batman Arkham Asylum GOTY/Binaries/" || exit


${HOME}/.steam/steam/ubuntu12_32/steam-runtime/run.sh "${WINE}" BmLauncher.exe  2>&1

NOTE:

  • steam-runtime/run.sh - to suppress missing libraries warnings, also I have working controller with it
  • you may need nvapi for GPU PhysX support
  • you need Steam launched

@pchome

Hm, maybe there is a specific way Steam or Proton runs executables?

https://github.com/ValveSoftware/Proton/blob/proton_3.7/proton.in#L91

...
wine_path = bindir + "/wine64"
...

Changing this to wine_path = bindir + "/wine" allows run game from Steam by pressing Play button.

Just noticed there is PR #1087 supposed to fix this issue.

trying to play in playonlinux I figure it out thats after install physx and dotnet 3.5 the game runs great, but in x32 prefix with steam, but we can't install dotnet 3.5 in proton cause the prefix is x64, anybody know how is it possible to install dotnet in x64 prefix?

I was able to get this running by first getting Arkham City GOTY working based on the discussion in #309 (setting the windows version to XP and then letting the first-run install .NET), and then copying the wine prefix from City to Asylum's location.

I was able to get this running by first getting Arkham City GOTY working based on the discussion in #309 (setting the windows version to XP and then letting the first-run install .NET), and then copying the wine prefix from City to Asylum's location.

I can confirm copying the pfx folder from Arkham City to Arkham Asylum works perfectly, it even picks up my save from the last time I played it in Windows 3 years ago. :+1:

Tried the same workaround without having Arkham City GOTY in my library, but didn't work.

System.NotImplementedException: The method or operation is not implemented.
at System.Management.ManagementObjectSearcher.Get () [0x00000] in <...>:0
at (wrapper remoting-invoke-with-check) System.Management.ManagementObjectSearcher.Get ()
at BmLauncher.SystemInfo.GetInfo (System.String query Object, System.Int32 &count) [0x0001c] in <...>:0

EDIT: I posted too soon. After clicking the "OK" button in the window with the above error message, and the same again once or twice more, I got the game's start menu. Then when I click on PLAY the game crashes for good, with an entirely different error pop-up:

steam-35140.log
baa-failed-to-compile-global-shader

Do you mean you don't have Arkham City at all? It's possible Arkham City is the only game you can use to make it work.

The workaround did work when copying the pfx files from Arkham City GOTY.
Just purchased that other game, applied the workaround in #309 and then copied the pfx directory.
Now I can play both games, for well over 30 min without much of a glitch.
The first warning pop-up (attached now) did still show up and I had to click OK 3 times before getting to the game's main menu, but after it's being a very smooth ride.

baa-popup

@lucifertdark indeed I did not have Arkham City. Some time ago I got these 2 and Origin and they all run with PlayOnLinux but City would freeze and crash every single time at the very first autosave, before you get to do anything at all, so back then I refunded it and kept only Asylum and Origins. Now, with the prospect of getting Asylum to work and several reports confirming the workaround for City was good, I tried it again and this time it worked. All of this on Debian buster with NVidia 390.87 so not even the latest drivers!

@miguev Glad you got it working. :+1:

Tried the same workaround without having Arkham City GOTY in my library, but didn't work.

System.NotImplementedException: The method or operation is not implemented.
at System.Management.ManagementObjectSearcher.Get () [0x00000] in <...>:0
at (wrapper remoting-invoke-with-check) System.Management.ManagementObjectSearcher.Get ()
at BmLauncher.SystemInfo.GetInfo (System.String query Object, System.Int32 &count) [0x0001c] in <...>:0

EDIT: I posted too soon. After clicking the "OK" button in the window with the above error message, and the same again once or twice more, I got the game's start menu. Then when I click on PLAY the game crashes for good, with an entirely different error pop-up:

steam-35140.log
baa-failed-to-compile-global-shader

Flollow @philipl tip above, works fine here, and to run City game you need to do this https://github.com/ValveSoftware/Proton/issues/309

How can I make it work without having batman arkham city?

Or else, can someone share the "pfx" folder of arkham city to test the solution?

I was able to get it to work and run by doing the following:

  • Set the prefix to winxp
  • Install d3dx9_43 and d3dcompiler_43 using winetricks
  • Download the latest version of wine-mono from http://dl.winehq.org/wine/wine-mono/
  • Install the wine-mono msi using the wine uninstaller (can be run using winetricks). It may not show anything changing, but I was able to reload the uninstaller and it showed.
  • Run the game. It'll show three error popups, but after that the launcher will appear and the game can be played.

It seems like wine does not exit cleanly after closing the launcher or the game. I had to manually kill wineserver, and the proton execution script

It works with protontricks to download dotnet framework. The steps are described on site pr贸tondb. (I've played using steam on fedora)

Grabbed the Arkham Collection recently.
Working after some tweaks with protontricks; I used the following command from the latest report:

protontricks 35140 dotnet20 d3dx9 d3dcompiler_43

DX9 performance isn't equal to Windows nor is as good as newer titles which can use DXVK (i.e. Metal Gear Solid V, Max Payne 3, Dark Souls 3, etc)
Wide open areas particularly struggle.
Those of you with modern CPU's probably won't even notice - my machine is a bit of a dinosaur now.
XBOX360 controller works.
Took a few screenshots.
No major gameplay/graphical issues - very playable overall. Managed to 100% the game with most steam achievements so it can't be that bad =)

Proton 4.2-3 improved the situation a bit:
On launch there are three "System.NotImplementedExeception" popups, then the launcher is shown. Clicking play gives me a "Failed to compile global shader FGFxPixelShader " message, then the game crashes.

I'm using a GTX970 card with nvidia blob
steam-35140.log

That's likely about missing Mono functionality [1]:

[00000028:] EXCEPTION handling: System.NotImplementedException: The method or operation is not implemented.

"<unnamed thread>" tid=00000028 this=02550120 , thread handle : 00D44520, state : not waiting
  at System.Management.ManagementObjectSearcher.Get () [0x00000] in <ac811348b1c347198048a5db4fe5e69a>:0
  at (wrapper remoting-invoke-with-check) System.Management.ManagementObjectSearcher.Get () [0x00031] in <ac811348b1c347198048a5db4fe5e69a>:0
  at BmLauncher.Program.GetProcessOwner (int) [0x00018] in <96984e55025348f1980e12aaf1d28209>:0
  at BmLauncher.Program.GetPrevInstance () [0x0000c] in <96984e55025348f1980e12aaf1d28209>:0
  at BmLauncher.Program.Main () [0x00032] in <96984e55025348f1980e12aaf1d28209>:0
  at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) [0x00027] in <72b294be54bc4854bce603b664bafd63>:0

[1] https://github.com/mono/mono/blob/master/mcs/class/System.Management/System.Management/ManagementObjectSearcher.cs

Batman: Arham Asylum no sound on 4.11-1

Issue transferred from https://github.com/ValveSoftware/Proton/issues/2942.
@jefferyrlc posted on 2019-08-02T18:39:44:

Compatibility Report

  • Name of the game with compatibility issues:
  • Steam AppID of the game: 35140

System Information

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

Symptoms

There is no audio output, audio worked in 4.2 but upon cleaning the pfx and setting the game up to use 4.11-1 there is no audio output

Reproduction

install the game, winetricks, and protontricks
run protontricks 35140 mdx d3dx9 d3dcompiler_43 win10
change the launch options to
PROTON_USE_D9VK=1 %command%
run the game
have no sound


@LeJimster commented on 2019-08-03T23:16:40:

Just tried deleting my working prefix, letting steam create a fresh 4.11-1 prefix and running the same commands.. Everything works fine for me, including sound...

My system


@aeikum commented on 2019-08-05T14:56:39:

Can you check your volume mixer (e.g. pavucontrol) to verify that the game's audio output isn't muted or directed to some other audio device?

I have sound with latest Proton. I had to apply the same reproduction instructions and protontricks as above for the game to run.

Compatibility Report

System Information

LOG:
steam-35140.log

Symptoms

Crash on launch
21BFDB5E-AD5C-42A8-BDC3-27D516450CE9

These look like some lines of interest from the log:

[ERROR] FATAL UNHANDLED EXCEPTION: System.InvalidOperationException: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
  at System.Windows.Forms.Control.MarshaledInvoke (System.Windows.Forms.Control caller, System.Delegate method, System.Object[] args, System.Boolean synchronous) [0x00011] in <afc71676634a41889c6929c14e8a57bd>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control,System.Delegate,object[],bool)
  at System.Windows.Forms.Control.BeginInvoke (System.Delegate method, System.Object[] args) [0x0000f] in <afc71676634a41889c6929c14e8a57bd>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.BeginInvoke(System.Delegate,object[])
  at System.Windows.Forms.WindowsFormsSynchronizationContext.Post (System.Threading.SendOrPostCallback d, System.Object state) [0x0000f] in <afc71676634a41889c6929c14e8a57bd>:0 
  at System.__ComObject.Finalize () [0x0001a] in <a1336bab325642fd867e87ca7626bada>:0 

Same error with proton 5.0-2.

steam-35140.log

How to make it work:

  1. Install protontricks (Arch Linux users can do so via AUR), then run:
    protontricks 35140 mdx d3dx9 d3dcompiler_43 win10

  2. Next, fix the game launch command:
    Steam -> Library -> Right Click on Game -> Properties -> SET LAUNCH OPTIONS -> PROTON_NO_ESYNC=1 PROTON_USE_D9VK=1 %command% -> OK

The game does not close at exit and needs to get manually killed. I suggest to transform the launcher executables into symlinks to ShippingPC-BmGame.exe.

Even though it runs, Alt+Tab combination does not work as expected. Moreover, if the sole controller is used, the mouse pointer remains visible on screen (can be moved away though, but it's uncomfortable to get off the couch to move the mouse).

I run it with just protontricks 35140 mdx d3dx9 d3dcompiler_43 win10 and it works (no need for PROTON_NO_ESYNC=1 PROTON_USE_D9VK=1).

I'm on 7700K/GTX 1080 TI.

The only additional thing I'd recommend is to reduce PhysX level to normal in the launcher, I've tried to run the game with it on high but the framerate is reduced a lot when approaching dusty areas, and I have no idea whether PhysX is actually being used from hardware or not, even though I've installed it with protontricks too (protontricks 35140 mdx d3dx9 d3dcompiler_43 physx win10 is my actual command).

Even though the launcher gives a warning when enabling PhysX, the game is playable for me on normal level, all the rest is on high settings (you may also completely disable it, I had to do it when fighting Bane).

I also confirm that this launcher stays lurking in memory after exiting the game.

Asylum works for me too with the profile from City with the same launcher issue. Nothing else needed.
I think "PROTON_NO_ESYNC=1" improves performance.

Proton 5.0-8
AMD KABINI (DRM 3.36.0, 5.6.10-gentoo-b1, AMDGPU, LLVM 9.0.1)
Driver Version: 4.6 (Compatibility Profile) Mesa 20.0.4

Batman Arkham Asylum Proton 3.7 is missing dot.net 2.0 and physx install

Issue transferred from https://github.com/ValveSoftware/Proton/issues/4098.
@fcmircea posted on 2020-07-27T22:45:37:

Game installs fine and everything but then fails on launch with the follow error:

Failed to compile global shader

Issue seems to have been indentfied by lutris users here:

https://forums.lutris.net/t/batman-arkhan-asylum-goty-crash-solved/1268

The same update should be made to the steam / proton environment for the game to function properly.

There is a regression with Proton 5.13-1 on this game.

When launching the game, it actually runs a game launcher from which you click on play to launch the game. Now, the game requires some winetricks, but the launcher works fine out of the box with Proton 5.0-9.

Here is the Proton Log:

steam-35140.log

I'm guessing the problem is here:

[ERROR] FATAL UNHANDLED EXCEPTION: System.ComponentModel.Win32Exception (0x80004005): Error creating window handle.

Hello @alosarjos, it looks like you're seeing #4266.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

lucifertdark picture lucifertdark  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments

juppso picture juppso  路  3Comments

lumni1968 picture lumni1968  路  3Comments

leifmetcalf picture leifmetcalf  路  3Comments