diff --git a/WIP.md b/WIP.md new file mode 100644 index 0000000..fa2183d --- /dev/null +++ b/WIP.md @@ -0,0 +1,166 @@ +# WIP + +## Test DXVK + +DXVK is a set of replacement dll files that translate from DirectX 11 to Vulkan. + +https://github.com/doitsujin/dxvk + +## Get the mingw-w64 6.0 from Ubuntu Disco (19.04) repo: + +``` +# cat /etc/apt/apt.conf.d/01lock-release +APT::Default-Release "bionic"; + +# cat /etc/apt/preferences.d/01-disco-whitelist +# By default let's block everything from disco. +Package: * +Pin: release a=disco +Pin-Priority: -1 + +# Whitelist those packages which you want to take from disco. +Package: mingw-w64 mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev +Pin: release a=disco +Pin-Priority: 990 + +# cat /etc/apt/sources.list.d/disco.list +deb http://archive.ubuntu.com/ubuntu/ disco universe +deb http://archive.ubuntu.com/ubuntu/ disco-updates universe +deb http://security.ubuntu.com/ubuntu/ disco-security universe + +# apt-get update && apt-get upgrade +``` + +``` +$ sudo apt install meson glslang-tools mingw-w64 +``` + +Remember to select the "Posix" version when running this: + +``` +$ sudo update-alternatives --config x86_64-w64-mingw32-gcc +$ sudo update-alternatives --config x86_64-w64-mingw32-g++ +$ sudo update-alternatives --config i686-w64-mingw32-gcc +$ sudo update-alternatives --config i686-w64-mingw32-g++ +``` + +## Compile the DXVK with the tests + +``` +$ git clone https://github.com/doitsujin/dxvk +$ cd dxvk/ +$ cat meson_options.txt +option('enable_tests', type : 'boolean', value : true) +$ TESTDIR="$(mktemp -d)" +$ meson --cross-file build-win64.txt --buildtype release --prefix $TESTDIR/dxvk-master build.w64 +$ cd build.w64/ +$ ninja +$ ninja install +$ ls -lah ${TESTDIR}/dxvk-master/bin/*exe +``` + +> For 32-bit builds, replace 64 with 32. + +``` +$ docker cp ${TESTDIR}/dxvk-master/bin steam_steam_1:/dxvk-bin +$ docker cp ${TESTDIR}/dxvk-master/bin wine:/dxvk-bin +``` + +``` +$ wine /dxvk-bin/d3d11-triangle.exe + +$ WINEPREFIX=~/.wine-test-dxvk winecfg +OK + +$ WINEPREFIX=~/.wine-test-dxvk ./setup_dxvk.sh install +``` + +``` +DXVK_HUD="version,devinfo,fps" wine Origin.exe +``` + +## Installing Origin and Battlefield 1 + +### Get Origin v9.13.0.62213 + +``` +curl -o OriginThinSetup.exe -fsSL https://www.dm.origin.com/download/legacy +wine OriginThinSetup.exe +``` + +``` +Install to: "C:\Origin" + +User -> Application Settings -> "INSTALLS & SAVES" +Games location: "C:\OriginGames" +Legacy game installers: "C:\ProgramData\Origin\DownloadCache" + +User -> Application Settings -> MORE -> ORIGIN IN-GAME -> +Untick [ ] Enable Origin In-Game. +``` + +``` +# su -l user +$ cd ~/.wine/drive_c/Origin +$ wine Origin.exe +``` + +## Installing Battle.net and Call of Duty Black Ops 4 + +``` +# su -l user +$ curl -o Battle.net-Setup.exe -fsSL "https://eu.battle.net/download/getInstaller?os=win&installer=Battle.net-Setup.exe&id=290573456.1505264452" +$ wine Battle.net-Setup.exe +``` + +``` +Install Location: "C:/Battle.net" +Install CoD BO4 to "C:\Call of Duty Black Ops 4" +``` + +``` +# su -l user +$ cd ~/.wine/drive_c/Battle.net/ +$ wine Battle.net.exe +``` + +https://www.reddit.com/r/wine_gaming/comments/9r3t0v/call_of_duty_black_ops_4_wont_start/ + +# Extra + +## Figuring DXVK version in use + +``` +$ find ~/git/wine/ -type f -name "d3d11.dll" -exec sh -c "strings '{}' | grep -A1 DXVK: |grep ^v0 && echo '{}'" \; +v0.94 +/home/arno/git/wine/data/.wine/drive_c/windows/syswow64/d3d11.dll +v0.94 +/home/arno/git/wine/data/.wine/drive_c/windows/system32/d3d11.dll +v0.94 +/home/arno/git/wine/data/dxvk-0.94/x64/d3d11.dll +v0.94 +/home/arno/git/wine/data/dxvk-0.94/x32/d3d11.dll + +$ find ~/git/steam/ -type f -name "d3d11.dll" -exec sh -c "strings '{}' | grep -A1 DXVK: |grep ^v0 && echo '{}'" \; +v0.90-10-g60a03a2 +/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.16/dist/lib64/wine/dxvk/d3d11.dll +v0.90-10-g60a03a2 +/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.16/dist/lib/wine/dxvk/d3d11.dll +v0.80-19-gee8b469 +/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib64/wine/dxvk/d3d11.dll +v0.80-19-gee8b469 +/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib/wine/dxvk/d3d11.dll +``` + +# Troubleshooting + + +## unimplemented function vulkan-1.dll + +``` +wine: Call from 0x7bc77769 to unimplemented function vulkan-1.dll.vkGetInstanceProcAddr, aborting +wine: Unimplemented function vulkan-1.dll.vkGetInstanceProcAddr called at address 0x7bc77769 (thread 0009), starting debugger... +``` + +Install ``libvulkan1:i386`` +