Le blog de Jean David TECHER, un Réunionnais à Saint-Priest/Lyon

Aller au contenu | Aller au menu | Aller à la recherche


mardi 19 janvier 2021

Git force pull to overwrite local files

git fetch --all
git reset --hard origin/master
git pull origin master

mercredi 13 janvier 2021

[Red Rose] My own Wine Build (6.0 RC6 ) customized for Gaming on Linux targetting Intel SandyBridge or over

1. Download

Listed below are my own Wine builds for WoW64 (Windows on Windows). Built on Ubuntu 20.04 using Kron4ek's scripts for Ubuntu 18.04 chroots and a slightly modified version for building wine. Wine was built against gcc-9.3.0 / Mingw-w64 8.0.0 Posix.

Wine-TkG Builds 6.0 RC6 and its packages
CPUDownloadDescription
Intel Sandybridge or over wine-6.0-rc6-tkg-staging-Red-Rose-sandybridge.tar.xz Wine Build for Ubuntu/Xubuntu 18.04/20.04 and over
Intel Sandybridge or over Red-Rose_Packages_SandyBridge_2021-01-13.tar.xz Third-Party packages (Dxvk, Faudio, Windows Media Foundation)


Red Rose - my own customized Wine-TkG version to play games on Linux (Ubuntu/Xubuntu)

Red-Rose_Packages_SandyBridge_2021-01-13 provides following packages

  1. FAudio 21.01 without WMA support -- built against gcc-9.3.0 / Mingw-w64 8.0.0-Posix
  2. DXVK v1.7.3-10-gea13a686 with Async support -- built against gcc-9.3.0 / Mingw-w64 8.0.0-Posix
  3. jxrlib (extracted from Proton Repository) -- patched and built against gcc-9.3.0 / Mingw-w64 8.0.0-Posix
  4. Windows Media Foundation from https://github.com/z0z0z/mf-install

As of 2021-01-13, this build was generated using

  • the following repositories
    Github repositories and latest commits
    Repository on GithubLatest commit
    wine-tkg-git 944027e5a85b9313aec253618e1fd6796f3843b1
    community-patches 05ba47148e82ad3d99af7997fec0a05f6da0f364
    wine-tkg-userpatches 80809693029ef60a323ee1b018031eb016336dde
  • This external configuration file wine-tkg-external-6.0-rc6.cfg to build Wine sources using Wine-TkG. Wine sources generated by Wine-TkG can be downloaded here wine-6-0-rc6-tkg-staging-Red-Rose-sources.tar.xz
  • How to install/use it?

    DISCLAIMER: It's up to you to be sure that you have all dependancies to be able to run Wine on your local Linux System

    # 1. Initiate the WINEPREFIX by putting some value
    export WINEPREFIX=/put/some/path/where/you/want/to/install/it # <---------- MODIFY THIS VALUE !!!!!
    
    # Some Wine variables. Change it accordingly 
    export WINE_BUILD_DIR="wine-6.0-rc6-tkg-staging-Red-Rose-sandybridge"
    export LD_LIBRARY_PATH=/opt/${WINE_BUILD_DIR}/lib/:/opt/${WINE_BUILD_DIR}/lib64/:${LD_LIBRARY_PATH}
    export WINEDLLPATH=/opt/${WINE_BUILD_DIR}/lib/wine:/opt/${WINE_BUILD_DIR}/lib64/wine
    export WINEDEBUG=-all # Should avoid verbose messages from Wine
    
    # 2. Download and decompress the tarballs
    cd ${HOME}
    
    # 2.a Download
    wget http://techer.pascal.free.fr/download/wine/builds/wine-6.0-rc6-tkg-staging-Red-Rose-sandybridge.tar.xz
    wget http://techer.pascal.free.fr/download/wine/packages/Red-Rose_Packages_SandyBridge_2021-01-13.tar.xz
    
    # 2.b Decompress
    sudo tar xvJf wine-6.0-rc6-tkg-staging-Red-Rose-sandybridge.tar.xz -C /opt/
    
    tar xvJf Red-Rose_Packages_SandyBridge_2021-01-13.tar.xz -C ${HOME}
    
    # Update your PATH environment
    export PATH=/opt/${WINE_BUILD_DIR}/bin:${PATH}
    
    # 3. Initiate your WINEPREFIX -- THIS IS VERY IMPORTANT ELSE packages will not be able to install if WINEPREFIX is not set--
    winecfg
    
    # 4. Install all packages
    cd ${HOME}/Red-Rose_Packages_SandyBridge_2021-01-13
    # Install DXVlK and vkd3d-d3d12
    ./dxvk-d3d12_install.sh
    # Install Faudio and jxrlib
    ./faudio_and_jxrlib_install.sh
    # Media Foundation 
    ./mf-install
    
    
    That's it!!!

    DISCLAIMER: Content shown below is almost optional but this is what I am usually used when I am testing a new game. My needs for gaming are pretty different than yours BUT I am sharing it just in case!!!

    # 5. OPTIONAL
    # Give some priorities to Wine processes
    sudo setcap cap_sys_nice+ep /opt/${WINE_BUILD_DIR}/bin/wineserver
    
    # XFCE Performances
    ###############################
    # Usually it is set ton ON
    
    #To turn off BEFORE  playing any game on Xubuntu
    
    #xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=false
    
    #To turn on AFTER  playing any game on Xubuntu
    
    #xfconf-query --channel=xfwm4 --property=/general/use_compositing --set=true
    
    
    # FAudio And Sound
    ######################
    # Choose either directsound or winmm
    #export SDL_AUDIODRIVER=directsound
    export SDL_AUDIODRIVER=winmm
    
    
    #export WINEPREFIX=/opt/Games/garbage # The usual path I used when I want to test some games quickly/temporary
    export WINEDEBUG=-all
    
    #Vkd3d
    #######
    export VKD3D_TEST_PLATFORM=windows
    export VKD3D_TEST_BUG=0 
    export VKD3D_DEBUG=none  
    
    # More Wine Variables
    #######################
    export WINEDEBUG=-all
    export WINEDLLPATH=/opt/${WINE_BUILD_DIR}/lib/wine:/opt/${WINE_BUILD_DIR}/lib64/wine
    export WINE_LARGE_ADDRESS_AWARE=1  
    export STAGING_SHARED_MEMORY=1 
    export STAGING_WRITECOPY=1 
    export STAGING_RT_PRIORITY_SERVER=90
    export STAGING_RT_PRIORITY_BASE=90
    export WINEESYNC=1 
    export WINEFSYNC=0 # Choose Fsync if your Linux Kernel is built/patched with Fsync
    export WINEFSYNC_SPINCOUNT=100
    export WINE_LOW_USER_SPACE_LIMIT=1
    
    # Vulkan if your GPU is a AMD card
    ##############################
    # Use this one below if game is 64-bits
    export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
    # USe this one below if game is 32-bits
    #export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json
    
    # DXVK
    ##########
    export DXVK_CONFIG_FILE="${HOME}/.config/dxvk.cfg"
    export DXVK_LOG_LEVEL=none
    export DXVK_ASYNC=1 #  To enable Async Support
    export DXVK_STATE_CACHE=1
    
    # Just a example for dxvk configuration file if your GPU is a AMD Radeon and your CPU can support more than 4 threads
    cat<< _EOF_ > ${HOME}/.config/dxvk.cfg
    dxgi.numBackBuffers = 5
    dxgi.syncInterval   = 0
    dxgi.tearFree = True
    d3d11.dcSingleUseMode = False
    d3d11.maxFeatureLevel = 11_1
    d3d11.maxTessFactor = 64
    d3d11.relaxedBarriers = False
    d3d11.samplerAnisotropy = 16
    dxvk.useRawSsbo=True
    _EOF_
    
    

2. Expected Targets

  • Linux OS = Ubuntu 18.04/20.04, Xubuntu 20.04 or any recent Linux distribution
  • CPU = Intel greater than Core 2
  • GPU = AMD

3.. Tips to know - no support for ntdll-NtAlertThreadByThreadId for better experience with gaming

  • Provided by removing ntdll-NtAlertThreadByThreadId from staging. That should offer a better experience while playing games and avoiding some freezes.
  • Some flags for compilers
    # For 64-Bit
    export cross_cc="x86_64-w64-mingw32-gcc"
    export cross_cxx="x86_64-w64-mingw32-g++"
    # For 32-Bit
    export cross_cc="i686-w64-mingw32-gcc"
    export cross_cxx="i686-w64-mingw32-g++"
    #----------------------------------
    export CC="ccache gcc-9"
    export CXX="ccache g++-9"
    export CROSSCC="ccache ${cross_cc}";
    export CROSSCXX="ccache ${cross_cxx}";
    
    export CFLAGS=" -march=sandybridge -mtune=sandybridge -mmmx -msse -msse2 -msse3 -mssse3 -msse4.2 -msse4.1 -mavx -maes -mpclmul -mfpmath=sse -O2 -pipe -ftree-vectorize"
    export CXXFLAGS="${CFLAGS}"
    export LDFLAGS="-Wl,-O1,--sort-common,--as-needed"
    export CROSSCFLAGS="${CFLAGS}"
    export CROSSLDFLAGS="-Wl,-O1,--sort-common,--as-needed"