protonscr

The Misadventures of P.B. Winterbottom

protonopen appid 40930Game compatibility - UnofficialXAudio2
ValveSoftware/Proton#2058 · opened 2018-12-04 by flibitijibibo · updated 2019-02-16 · 3 comments · github · game page · search this game
1 matching comments, n / p to jump
Fflibitijibibo 2018-12-04 github

Compatibility Report

  • Name of the game with compatibility issues: The Misadventures of P.B. Winterbottom
  • Steam AppID of the game: 40930

System Information

  • GPU: GTX 770
  • Driver/LLVM version: 415.18
  • Kernel version: 4.19.4-200.fc28
  • Link to full system information report: Gist
  • Proton version: flibitProton, 3.16-4 Beta with the FAudio changes

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

Symptoms

Winterbottom has two paths, a D3D10 path and a D3D9 path. With the current Proton build, the game picks D3D10 but immediately hits a snag with Effects:

wine: Call from 0x7b43c6bd to unimplemented function d3dx10_43.dll.D3DX10CreateEffectFromResourceW, aborting

This is unimplemented in both Wine and DXVK. AFAIK D3D9 should work just fine, as the Effects for 9 are just SpriteBatch-like shaders and Wine's current implementation should be able to handle it. (And if not, this may be a good time to look at my implementation in MojoShader...)

Note that the game uses XACT for audio; this is known to work with FAudio but may not work with stock Wine.

Reproduction

  1. Boot game
  2. Wait
  3. Read logs
Fflibitijibibo 2018-12-19 github

After applying #2107, it does indeed look like Wine's d3dcompiler can't compile fx_2_0:

376373.176:0008:0009:fixme:d3dcompiler:compile_shader Compilation target "fx_2_0" not yet supported
376373.177:0008:0009:fixme:d3dx:d3dx9_effect_init Failed to parse effect, hr 0x8876086c.
376373.177:0008:0009:fixme:d3dcompiler:compile_shader Compilation target "fx_2_0" not yet supported
376373.177:0008:0009:fixme:d3dx:d3dx9_effect_init Failed to parse effect, hr 0x8876086c.

This can be fixed by using the redist, but yeah... I have my own parser but not my own compiler!

EDIT: This game boots after PROTON_NO_D3D10=1 and using protontricks to install d3dx9 and d3dx10 (and xact if you're not using upstream FAudio). This would probably get installed by the game's bundled DX redist but it appears to not work... this was before Steam automated that, I think.

Fflibitijibibo 2018-12-21 github

3.16-6 includes the latest FAudio, this at least takes care of audio when DXSetup fails but we still have to figure out why the installer fails. Once that's fixed and PROTON_NO_D3D10 is in, this game should be ready to go.

Fflibitijibibo 2019-02-16 github

PROTON_NO_D3D10 is in 3.16-7. DXSetup is the last thing on the TODO.

Launch options

DLLs

Error codes