protonscr

Ghost Master

protonopen appid 6200Game compatibility - UnofficialRegression
ValveSoftware/Proton#1583 · opened 2018-09-24 by KorinFlakes · updated 2024-06-14 · 6 comments · github · game page · search this game
KKorinFlakes 2018-09-24 github

Compatibility Report

  • Name of the game with compatibility issues: Ghost Master
  • Steam AppID of the game: 6200

System Information

  • GPU: GTX 1060 (6gb)
  • Driver/LLVM version: Nvidia 396.54
  • Kernel version: Kernel version: 4.15.0-34
  • My System Info
  • Proton version: 3.7-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-6200.log

Symptoms

Ghost Master can be run fine with some caveats. When trying to play the game it launched fine, played the intro videos and crashed to desktop.To fix this I was required to emulate a virtual desktop (I settled on 1280 x 1024) in winecfg. When you start a new game, the cutscene videos will play a single frame every 5 or so seconds. The audio will run perfectly in the background though and the game will continue fine after them. There aren't too many of them and they are skippable with Mouse 1 as well, so they aren't too big an issue.

The above issues are also mentioned in the games AppDB on WineHQ.

ZZlopez 2019-03-29 github

Tested with Proton 4.2-1. In previous versions the game crashed when the menu should be shown. Now it could be started, but the resolution is messed up. See screenshot bellow:
Screenshot from 2019-03-29 19-31-26

Proton log: steam-6200.log

I trimmed the log a little, there was about 1 000 000 lines with this:

1976.734:0027:0028:trace:module:LdrGetDllHandle L"C:\\windows\\system32\\dinput8.dll" -> 0x7da00000 (load path L"Z:\\var\\home\\zlopez\\.local\\share\\Steam\\steamapps\\common\\Ghost Master;C:\\Program Files (x86)\\Steam;C:\\windows\\system32;C:\\windows\\system;C:\\windows;.;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem")
1976.734:0027:0028:trace:module:LdrAddRefDll (L"dinput8.dll") ldr.LoadCount: 2
1976.734:0027:0028:trace:module:LdrUnloadDll (0x7da00000)
1976.734:0027:0028:trace:module:LdrUnloadDll (L"dinput8.dll") - START
1976.734:0027:0028:trace:module:MODULE_DecRefCount (L"dinput8.dll") ldr.LoadCount: 1
1976.734:0027:0028:trace:module:LdrUnloadDll END

System spec

?ghost 2019-04-14 github

Tested with Proton 4.2-2.

I get the same cutscene choppiness as @KorinFlakes.

Without additional configuration, I get the same problem as @Zlopez. Ghost Master really seems to dislike resizing its window. Configure the Wine prefix to have a 1024 x 768 virtual desktop (or at least something that matches Ghost Master's graphics settings).

Ghost Master also really hates it when the virtual desktop loses focus. It will stop registering clicks and may even limit the cursor to some rectangle. It will work again after restarting.

IInfernio 2023-10-29 github

This game worked with Proton 6.3-8 (though one needs to use gamescope or a virtual desktop to limit resolution to 1024x768, as already mentioned, and the broken intro cutscenes exist in that version as well), but it crashes on launch with 7.0-6 and either hangs on a black screen or crashes with 8.0-4 and Experimental.

Logs from all four versions: steam-6200-logs.zip

Kkisak-valve maintainer 2023-10-29 github

Hello @Infernio, please copy your system information from Steam (Steam -> Help -> System Information) and the contents of Steam Runtime Diagnostics from Steam (Steam -> Help -> Steam Runtime Diagnostics) and put them in a gist, then include a link to the gist in this issue report.

RRodoMa92 2024-06-14 github

I still need to test gameplay for now, but on GE-Proton9-7 cutscenes seems to be playing fine with no audio. From the logs it was something that was possibly related to either mfplat or quartz. Overriding mfplat with the windows version did not change anything. Doing the same with quarts cause a segfault until the builtin version is not forced again as soon as a video play. Installing LAV Filters (an open source codec reimplementation for Windows using ffmpeg) still did not make any difference in the audio issues. The log posted now is stock wine + LAVFilters installed (and quartz forced to builtin again to avoid crashes):

33068.681:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\LAVVideo.ax" : native
33068.681:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\avfilter-lav-10.dll" : native
33068.681:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\swscale-lav-8.dll" : native
33068.681:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\d3d9.dll" : native
33068.683:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\LAVAudio.ax" : native
33068.684:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\avformat-lav-61.dll" : native
33068.684:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\ncrypt.dll" : builtin
33068.684:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\CRYPT32.dll" : builtin
33068.684:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\avcodec-lav-61.dll" : native
33068.685:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\swresample-lav-5.dll" : native
33068.686:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\Program Files (x86)\\LAV Filters\\x86\\avutil-lav-59.dll" : native
33068.687:0124:014c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\bcrypt.dll" : builtin
33068.847:0124:0128:fixme:x11drv:window_update_fshack Enabling fshack for hwnd 0x2007e, mapping virt window (0,0)-(1024,768), client (0,0)-(1024,768) to host window (0,0)-(2560,1440), client (0,0)-(2560,1440).
33068.849:0124:0128:fixme:x11drv:window_update_fshack Enabling fshack for hwnd 0x500fe, mapping virt window (0,0)-(1024,768), client (0,0)-(1024,768) to host window (0,0)-(2560,1440), client (320,0)-(2240,1440).
0:00:03.146588118 198042 0xddf01200 ERROR   protonmediaconverter audioconv.c:299:dump_fozdb_discard_transcoded: Failed to create read fozdb, ret -4.
0:00:03.146693427 198042 0xddf01200 ERROR   protonmediaconverter audioconv.c:689:audio_conv_state_create: Failed to create fozdb from /var/home/marco/.local/share/Steam/steamapps/shadercache/6200/transcoded_audio.foz, ret -4.
0:00:03.146718867 198042 0xddf01200 ERROR   protonmediaconverter audioconv.c:876:audio_conv_change_state: Failed to create audio conv state, ret -4.
0:00:03.181827285 198042 0xddf01200 ERROR   protonmediaconverter audioconv.c:1004:audio_conv_chain: Failed to push buffer <0xddf142a0> to src pad <audioconv0:src>
0:00:03.182441562 198042 0xddf018c0 ERROR          basetransform gstbasetransform.c:482:gst_base_transform_transform_caps:<gldownloadelement0> transform_caps returned caps video/x-raw(memory:GLMemory), format=(string)BGR, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string){ 2D, rectangle, external-oes }, interlace-mode=(string)progressive; video/x-raw(memory:GLMemory), format=(string)BGR, width=(int)320, height=(int)240, framerate=(fraction)10000000/333333, pixel-aspect-ratio=(fraction){ 1/1, [ 1/2147483647, 2147483647/1 ] }, texture-target=(string){ 2D, rectangle, external-oes }, interlace-mode=(string)progressive which are not a real subset of the filter caps video/x-raw(memory:GLMemory), format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GRAY8, GRAY16_LE, GRAY16_BE, AYUV, VUYA, YUY2, UYVY, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, A420, AV12, ARGB64, RGB16, BGR16, BGR10A2_LE, RGB10A2_LE, Y410, P010_10LE, P012_LE, P016_LE, Y210, Y212_LE, Y412_LE, NV12_16L32S, NV12_4L4 }, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string){ 2D, rectangle, external-oes }; video/x-raw(memory:GLMemory), format=(string){ RGBA, RGB, RGBx, BGR, BGRx, BGRA, xRGB, xBGR, ARGB, ABGR, GRAY8, GRAY16_LE, GRAY16_BE, AYUV, VUYA, YUY2, UYVY, GBRA, GBR, RGBP, BGRP, Y444, I420, YV12, Y42B, Y41B, NV12, NV21, NV16, NV61, A420, AV12, ARGB64, RGB16, BGR16, BGR10A2_LE, RGB10A2_LE, Y410, P010_10LE, P012_LE, P016_LE, Y210, Y212_LE, Y412_LE, NV12_16L32S, NV12_4L4 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)10000000/333333, pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ], texture-target=(string){ 2D, rectangle, external-oes }

(wine:198042): GStreamer-Base-WARNING **: 15:39:04.714: gldownloadelement0: transform_caps returned caps which are not a real subset of the filter caps
0:00:03.182824430 198042 0xddf018c0 ERROR          basetransform gstbasetransform.c:482:gst_base_transform_transform_caps:<glcolorconvertelement1> transform_caps returned caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive; video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)10000000/333333, texture-target=(string)2D, pixel-aspect-ratio=(fraction){ 1/1, [ 1/2147483647, 2147483647/1 ] }, interlace-mode=(string)progressive which are not a real subset of the filter caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string)2D; video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)10000000/333333, texture-target=(string)2D, pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ]

(wine:198042): GStreamer-Base-WARNING **: 15:39:04.715: glcolorconvertelement1: transform_caps returned caps which are not a real subset of the filter caps
0:00:03.183060709 198042 0xddf018c0 ERROR          basetransform gstbasetransform.c:482:gst_base_transform_transform_caps:<gldeinterlace0> transform_caps returned caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive; video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, framerate=(fraction)10000000/333333, texture-target=(string)2D, pixel-aspect-ratio=(fraction){ 1/1, [ 1/2147483647, 2147483647/1 ] }, interlace-mode=(string)progressive which are not a real subset of the filter caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive; video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)10000000/333333, texture-target=(string)2D, pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ], interlace-mode=(string)progressive

(wine:198042): GStreamer-Base-WARNING **: 15:39:04.715: gldeinterlace0: transform_caps returned caps which are not a real subset of the filter caps
0:00:03.183287038 198042 0xddf018c0 ERROR          basetransform gstbasetransform.c:482:gst_base_transform_transform_caps:<capsfilter1> transform_caps returned caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive; video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)320, height=(int)240, pixel-aspect-ratio=(fraction){ 1/1, [ 1/2147483647, 2147483647/1 ] }, framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive which are not a real subset of the filter caps video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], pixel-aspect-ratio=(fraction)[ 1/2147483647, 2147483647/1 ], framerate=(fraction)10000000/333333, texture-target=(string)2D, interlace-mode=(string)progressive

(wine:198042): GStreamer-Base-WARNING **: 15:39:04.715: capsfilter1: transform_caps returned caps which are not a real subset of the filter caps
0:00:03.184766131 198042 0x7e1f68a0 ERROR   protonmediaconverter fossilize.c:540:fozdb_read_entry_data: Wrong check sum.
0:00:03.184826421 198042 0x7e1f68a0 ERROR   protonmediaconverter fossilize.c:540:fozdb_read_entry_data: Wrong check sum.
0:00:03.184841851 198042 0x7e1f68a0 ERROR   protonmediaconverter fossilize.c:540:fozdb_read_entry_data: Wrong check sum.
0:00:03.184855931 198042 0x7e1f68a0 ERROR   protonmediaconverter fossilize.c:540:fozdb_read_entry_data: Wrong check sum.
0:00:03.184869101 198042 0x7e1f68a0 ERROR   protonmediaconverter fossilize.c:540:fozdb_read_entry_data: Wrong check sum.
33071.555:0124:0128:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\propsys.dll" at 79C30000: builtin
33071.557:0124:0128:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rtworkq.dll" at 79C10000: builtin
33071.557:0124:0128:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\mfplat.dll" at 79C60000: builtin
33071.557:0124:0128:fixme:quartz:amt_to_wg_format_video Unknown subtype {56555949-0000-0010-8000-00aa00389b71}.
33071.557:0124:0128:fixme:quartz:amt_to_wg_format_video Unknown subtype {3131564e-0000-0010-8000-00aa00389b71}.
33071.557:0124:0128:fixme:quartz:SampleGrabber_IMemInputPin_GetAllocatorRequirements (02317340)->(00E0E598): semi-stub
0:00:03.195207543 198042 0x7e06ccf0 ERROR          glbasetexture gstglmemory.c:452:gst_gl_memory_read_pixels: cannot read pixels with unsupported format and type.  Supported format 0x1908 type 0x1401
0:00:03.195400962 198042 0x7e06ccf0 ERROR          glbasetexture gstglmemory.c:452:gst_gl_memory_read_pixels: cannot read pixels with unsupported format and type.  Supported format 0x1908 type 0x1401
0:00:03.195438612 198042 0x7e06ccf0 ERROR          glbasetexture gstglmemory.c:452:gst_gl_memory_read_pixels: cannot read pixels with unsupported format and type.  Supported format 0x1908 type 0x1401
0:00:03.195844950 198042 0x7e06ccf0 ERROR          glbasetexture gstglmemory.c:452:gst_gl_memory_read_pixels: cannot read pixels with unsupported format and type.  Supported format 0x1908 type 0x1401
0:00:03.195891760 198042 0x7e06ccf0 ERROR          glbasetexture gstglmemory.c:452:gst_gl_memory_read_pixels: cannot read pixels with unsupported format and type.  Supported format 0x1908 type 0x1401
0:00:03.195968560 198042 0xddf018c0 ERROR                   WINE wg_parser.c:817:sink_chain_cb: Failed to map buffer.
winegstreamer error: asfdemux0: Internal data stream error.
winegstreamer error: asfdemux0: ../src-gst_ugly/gst/asfdemux/gstasfdemux.c(2214): gst_asf_demux_loop (): /GstBin:bin0/GstDecodeBin:decodebin0/GstASFDemux:asfdemux0:
streaming stopped, reason error (-5)
33071.558:0124:0128:fixme:quartz:amt_to_wg_format_video Unknown subtype {56555949-0000-0010-8000-00aa00389b71}.
33071.558:0124:0128:fixme:quartz:amt_to_wg_format_video Unknown subtype {3131564e-0000-0010-8000-00aa00389b71}.
0:00:03.201396095 198042 0xddf01200 ERROR   protonmediaconverter audioconv.c:1004:audio_conv_chain: Failed to push buffer <0xddf14000> to src pad <audioconv0:src>
33071.566:0124:0128:fixme:wmvcore:WMReaderAdvanced2_SetOutputSetting reader 02257FF0, output_num 0, name L"DedicatedDeliveryThread", type 3, value 00E0EC90, length 4 semi-stub!
33071.583:0124:0128:fixme:wmvcore:WMReaderAdvanced2_SetOutputSetting reader 02257FF0, output_num 1, name L"DedicatedDeliveryThread", type 3, value 00E0EC90, length 4 semi-stub!
33071.606:0124:017c:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33071.606:0124:017c:err:quartz:async_run_cb Filter 0231E5E8 reported incorrect state 2.
33074.644:0030:0184:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33085.521:0124:0178:err:quartz:process_output Failed to get sample, hr 0x80040211.
33085.521:0124:0178:err:quartz:process_output Failed to get sample, hr 0x80040211.
33085.523:0124:0128:fixme:quartz:media_seeking_SetPositions iface 0231ECC0, current 0.0, current_flags 0x9, stop 0.0, stop_flags 0 stub!
33085.523:0124:0128:fixme:quartz:media_seeking_ChangeCurrent iface 0231ECC0 stub!
33085.523:0124:0128:fixme:quartz:media_seeking_SetPositions iface 0231E9F0, current 0.0, current_flags 0x9, stop 0.0, stop_flags 0 stub!
33085.523:0124:0128:fixme:quartz:media_seeking_ChangeCurrent iface 0231E9F0 stub!
33087.604:0124:0128:fixme:x11drv:window_update_fshack Disabling fshack for hwnd 0x2007e, mapping virt window (0,0)-(1024,768), client (0,0)-(1024,768) to host window (0,0)-(1024,768), client (0,0)-(1024,768).
33087.625:00e0:0188:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33087.728:0030:018c:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33087.729:0030:0190:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33087.730:0030:0194:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33087.732:0030:0198:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
33087.732:0030:019c:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
pid 197943 != 197942, skipping destruction (fork without exec?)

The video file being played is identified from VLC as a .wmv container with a video codec called Windows Media Video 7 (WMV1) and the audio codec is Windows Media Audio 2 (WMA2).

Full proton log attached to this post.

steam-6200.zip

Proton versions

DLLs

Error codes