Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Performance of Ultra Street Fighter IV #388

Closed
palmerj opened this issue Apr 26, 2023 · 14 comments
Closed

Performance of Ultra Street Fighter IV #388

palmerj opened this issue Apr 26, 2023 · 14 comments
Labels
bug Something isn't working

Comments

@palmerj
Copy link

palmerj commented Apr 26, 2023

Environment (please complete the following information):

  • OS: 13.3
  • Winery version: 1.8.4.2
  • Master Wrapper version: 2.9.1.8
  • Engine version: WS11WineCX64Bit22.1.1-rc1
  • Hardware: MacBook Pro 16 2023, M2 Max, 32GB
  • Application/Game Name: Ultra Street Fighter IV (32bit)

Describe the bug
The performance of Ultra Street Fighter IV on Apple Silicon seems very slow given the hardware running. I'm typically getting 3-40fps depending on the resolution and graphics settings. This game is DirectX 9, so maybe that's why, or maybe Rosetta2 intel instruction translation? Running on my older 2019 intel macbook was at least playable if still resource hungry. Running on parallels 18 using Windows 11 ARM on the same laptop allows running the game at about 275FPS (1920x1080 and max graphic settings). But maybe that's because parallels is using a better tuned DX9 translation layer. DX10/11 games on wine seem to run as good if not better that parallels.

To Reproduce

  1. Create wrapper
  2. Install games into wrapper
  3. Install K-Lite codecs via winetricks
  4. Run game

Expected behavior
Under my Intel Macbook Pro 15" 2019 6 core i7 I get 70FPS under the same wineskin app bundle, which is still not that good, but is better than the M1 max.

Screenshots

USFIV benchmark on my M2 Max with WS11WineCX64Bit22.1.1-rc1:

m2

USFIV benchmark on my M2 Max in parallels 18:
parallels

USFIV benchmark on my intel Macbook Pro 15" 2019
intel

LastRunWine.log

Contents here

Additional context

When running the game on the M2 macbook the CPU usage is about 350%, and GPU usage is about 10-25%. The intel macbook is about the same. When I see the usage in parallels I see about 50% CPU usage, and 10% GPU usage.

Also I wonder why in app wine APIs is reporting the M2Max CPU as Virtual Apple 2.5Ghz 1.0ghz? That looks like the lower clock speed for the efficiency cores. Maybe this is just a reporting error?

Many thanks for your help or explanation :-)

@palmerj palmerj added the bug Something isn't working label Apr 26, 2023
@Gcenx
Copy link
Collaborator

Gcenx commented Apr 26, 2023

Games that use DirectX9 and below use WineD3D OpenGL backend, OpenGL was long depreciated on macOS and Apple Silicon systems don’t have a native OpenGL driver (it’s OpenGL over Metal for WebGL)

There’s that can be done on my end currently, legacy titles like Diablo2/Red Alert2/Total Annihilation can run great by using cnc_ddraw verb.

You can mostly ignore the CPU reporting in wine.

@palmerj
Copy link
Author

palmerj commented Apr 26, 2023

There’s that can be done on my end currently, legacy titles like Diablo2/Red Alert2/Total Annihilation can run great by using cnc_ddraw verb.

I assume you mean there is "nothing" that can be done on your end?

I'm assuming cnc_ddraw will not work with newer directx9 titles, but I will give it a try.

Thanks

@palmerj
Copy link
Author

palmerj commented Apr 26, 2023

Question what is the technical reason why DXVK-macOS only supports DirectX 10 & DirectX 11?

@Gcenx
Copy link
Collaborator

Gcenx commented Apr 26, 2023

I assume you mean there is "nothing" that can be done on your end?

Yep

I'm assuming cnc_ddraw will not work with newer directx9 titles, but I will give it a try.

I believe it won’t work for DirectX9 titles

Question what is the technical reason why DXVK-macOS only supports DirectX 10 & DirectX 11?

MoltenVK doesn’t provide some required Vulkan extensions meaning most games would be broken.

@palmerj
Copy link
Author

palmerj commented Apr 26, 2023

MoltenVK doesn’t provide some required Vulkan extensions meaning most games would be broken.

Is it possible to add these features to MoltenVK, or is it a limitation of metal?

@Gcenx
Copy link
Collaborator

Gcenx commented Apr 26, 2023

Is it possible to add these features to MoltenVK, or is it a limitation of metal?

Some missing features are Metal limitations other missing features can be implemented.

@palmerj
Copy link
Author

palmerj commented Apr 26, 2023

Some missing features are Metal limitations other missing features can be implemented.

Cool, thank you once again for the explanation, Given that Parallels has done it somehow, my guess is it must be possible to implement the missing feature to a good enough. Which person or project did the original DXVK 10/11 work?

@Gcenx
Copy link
Collaborator

Gcenx commented Apr 26, 2023

The original project can be found here https://github.com/doitsujin/dxvk

And DXVK-macOS fork can be found here https://github.com/Gcenx/DXVK-macOS

doitsujin won’t provide support for macOS as MoltenVK doesn’t provide all the required extensions, for DXVK-macOS I’d relaxed some requirements and added some useful workarounds/hacks to help improve things as much as I’m able.

I do take pull-requests for new features/fixes/workarounds

@palmerj
Copy link
Author

palmerj commented Apr 27, 2023

Thank you once again. I've taken the liberty to ask what is the status/gap to support it over here KhronosGroup/MoltenVK#203

@palmerj
Copy link
Author

palmerj commented Apr 29, 2023

I was looking more the DX9 API that are needed by SFIV doesn't seem to be too many. Many DXVK/MortonVK can already support this?

D3DX9

D3D9

@Gcenx
Copy link
Collaborator

Gcenx commented Apr 30, 2023

All current DXVK-macOS archive include x86/x64 d3d9.dll. Open winecfg and add the library *d3d9.dll & set to naive,builtin then drop the relevant d3d9.dll into the games directory.

If might run or it might not run depending, you could also try using dgvoodoo2 similar situation as above as some game worked where others just rendered as a black screen.

@palmerj
Copy link
Author

palmerj commented Apr 30, 2023

Thanks. I gave it a try, but got "Failed creating the Direct3D device". Log:

002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineboot.exe" at 0000000140000000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ws2_32.dll" at 00000001EC2B0000: builtin
0034:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winemenubuilder.exe" at 0000000140000000: builtin
0034:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
0034:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
0034:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\services.exe" at 0000000140000000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\setupapi.dll" at 000000021A7E0000: builtin
003c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\userenv.dll" at 0000000388E20000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winedevice.exe" at 0000000140000000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ntoskrnl.exe" at 00000002279A0000: builtin
0048:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\mountmgr.sys" at 00000001FBAC0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\setupapi.dll" at 000000021A7E0000: builtin
005c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 000000006B460000: builtin
005c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 000000026B4C0000: builtin
005c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 000000023D820000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winedevice.exe" at 0000000140000000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ntoskrnl.exe" at 00000002279A0000: builtin
0068:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\hidparse.sys" at 00000002ADF30000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\winebus.sys" at 00000001C9230000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\setupapi.dll" at 000000021A7E0000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 000000006C010000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\hidclass.sys" at 000000031DF10000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\winehid.sys" at 00000003BA2A0000: builtin
005c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 00000003AFD00000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 000000026B4C0000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 000000023D820000: builtin
0070:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 00000003AFD00000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\plugplay.exe" at 0000000140000000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 000000006AB60000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 000000026B4C0000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 000000023D820000: builtin
008c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 00000003AFD00000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\svchost.exe" at 0000000140000000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wevtsvc.dll" at 00000002EBA70000: builtin
00a4:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\nsiproxy.sys" at 0000000229880000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dnsapi.dll" at 000000029CFC0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\nsi.dll" at 000000028DFA0000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\iphlpapi.dll" at 0000000240030000: builtin
0054:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\drivers\\ndis.sys" at 00000001DC4B0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 000000006AC60000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 000000023D820000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 000000026B4C0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\combase.dll" at 0000000327020000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ole32.dll" at 00000002E8F10000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shcore.dll" at 00000003126F0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shlwapi.dll" at 00000002E3540000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shell32.dll" at 00000001C69E0000: builtin
002c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 00000003AFD00000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\SSFIV.exe" at 0000000000400000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wow64.dll" at 000000006F000000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wow64cpu.dll" at 000000006F100000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\SSFIV.exe" at 00400000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 7B000000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 7B600000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 01110000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\VERSION.dll" at 63480000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 01240000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 6BC00000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 61740000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 6AFB0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 6ED00000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 6C9C0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 62FC0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\combase.dll" at 01400000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ole32.dll" at 012E0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\DSOUND.dll" at 011E0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\hid.dll" at 666C0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\setupapi.dll" at 6BCC0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\XINPUT9_1_0.dll" at 6B880000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WS2_32.dll" at 6D780000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dnsapi.dll" at 6E4C0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\nsi.dll" at 6F480000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\iphlpapi.dll" at 61500000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WSOCK32.dll" at 00120000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\winsxs\\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_deadbeef\\MSVCR90.dll" at 015A0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\LIBEAY32.dll" at 014A0000: native
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\SSLEAY32.dll" at 01460000: native
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\libsasl.dll" at 01670000: native
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\OpenLDAP.dll" at 01650000: native
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\curllib.dll" at 10000000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shcore.dll" at 63BC0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shlwapi.dll" at 64A40000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\SHELL32.dll" at 02260000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\oleaut32.dll" at 64EC0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\jsproxy.dll" at 02BD0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WINHTTP.dll" at 02B80000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\PSAPI.DLL" at 67840000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\steam_api.dll" at 016B0000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\XINPUT1_3.dll" at 651C0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\cryptopp.dll" at 42900000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\IMM32.dll" at 02BF0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\dbghelp.dll" at 6FA80000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\Ultra Street Fighter IV\\d3d9.dll" at 62440000: native
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\opengl32.dll" at 6AAD0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wined3d.dll" at 02C50000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3dcompiler_47.dll" at 02C10000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3dxof.dll" at 67A00000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\d3dx9_43.dll" at 6D2C0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\comctl32.dll" at 6CC40000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\DINPUT8.dll" at 02EC0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msacm32.dll" at 02FE0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\WINMM.dll" at 02F10000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\explorer.exe" at 0000000140000000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\version.dll" at 00000002F1FA0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\win32u.dll" at 000000006A260000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\user32.dll" at 000000023D820000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\gdi32.dll" at 000000026B4C0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\imm32.dll" at 00000003AFD00000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winemac.drv" at 000000006D010000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\uxtheme.dll" at 00000002F7230000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\combase.dll" at 0000000327020000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ole32.dll" at 00000002E8F10000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shcore.dll" at 00000003126F0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shlwapi.dll" at 00000002E3540000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\shell32.dll" at 00000001C69E0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\oleaut32.dll" at 00000002739C0000: builtin
00bc:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\actxprxy.dll" at 00000001D0830000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcss.exe" at 0000000140000000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernelbase.dll" at 000000007B000000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\kernel32.dll" at 000000007B600000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\msvcrt.dll" at 00000001C8DB0000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\ucrtbase.dll" at 00000003AF670000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\sechost.dll" at 000000032A700000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\advapi32.dll" at 0000000330260000: builtin
00d0:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0000000231AE0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winemac.drv" at 6B2D0000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\uxtheme.dll" at 03D00000: builtin
0024:fixme:heap:RtlSetHeapInformation 00000000 1 00000000 0 stub
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\Wmvcore.dll" at 046D0000: builtin
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\Wmvcore.dll" : builtin
info:  Game: SSFIV.exe
info:  DXVK: v1.10.3-20230402-async (macOS)
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
info:    OpenXR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\vulkan-1.dll" at 04490000: builtin
0024:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\winevulkan.dll" at 049D0000: builtin
info:  Enabled instance extensions:
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
[mvk-info] MoltenVK version 1.2.2, supporting Vulkan version 1.2.239.
	The following 84 Vulkan extensions are supported:
		VK_KHR_16bit_storage v1
		VK_KHR_8bit_storage v1
		VK_KHR_bind_memory2 v1
		VK_KHR_buffer_device_address v1
		VK_KHR_copy_commands2 v1
		VK_KHR_create_renderpass2 v1
		VK_KHR_dedicated_allocation v3
		VK_KHR_depth_stencil_resolve v1
		VK_KHR_descriptor_update_template v1
		VK_KHR_device_group v4
		VK_KHR_device_group_creation v1
		VK_KHR_driver_properties v1
		VK_KHR_dynamic_rendering v1
		VK_KHR_external_fence v1
		VK_KHR_external_fence_capabilities v1
		VK_KHR_external_memory v1
		VK_KHR_external_memory_capabilities v1
		VK_KHR_external_semaphore v1
		VK_KHR_external_semaphore_capabilities v1
		VK_KHR_fragment_shader_barycentric v1
		VK_KHR_get_memory_requirements2 v1
		VK_KHR_get_physical_device_properties2 v2
		VK_KHR_get_surface_capabilities2 v1
		VK_KHR_imageless_framebuffer v1
		VK_KHR_image_format_list v1
		VK_KHR_maintenance1 v2
		VK_KHR_maintenance2 v1
		VK_KHR_maintenance3 v1
		VK_KHR_multiview v1
		VK_KHR_portability_subset v1
		VK_KHR_push_descriptor v2
		VK_KHR_relaxed_block_layout v1
		VK_KHR_sampler_mirror_clamp_to_edge v3
		VK_KHR_sampler_ycbcr_conversion v14
		VK_KHR_separate_depth_stencil_layouts v1
		VK_KHR_shader_draw_parameters v1
		VK_KHR_shader_float_controls v4
		VK_KHR_shader_float16_int8 v1
		VK_KHR_shader_subgroup_extended_types v1
		VK_KHR_spirv_1_4 v1
		VK_KHR_storage_buffer_storage_class v1
		VK_KHR_surface v25
		VK_KHR_swapchain v70
		VK_KHR_swapchain_mutable_format v1
		VK_KHR_timeline_semaphore v2
		VK_KHR_uniform_buffer_standard_layout v1
		VK_KHR_variable_pointers v1
		VK_EXT_buffer_device_address v2
		VK_EXT_debug_marker v4
		VK_EXT_debug_report v10
		VK_EXT_debug_utils v2
		VK_EXT_descriptor_indexing v2
		VK_EXT_fragment_shader_interlock v1
		VK_EXT_hdr_metadata v2
		VK_EXT_host_query_reset v1
		VK_EXT_image_robustness v1
		VK_EXT_inline_uniform_block v1
		VK_EXT_memory_budget v1
		VK_EXT_metal_objects v1
		VK_EXT_metal_surface v1
		VK_EXT_post_depth_coverage v1
		VK_EXT_private_data v1
		VK_EXT_robustness2 v1
		VK_EXT_sample_locations v1
		VK_EXT_scalar_block_layout v1
		VK_EXT_separate_stencil_usage v1
		VK_EXT_shader_stencil_export v1
		VK_EXT_shader_viewport_index_layer v1
		VK_EXT_subgroup_size_control v2
		VK_EXT_swapchain_colorspace v4
		VK_EXT_texel_buffer_alignment v1
		VK_EXT_texture_compression_astc_hdr v1
		VK_EXT_vertex_attribute_divisor v3
		VK_AMD_gpu_shader_half_float v2
		VK_AMD_negative_viewport_height v1
		VK_AMD_shader_image_load_store_lod v1
		VK_AMD_shader_trinary_minmax v1
		VK_IMG_format_pvrtc v1
		VK_INTEL_shader_integer_functions2 v1
		VK_GOOGLE_display_timing v1
		VK_MVK_macos_surface v3
		VK_MVK_moltenvk v36
		VK_NV_fragment_shader_barycentric v1
		VK_NV_glsl_shader v1
[mvk-info] GPU device:
		model: Apple M2 Max
		type: Integrated
		vendorID: 0x106b
		deviceID: 0xd0303ef
		pipelineCacheUUID: FB581E45-0D03-03EF-0000-000000000000
	supports the following Metal Versions, GPU's and Feature Sets:
		Metal Shading Language 3.0
		GPU Family Apple 7
		GPU Family Apple 6
		GPU Family Apple 5
		GPU Family Apple 4
		GPU Family Apple 3
		GPU Family Apple 2
		GPU Family Apple 1
		GPU Family Mac 2
		GPU Family Mac 1
		GPU Family Common 3
		GPU Family Common 2
		GPU Family Common 1
		macOS GPU Family 2 v1
		macOS GPU Family 1 v4
		macOS GPU Family 1 v3
		macOS GPU Family 1 v2
		macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 3 Vulkan extensions enabled:
		VK_KHR_get_surface_capabilities2 v1
		VK_KHR_surface v25
		VK_EXT_metal_surface v1
info:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
warn:  D3D9: VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT -> VK_FORMAT_B4G4R4A4_UNORM_PACK16
info:  Apple M2 Max:
info:    Driver: 0.2.2010
info:    Vulkan: 1.2.239
info:    Memory Heap[0]: 
info:      Size: 32768 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0xf
info:      Memory Type[2]: Property Flags = 0xb
info:      Memory Type[3]: Property Flags = 0x11
info:  D3D9: VK_FORMAT_D24_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
info:  D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D32_SFLOAT_S8_UINT
warn:  D3D9: VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT -> VK_FORMAT_B4G4R4A4_UNORM_PACK16
info:  Apple M2 Max:
info:    Driver: 0.2.2010
info:    Vulkan: 1.2.239
info:    Memory Heap[0]: 
info:      Size: 32768 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0x1
info:      Memory Type[1]: Property Flags = 0xf
info:      Memory Type[2]: Property Flags = 0xb
info:      Memory Type[3]: Property Flags = 0x11
info:  Process set as DPI aware
00bc:fixme:imm:ImeSetActiveContext (0x47bda0, 0): stub
00bc:fixme:imm:ImmReleaseContext (0000000000010020, 000000000047BDA0): stub
0024:fixme:system:NtUserSystemParametersInfo Unimplemented action: 59 (SPI_SETSTICKYKEYS)
0024:fixme:system:NtUserSystemParametersInfo Unimplemented action: 53 (SPI_SETTOGGLEKEYS)
0024:fixme:imm:ImeSetActiveContext (0x10a39f0, 1): stub
0024:fixme:imm:ImmReleaseContext (00020050, 010A39F0): stub
info:  Device properties:
info:    Device name:     : Apple M2 Max
info:    Driver version   : 0.2.2010
info:  Enabled device extensions:
info:    VK_EXT_host_query_reset
info:    VK_EXT_robustness2
info:    VK_EXT_shader_stencil_export
info:    VK_EXT_shader_viewport_index_layer
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_create_renderpass2
info:    VK_KHR_depth_stencil_resolve
info:    VK_KHR_driver_properties
info:    VK_KHR_image_format_list
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_float_controls
info:    VK_KHR_swapchain
info:    VK_KHR_timeline_semaphore
info:  Device features:
info:    robustBufferAccess                     : 1
info:    fullDrawIndexUint32                    : 1
info:    imageCubeArray                         : 1
info:    independentBlend                       : 1
info:    geometryShader                         : 1
info:    tessellationShader                     : 0
info:    sampleRateShading                      : 1
info:    dualSrcBlend                           : 0
info:    logicOp                                : 0
info:    multiDrawIndirect                      : 0
info:    drawIndirectFirstInstance              : 0
info:    depthClamp                             : 1
info:    depthBiasClamp                         : 1
info:    fillModeNonSolid                       : 1
info:    depthBounds                            : 0
info:    multiViewport                          : 1
info:    samplerAnisotropy                      : 1
info:    textureCompressionBC                   : 1
info:    occlusionQueryPrecise                  : 1
info:    pipelineStatisticsQuery                : 0
info:    vertexPipelineStoresAndAtomics         : 1
info:    fragmentStoresAndAtomics               : 0
info:    shaderImageGatherExtended              : 0
info:    shaderStorageImageExtendedFormats      : 0
info:    shaderStorageImageReadWithoutFormat    : 0
info:    shaderStorageImageWriteWithoutFormat   : 1
info:    shaderClipDistance                     : 1
info:    shaderCullDistance                     : 1
info:    shaderFloat64                          : 0
info:    shaderInt64                            : 0
info:    variableMultisampleRate                : 0
info:  VK_EXT_4444_formats
info:    formatA4R4G4B4                         : 0
info:    formatA4B4G4R4                         : 0
info:  VK_EXT_custom_border_color
info:    customBorderColors                     : 0
info:    customBorderColorWithoutFormat         : 0
info:  VK_EXT_depth_clip_enable
info:    depthClipEnable                        : 0
info:  VK_EXT_extended_dynamic_state
info:    extendedDynamicState                   : 0
info:  VK_EXT_host_query_reset
info:    hostQueryReset                         : 1
info:  VK_EXT_memory_priority
info:    memoryPriority                         : 0
info:  VK_EXT_non_seamless_cube_map
info:    nonSeamlessCubeMap                     : 0
info:  VK_EXT_robustness2
info:    robustBufferAccess2                    : 0
info:    robustImageAccess2                     : 0
info:    nullDescriptor                         : 0
info:  VK_EXT_shader_demote_to_helper_invocation
info:    shaderDemoteToHelperInvocation         : 0
info:  VK_EXT_transform_feedback
info:    transformFeedback                      : 0
info:    geometryStreams                        : 0
info:  VK_EXT_vertex_attribute_divisor
info:    vertexAttributeInstanceRateDivisor     : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  VK_KHR_buffer_device_address
info:    bufferDeviceAddress                    : 0
info:  VK_KHR_timeline_semaphore
info:    timelineSemaphore                      : 0
info:  Queue families:
info:    Graphics : 0
info:    Transfer : 0
[mvk-info] Vulkan semaphores using Metal implicit guarantees within a single queue.
[mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateDevice(): Requested feature is not available on this device.
[mvk-error] VK_ERROR_FEATURE_NOT_PRESENT: vkCreateDevice(): Requested feature is not available on this device.
[mvk-info] Created VkDevice to run on GPU Apple M2 Max with the following 13 Vulkan extensions enabled:
		VK_KHR_create_renderpass2 v1
		VK_KHR_depth_stencil_resolve v1
		VK_KHR_driver_properties v1
		VK_KHR_image_format_list v1
		VK_KHR_sampler_mirror_clamp_to_edge v3
		VK_KHR_shader_float_controls v4
		VK_KHR_swapchain v70
		VK_KHR_timeline_semaphore v2
		VK_EXT_host_query_reset v1
		VK_EXT_robustness2 v1
		VK_EXT_shader_stencil_export v1
		VK_EXT_shader_viewport_index_layer v1
		VK_EXT_vertex_attribute_divisor v3
err:   DxvkAdapter: Failed to create device
0024:fixme:system:NtUserSystemParametersInfo Unimplemented action: 51 (SPI_SETFILTERKEYS)
0024:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\vulkan-1.dll" : builtin
STEAM Save Type:0 Used
Main APPID:00045760 Used
Steam Player Name:ALI213 Used
Steam Player ID32:L1124073472(43000000)/H17825793(01100001) Used
Steam Player ID64:76561199084339200(0110000143000000) Used
Steam APP Language:english
Steam User Is Online:1
Steam User Is LoggedOn:1
Steam API 1.98.31.73 USED
Steam APP UseCALLBACK:1
Steam APP UseSavesBackup:0
Steam APP BlockNetwork:0
0024:fixme:msvcrt:__clean_type_info_names_internal (1002E4F4) stub
0024:fixme:msvcrt:__clean_type_info_names_internal (0148F78C) stub
0024:fixme:msvcrt:__clean_type_info_names_internal (01591884) stub

@palmerj
Copy link
Author

palmerj commented May 1, 2023

So I tested out dgvoodoo2 2.8.1. Initially i got a black screen only with sound working, but then I installed dxvk-master via winetricks and played with a few dgvoodoo2 config options and got it working and it's much faster than wine3d. I got about 100 FPS on max settings @ 1920x1080. My M2Max CPU was ~300% and GPU ~60% usage.

usfiv_dgvoodoo

Here's the dgvoodoo2 config I used:

dgvoodoo

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                       = true
ScalingMode                          = unspecified
ProgressiveScanlineOrder             = false
EnumerateRefreshRates                = false

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

KeepWindowAspectRatio                = true
CaptureMouse                         = true
CenterAppWindow                      = false

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

[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                          = unforced
Antialiasing                        = appdriven

AppControlledScreenMode             = true
DisableAltEnterToToggleScreenMode   = true

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

Full steps are:

  1. Create wrapper with WS11WineCX64Bit22.1.1-rc1 engine
  2. Install game folder into wrapper
  3. Install K-Lite codecs and dxvk-master via winetricks
  4. Download dgVoodoo 2.8.1
  5. Copy MS/x86/D3D9.dll, dgVoodooCpl.exe, and dgVoodoo.conf files and into root Ultra Street Fighter IV 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.

@palmerj
Copy link
Author

palmerj commented May 1, 2023

@Gcenx one thing I've noticed (actually when using any dxvk rendering backend), is I have to play the game for a bit for the shadered to be compiled. This is fine on first play, but I've noticed what I think to be caching is every time I load up the game. I see the SSFIV.dxvk-cache has been created. It's about 200kbs

@The-Wineskin-Project The-Wineskin-Project locked and limited conversation to collaborators May 13, 2023
@Gcenx Gcenx converted this issue into discussion #398 May 13, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants