Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mortal Kombat Complete Edition #385

Closed
palmerj opened this issue Apr 24, 2023 · 1 comment
Closed

Mortal Kombat Complete Edition #385

palmerj opened this issue Apr 24, 2023 · 1 comment
Labels
bug Something isn't working Invalid - template skipped

Comments

@palmerj
Copy link

palmerj commented Apr 24, 2023

Describe the bug

When running Mortal Kombat Complete Edition against the newer engine of WS11WineCX64Bit22.1.1-rc1 I get the following DirectX error on startup (splash screen starts).

0164:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\avrt.dll" at 63E00000: builtin
0164:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Audio",0E38FF18): stub
0164:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\avrt.dll" : builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\opengl32.dll" at 6A2D0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wined3d.dll" at 0E590000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3d9.dll" at 67C80000: builtin
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\d3d9.dll" : builtin
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\wined3d.dll" : builtin
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\opengl32.dll" : builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3dx9_43.dll" at 0E590000: native
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\d3dx9_43.dll" : native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3dx9_43.dll" at 0E590000: native
0024:err:module:import_dll Loading library opengl32.dll (which is needed by L"C:\\windows\\system32\\wined3d.dll") failed (error c0000005).
0024:err:module:import_dll Library wined3d.dll (which is needed by L"C:\\windows\\system32\\d3d9.dll") not found
INFO: agClient::curl_initialize Memory over-rides in cyassl setup.
INFO: agClient::curl_initialize Log interception in cyassl setup.
INFO: agClient::curl_initialize Memory over-rides in libcurl setup.
INFO: agClient::initializeHostBuffer host buffer of length: 29 initialized into buffer of size 100
INFO: agClient::initializeSDKVersionBuffer sdk version buffer of length: 26 initialized into buffer of size 100
INFO: agClient::init client initialized
c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 009E0000: builtin

When running on WS11WineCX64Bit21.2.0-1 is work (but the framerate does seem slow...). On my Intel mac it's running ok on WS11WineCX64Bit21.2.0 and at the correct framerate.

Running MacOS 13.3 Macbook pro 16 M2Max

@palmerj palmerj added the bug Something isn't working label Apr 24, 2023
@Gcenx Gcenx closed this as completed Apr 24, 2023
@palmerj
Copy link
Author

palmerj commented May 1, 2023

An update here thanks to @Gcenx help in #388, I've been able to get this working using dgVoodoo2 with a good framerate and using engine of WS11WineCX64Bit22.1.1-rc1. dgVoodoo2 is a drop in replacement for direct3d libraries translates DX1-9, and others to DX10/11, which will in turn will use DXVK/MortonVK within wineskin/crossover.

Using this translaton library can get MKKE working locked at 60fps, max settings on 4k. You can even get the game to run in windowed mode which is nice. I've only testing the game for about 10mins so far, but looks to be working well, and no visible graphical issues.

mkke

Full steps to install:

  1. Create wrapper with WS11WineCX64Bit22.1.1-rc1 engine
  2. Install game folder into wrapper
  3. Install dxvk-master via winetricks
  4. Download dgVoodoo 2.8.1
  5. Copy MS/x86/D3D9.dll, dgVoodooCpl.exe, and dgVoodoo.conf files and into DiscContentPC MKKE game folder.
  6. Open winecfg tool in wrapper and add the library *d3d9.dll & set to naive,builtin
  7. Config dgVoodoo via dgVoodooCpl.exe or manually editing the dgVoodoo.conf.

Here's my config (windowed mode @ 1920x1080):

dgvoodoo1

dgvoodoo2

dgVoodoo.conf

;==========================================================================
; === Text based config file for dgVoodoo2
; === Use this file if you are a game modder/hacker or an experted user and
;     want to modify some advanced properties not available via the CPL.
;==========================================================================

Version                              = 0x280

;--------------------------------------------------------------------------

[General]

;       OutputAPI: "d3d11warp", "d3d11_fl10_0", "d3d11_fl10_1", "d3d11_fl11_0",
;                  "d3d12_fl11_0", "d3d12_fl12_0", "bestavailable"
;        Adapters: "all", or the ordinal of the adapter (1, ...)
;FullScreenOutput: "default", or the ordinal of the output on the adapter (1, ...)
;     ScalingMode: "unspecified", "centered", "stretched", "centered_ar", "stretched_ar", "stretched_ar_crt",
;                  "stretched_4_3", "stretched_4_3_crt", "stretched_4_3_c64"
;
;InheritColorProfileInFullScreenMode:
;                  Enabled by default and can only be disabled only when a D3D11 output API
;                  is explicitly selected. Disabled case is intended for avoiding extra
;                  rendering resources on old hardware for better performance, if required.

OutputAPI                            = bestavailable
Adapters                             = all
FullScreenOutput                     = default
FullScreenMode                       = false
ScalingMode                          = centered
ProgressiveScanlineOrder             = false
EnumerateRefreshRates                = false

Brightness                           = 100
Color                                = 100
Contrast                             = 100
InheritColorProfileInFullScreenMode  = true

KeepWindowAspectRatio                = false
CaptureMouse                         = true
CenterAppWindow                      = true

;--------------------------------------------------------------------------

[GeneralExt]

;      DesktopResolution: Desktop (native) resolution can be forced for dgVoodoo's internal calculations.
;                         Useful for rare applications that pre-set the desktop to other than the native
;                         resolution before dgVoodoo gets in action. Only the compact format can be used here,
;                         and applies to all outputs of the desktop.
;        DesktopBitDepth: You can define what screen bit depth should be reported through dgVoodoo
;                         (8, 16, 32)
;           DeframerSize: When resolution is forced to other than the app default then
;                         a black frame is drawn around the output image coming from a wrapped API
;                         to remove scaling artifacts -
;                         frame thickness can be defined in pixels (max 16, 0 = disable)
;       ImageScaleFactor: Integer factor for scaling the output image coming from a wrapped API
;                         Always done by nearest point filtering, independent on scaling mode
;                         (0 = max available)
;                         Separate factors can be defined for horizontal and vertical scaling
;                         by subproperties, e.g.
;                         ImageScaleFactor = x:3, y:2
;      CursorScaleFactor: Integer factor for scaling the emulated hardware mouse (max 16)
;                         (0 = automatic, 1 = no scale, 2 = double scale, ...)
;             DisplayROI: Display region of interest
;                         If scaling is done by the dgVoodoo then you can define a subrect of the
;                         output image, coming from a wrapped API, to be displayed. The defined subrect
;                         is mapped to the display output according to the current scaling mode
;                         It can be useful for applications rendering a widescreen subimage into a 4:3
;                         resolution; in this case you can scale up that subimage to (nearly) fill the
;                         whole screen on a widescreen monitor.
;                         DisplayROI empty value means the whole image.
;                         DisplayROI value can be a proportion in form of %d_%d or a pixel size (%d|%d)
;                         Pos subproperty is not mandatory and can be 'centered' or a pixel position (%d|%d)
;                         Examples: DisplayROI = 16_9, pos:centered
;                                   DisplayROI = (320|200), pos:(10|10)
;             Resampling: When scaling is done by the dgVoodoo for the given scaling mode,
;                         you can choose which filter is to be used for resampling the output image
;                         Available filters are: "pointsampled", "bilinear", "bicubic", "lanczos-2", "lanczos-3"
;      PresentationModel: Low-level swapchain swap effect: if you know what you are doing then it can be
;                         overridden here. Flip models are better suited for modern OS features like auto HDR,
;                         while plain legacy models provide the best presentation performance under ideal conditions
;                         Not all model + output API + OS version combinations are supported.
;                         "auto", "discard", "seq", "flip_discard", "flip_seq"
;              FreeMouse: If true then physical mouse is free to move inside the game window
;                         when using emulated scaling and/or application and forced resolution
;                         differs; can be useful when a game relies on the physical window size
;     WindowedAttributes: You can define attributes for forced windowed appearance (separated by commas):
;                          "borderless"     - forces the app window not have any border
;                          "alwaysontop"    - forces the app window into the top-most band
;                          "fullscreensize" - forces the app window to be full screen size with image scaling inside
;   FullscreenAttributes: You can define attributes for fullscreen appearance (separated by commas):
;                          "fake"           - forces fake fullscreen mode with a screen-size window
;               FPSLimit: An integer or rational (fractional) value, 0 = unlimited
;            Environment: Software environment in which dgVoodoo is running: can be left unspecified (native)
;                         or can be set to 'DosBox' or 'QEmu'.
;        SystemHookFlags: You can define which part of the system should be hooked (x86-DX only):
;                          "gdi"            - for showing graphical contents rendered through GDI
;                                             (like movie playback through the ancient Windows Multimedia AVI player library)
;                          "cursor"         - for suppressing double-cursor symptoms when the cursor is emulated

DesktopResolution                    = 
DesktopBitDepth                      = 
DeframerSize                         = 1
ImageScaleFactor                     = 1
CursorScaleFactor                    = 0
DisplayROI                           = 
Resampling                           = bilinear
PresentationModel                    = auto
FreeMouse                            = false
WindowedAttributes                   = 
FullscreenAttributes                 = 
FPSLimit                             = 0
Environment                          = 
SystemHookFlags                      = 

;--------------------------------------------------------------------------

[Glide]

;  VideoCard:      "voodoo_graphics", "voodoo_rush", "voodoo_2", "voodoo_banshee", "other_greater"
; OnboardRAM:      in MBs
; MemorySizeOfTMU: in kBs
;    TMUFiltering: "appdriven", "pointsampled", "bilinear"
;
; Resolution: either "unforced", "max", "max_isf", "max_fhd", "max_fhd_isf", "max_qhd", "max_qhd_isf", "desktop", "%dx",
;                                "max_%dx", "max_isf_%dx", "max_fhd_%dx", "max_fhd_isf_%d"x, "max_qhd_%dx", "max_qhd_isf_%dx", "desktop_%dx"
;             or subproperties: h: horizontal, v: vertical
;             + optional subproperty refrate: refresh rate in Hz
;             e.g. Resolution = max, refrate:60
;                  Resolution = 2x, refrate:59
;                  Resolution = h:1280, v:1024, refrate:75
;                  Resolution = max_2x
;             or just use the compact form like "1024x768@60" or "512x384"
;
;Antialiasing: "off", "appdriven", "2x", "4x", "8x", "16x" (your GPU must support the chosen one)

VideoCard                           = voodoo_2
OnboardRAM                          = 8
MemorySizeOfTMU                     = 4096
NumberOfTMUs                        = 2
TMUFiltering                        = appdriven
DisableMipmapping                   = false
Resolution                          = unforced
Antialiasing                        = appdriven

EnableGlideGammaRamp                = true
ForceVerticalSync                   = true
ForceEmulatingTruePCIAccess         = false
16BitDepthBuffer                    = false
3DfxWatermark                       = true
3DfxSplashScreen                    = false
PointcastPalette                    = false
EnableInactiveAppState              = false


;--------------------------------------------------------------------------

[GlideExt]

;               DitheringEffect: "pure32bit", "dither2x2", "dither4x4"
;                     Dithering: "disabled", "appdriven", "forcealways"
;  DitherOrderedMatrixSizeScale: integer scale value for dither matrix size
;                                1 = normal, 2 = double size, etc.
;                                0 = automatic (the aim is to have some retro feel&look)

DitheringEffect                     = pure32bit
Dithering                           = forcealways
DitherOrderedMatrixSizeScale        = 0

;--------------------------------------------------------------------------

[DirectX]

;  VideoCard: "svga", "internal3D", "geforce_ti_4800", "ati_radeon_8500",
;             "matrox_parhelia-512", "geforce_fx_5700_ultra", "geforce_9800_gt"
;       VRAM: in MBs (default) or in GBs (e.g. VRAM = 2GB)
;  Filtering: "appdriven", "pointsampled", "bilinear", "linearmip", "trilinear"
;             or the integer value of an anisotropic filtering level (1-16)
;  KeepFilterIfPointSampled: if enabled then forced filtering affects only non-point sampled textures
;      Bilinear2DOperations: if enabled then DirectDraw Blit and CPU-written data is transferred with bilinear scaling

DisableAndPassThru                  = false

VideoCard                           = geforce_9800_gt
VRAM                                = 1024
Filtering                           = appdriven
KeepFilterIfPointSampled            = false
DisableMipmapping                   = false
Resolution                          = h:1920, v:1080
Antialiasing                        = appdriven

AppControlledScreenMode             = false
DisableAltEnterToToggleScreenMode   = false

Bilinear2DOperations                = false
PhongShadingWhenPossible            = false
ForceVerticalSync                   = false
dgVoodooWatermark                   = false
FastVideoMemoryAccess               = true

;--------------------------------------------------------------------------

[DirectXExt]

;                 AdapterIDType: "nvidia", "amd", "intel" or leave it undefined
;                                You can define what type of driver version and vendor id's the wrapper should report to
;                                the application; Some games rely on that information so it can be useful for them
;                                Can be defined only for SVGA and Internal3D card types; the others have their own wired
;                                information

; VendorID, DeviceID, SubsystemID, RevisionID:
;                                Can be defined only for SVGA and Internal3D card types
;                                You can overwrite these properties even if a non-default AdapterIDType is defined;
;                                say, you defined an nvidia id type but would like to refine the vendor id

;  DefaultEnumeratedResolutions: you can define what resolutions should be enumerated to the application by default
;                                "all", "classics", "none"

;    ExtraEnumeratedResolutions: you can add extra resolutions (separated by commas, max 16) that will get
;                                enumerated to the application as display adapter supported ones -
;                                can be useful if an app supports rendering at arbitrary resolutions
;                                and you have a particular favorite resolution that are not
;                                enumerated to the application by default
;                                you can either use the compact resolution format here, or
;                                "max", "max@refrate" meaning your desktop resolution with a potential refresh rate, or
;                                "max_4_3", "max_4_3@refrate", "max_16_9", "max_16_9@refrate"
;                                meaning the maximum resolution with the given aspect ratio calculated from
;                                the desktop resolution with the given refresh rate, e.g. "max_4_3@60", "max_16_9"

; EnumeratedResolutionBitdepths: you can filter what bitdepths are included in the resolution enumeration
;                                any subset of {"8", "16", "32"}, or "all"

;               DitheringEffect: "pure32bit", "ordered2x2", "ordered4x4"
;                     Dithering: "disabled", "appdriven", "forceon16bit", "forcealways"
;  DitherOrderedMatrixSizeScale: integer scale value for dither matrix size
;                                1 = normal, 2 = double size, etc.
;                                0 = automatic
;          DepthBuffersBitDepth: internal bit depth of depth/stencil buffers for 3D rendering (32 bit is not recommended)
;                                "appdriven", "forcemin24bit", "force32bit"
;         Default3DRenderFormat: default format of 3D rendering
;                                argb2101010 gives higher dynamic range but it can break the rendering
;                                "argb8888", "argb2101010"

;           MaxVSConstRegisters: Max number of vertex shader constant registers (DX8/9 only)
;                                Can be defined only for SVGA and Internal3D card types
;                                Valid values are 256 (default), 512 or 1024

;        NPatchTesselationLevel: Force N-Patch tesselation level (D3D8/9)
;                                0 = app driven
;                                1 = disable
;                                2 to 8 = a forced tesselation level
;                                Altough tesselation works with all vertex shader versions, you can force level higher than 1
;                                only for the fixed function or vs.1.x vertex pipeline because of performance and practical reasons
;                                (forced tesselation also disables adaptive mode (D3D9), but forcing is not recommended at all, anyway)

;       DisplayOutputEnableMask: Each bit in this 32 bit value corresponds to a display output. Display outputs of the adapters are numbered
;                                sequentially. If Adapter0 has n display outputs and Adapter1 has m display outputs attached then the lowest
;                                n bits match Adapter0 display outputs, the next m bits match Adapter1 outputs, and so on. The lowest bit
;                                in a group corresponds to Output0. If a bit value is 0 then the display output is disabled for the device
;                                enumeration, in other words, it is invisible to the application. It can be useful for D3D9 multihead-
;                                or very special applications where you want to enable only individual displays on your monitor wall.

;              MSD3DDeviceNames: if true then original Microsoft D3D device names are exposed
;                                (some applications check for them and they fail)

;   RTTexturesForceScaleAndMSAA: if true then forced resolution scaling and MSAA is
;                                applied also to rendertarget textures
;                                Set it to false for games requiring pixel-precise rendering
;                                but be careful it can EASILY break certain things, not recommended

;         SmoothedDepthSampling: if true then extra smoothing is added to depth textures
;                                when they are sampled

;      DeferredScreenModeSwitch: If true the switching to full screen is deferred after the application initialized
;                                the DirectX device; can be useful for games that don't expect rendering window changes
;                                during initialization and crash

;   PrimarySurfaceBatchedUpdate: If true then direct changes of the primary surface are batched together for presenting them
;                                If false then each change is instantly presented (debug-like mode)

AdapterIDType                       = 
VendorID                            = 
DeviceID                            = 
SubsystemID                         = 
RevisionID                          = 

DefaultEnumeratedResolutions        = all
ExtraEnumeratedResolutions          = 
EnumeratedResolutionBitdepths       = all

DitheringEffect                     = pure32bit
Dithering                           = forcealways
DitherOrderedMatrixSizeScale        = 0
DepthBuffersBitDepth                = appdriven
Default3DRenderFormat               = argb8888

MaxVSConstRegisters                 = 256

NPatchTesselationLevel              = 0

DisplayOutputEnableMask             = 0xffffffff

MSD3DDeviceNames                    = false
RTTexturesForceScaleAndMSAA         = true
SmoothedDepthSampling               = true
DeferredScreenModeSwitch            = false
PrimarySurfaceBatchedUpdate         = false

;--------------------------------------------------------------------------

[Debug]

; This section affects only debug/spec release builds
;
; Info, Warning, Error
;                "Disable"      - disables all messages and debugger break
;                "Enable"       - enables messages and disables debugger break
;                "EnableBreak"  - enables both messages and breaking into debugger
;
; MaxTraceLevel: Maximum level of tracing API calls
;                0 - Disable
;                1 - API Functions and methods
;                2 - Additional trace info for internals
;
; LogToFile: if false or debugger is detected then output goes to the debug output
;            if true and no debugger detected then output goes to 'dgVoodoo.log'
;            (not implemented yet, always the default debug output is used)

Info                                = enable
Warning                             = enable
Error                               = enable
MaxTraceLevel                       = 0

;LogToFile                           = false

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working Invalid - template skipped
Projects
None yet
Development

No branches or pull requests

2 participants