Spelunky 2
Spelunky 2 on Ubuntu 20.04 (Proton 5.18 from source + other solutions)
Friend of mine and I experimented with building proton-tkg from source on Ubuntu 20.04. This is the procedure that ultimately worked for us. Based on https://github.com/Tk-Glitch/PKGBUILDS/wiki/wine-tkg-git, tested on Ryzen 7 2700X and RX Vega 56.

EDIT 6: Proton 5.13, launched just recently, is reported to work out of the box and we no longer need to use custom builds. Thanks to Valve for making this happen, and thanks to everyone who contributed in this thread!

EDIT 5: Make sure to disable cloud save, and remove savegame.bak if it is present.

EDIT 4: Some people report that the prebuilt proton-tkg 5.15 packages from the proton-tkg releases works for them: https://github.com/Frogging-Family/wine-tkg-git/releases/tag/5.15.2.r2.g68c50a8f. This doesn't work for everyone (it didn't for me and my friend), but it's probably worth trying so you don't need to go to the trouble of compiling yourself.

EDIT 3: A couple of people in the comments have also posted links to their own proton-tkg build artifacts on Ubuntu/related operating systems. You can try their builds, instead of doing a build yourself from source. While I doubt there are any malicious actors in this thread, it is still good to be wary of builds posted by strangers online. Use your best judgement!

EDIT 2: Users of Pop!_OS will probably need to install the 32-bit dependencies separately. In this case, follow this comment by spelunky-2-hype:
Автор сообщения: spelunky-2-hype
directions for bonky multilb support

Procedure

Download the latest source code tar.gz release from https://github.com/Frogging-Family/wine-tkg-git/releases and extract it to a folder. Open a terminal and cd to the subdirectory proton-tkg.

In the file proton-tkg.cfg, set _staging_version="9acfa3b89931e628d7b62e843934fce26b880405", or whatever the last working commit is.

Now comes a bunch of terminal stuff.

Add 32-bit compatibility:

sudo dpkg --add-architecture i386 sudo apt update

For some reason, these aren't listed as deps in the proton-tkg wiki guide, but they are needed to build dxvk. One of glslang-tools or glslang-dev may not actually be needed, but installed both anyway:

sudo apt install meson gcc-mingw-w64-i686 g++-mingw-w64-i686 gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 glslang-tools glslang-dev

Run all these commands in sequence. When prompted, select the posix alternatives. This is needed to avoid build errors in dxvk:

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++

Install the remaining deps. The wiki guide is out of date. Ubuntu 20.04 can handle all of these dependencies at once:

sudo apt install git autoconf bison ccache debhelper desktop-file-utils docbook-to-man docbook-utils docbook-xsl flex fontforge gawk gettext libacl1-dev libasound2-dev libcapi20-dev libcups2-dev libdbus-1-dev libgif-dev libglu1-mesa-dev libgphoto2-dev libgsm1-dev libgtk-3-dev libkrb5-dev liblcms2-dev libldap2-dev libmpg123-dev libncurses5-dev libopenal-dev libosmesa6-dev libpcap-dev libpulse-dev libsane-dev libssl-dev libtiff5-dev libudev-dev libv4l-dev libva-dev libxslt1-dev libxt-dev ocl-icd-opencl-dev oss4-dev prelink sharutils unixodbc-dev valgrind schedtool libfreetype6-dev xserver-xorg-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gcc-multilib g++-multilib curl fonttools libsdl2-dev python3-tk libvulkan1 libc6-dev linux-libc-dev libkdb5-9 libppl14 libcolord2 libvulkan-dev libgnutls28-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libpng-dev libkadm5clnt-mit11 libkadm5srv-mit11 libavcodec-dev libavutil-dev libswresample-dev libavcodec58 libswresample3 libavutil56 libfaudio0 libfaudio-dev libvkd3d-dev libxinerama-dev libxcursor-dev libxrandr-dev libxcomposite-dev xserver-xorg-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 libvulkan-dev:i386 libvulkan1:i386 libpulse-dev:i386 libopenal-dev:i386 libncurses-dev:i386 libfaudio0:i386 libfaudio-dev:i386 libvkd3d-dev:i386 libgnutls28-dev:i386 libtiff-dev:i386 libldap-dev:i386 libcapi20-dev:i386 libpcap-dev:i386 libxml2-dev:i386 libmpg123-dev:i386 libgphoto2-dev:i386 libsane-dev:i386 libcupsimage2-dev:i386 libkrb5-dev:i386 libgsm1-dev:i386 libxslt1-dev:i386 libv4l-dev:i386 libgstreamer-plugins-base1.0-dev:i386 libudev-dev:i386 libxi-dev:i386 liblcms2-dev:i386 libibus-1.0-dev:i386 libsdl2-dev:i386 ocl-icd-opencl-dev:i386 libxinerama-dev:i386 libxcursor-dev:i386 libxrandr-dev:i386 libxcomposite-dev:i386 libavcodec58:i386 libswresample3:i386 libavutil56:i386

Finally, run the ./proton-tkg.sh script:

./proton-tkg.sh

This may take a while to build. Once it's done, in Steam, you now need to force Spelunky 2 to load with the Proton package we just built. The game runs fine, but achievements currently do not work. Also, tabbing out of the game may cause it to minimize, and unminimizing may cause it to open in the wrong monitor (but what else is new with Linux and multiple monitors?)

EDIT: Some people in the comments have reported that they also needed to delete the game's wine prefix and/or set these launch options:

PROTON_USE_WINED3D11=1 PROTON_NO_ESYNC=1 %command%
Отредактировано 7GE4; 16 окт. 2020 г. в 8:20
< >
Сообщения 115 из 58
am friend, can confirm that the game opens and runs fine. Wine does pop up a dialog box that says "Warning: Windows Version is not supported", but the game still loads once you close that message. Runs fine without lag as far as I have seen so far.
Отредактировано MyriadPossibilities; 29 сен. 2020 г. в 21:14
Going to give this a shot, on 20.04 myself, sucks this isn't a straight forward as Proton or ProtonGE.
Pop!_OS 20.04

EDIT: I've gotten things working: see the solution below

Following pgroudas's lead, I've also uploaded my build artifacts here[github.com]. Try them out if you're on a 64-bit PopOS, they might save you from having to compile proton-tkg

Original Post
--------------------------------------------------------------------

Unfortunately the apt-get installation fails with the following error

Lots of stuff... little too long for this post xserver-xorg-dev : Conflicts: xserver-xorg-dev:i386 but 2:1.20.8-2ubuntu2.4 is to be installed xserver-xorg-dev:i386 : Depends: libxfont-dev:i386 but it is not going to be installed Conflicts: xserver-xorg-dev but 2:1.20.8-2ubuntu2.4 is to be installed E: Unable to correct problems, you have held broken packages.

See this gist[gist.github.com] for the full set of errors.

The proton-tkg repo does mention that multiarch support is bad on PopOS though, so perhaps this is related. I'll see if there's anything I can do to get it working :/

SOLUTION
-------------------------------------------------------------------------

I've managed to solve the dependency issue. The problem is that the most recent linux-libc-dev and linux-libc-dev:i386 packages are actually different versions in PopOS's repositories.

Anyways, the steps to get things working are as follows

1. Follow the OP up until you get to the massive dependency installation command
2. Install the non-i386 dependencies with
sudo apt install git autoconf bison ccache debhelper desktop-file-utils docbook-to-man docbook-utils docbook-xsl flex fontforge gawk gettext libacl1-dev libasound2-dev libcapi20-dev libcups2-dev libdbus-1-dev libgif-dev libglu1-mesa-dev libgphoto2-dev libgsm1-dev libgtk-3-dev libkrb5-dev liblcms2-dev libldap2-dev libmpg123-dev libncurses5-dev libopenal-dev libosmesa6-dev libpcap-dev libpulse-dev libsane-dev libssl-dev libtiff5-dev libudev-dev libv4l-dev libva-dev libxslt1-dev libxt-dev ocl-icd-opencl-dev oss4-dev prelink sharutils unixodbc-dev valgrind schedtool libfreetype6-dev xserver-xorg-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gcc-multilib g++-multilib curl fonttools libsdl2-dev python3-tk libvulkan1 libc6-dev linux-libc-dev libkdb5-9 libppl14 libcolord2 libvulkan-dev libgnutls28-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libpng-dev libkadm5clnt-mit11 libkadm5srv-mit11 libavcodec-dev libavutil-dev libswresample-dev libavcodec58 libswresample3 libavutil56 libfaudio0 libfaudio-dev libvkd3d-dev libxinerama-dev libxcursor-dev libxrandr-dev libxcomposite-dev
3. linux-libc-dev is ahead of linux-libc-dev:i386 in PopOS's repos, so we'll have to downgrade it.

List the available verions of linux-libc-dev

$ apt-cache policy linux-libc-dev linux-libc-dev: Installed: 5.4.0-48.52 Candidate: 5.4.0-7642.46~1598628707~20.04~040157c Version table: *** 5.4.0-7642.46~1598628707~20.04~040157c 1001 1001 http://ppa.launchpad.net/system76/pop/ubuntu focal/main amd64 Packages 5.4.0-48.52 500 500 http://us.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages 500 http://us.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages 100 /var/lib/dpkg/status 5.4.0-26.30 500 500 http://us.archive.ubuntu.com/ubuntu focal/main amd64 Packages

and linux-libc-dev:i386

% apt-cache policy linux-libc-dev:i386 linux-libc-dev:i386: Installed: 5.4.0-48.52 Candidate: 5.4.0-48.52 Version table: 5.4.0-48.52 500 500 http://us.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages 500 http://us.archive.ubuntu.com/ubuntu focal-security/main i386 Packages 100 /var/lib/dpkg/status 5.4.0-26.30 500 500 http://us.archive.ubuntu.com/ubuntu focal/main i386 Packages

(I've got them already installed, so output might be slightly different for you).

We can see that 5.4.0-48.52 is the most recent version provided by both, so downgrade via

sudo apt-get install linux-libc-dev=5.4.0-48.52

3. Set up the multilib hack for debians detailed in the proton-tkg repo, ie in your proton-tkg.cfg set
_nomakepkg_midbuild_prompt="true"

4. Start proton-tkg.sh

5. At the point where it asks you to install the i386 packages, open another terminal and do

sudo apt-get install aptitude

and

sudo aptitude install xserver-xorg-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 libvulkan-dev:i386 libvulkan1:i386 libpulse-dev:i386 libopenal-dev:i386 libncurses-dev:i386 libfaudio0:i386 libfaudio-dev:i386 libvkd3d-dev:i386 libgnutls28-dev:i386 libtiff-dev:i386 libldap-dev:i386 libcapi20-dev:i386 libpcap-dev:i386 libxml2-dev:i386 libmpg123-dev:i386 libgphoto2-dev:i386 libsane-dev:i386 libcupsimage2-dev:i386 libkrb5-dev:i386 libgsm1-dev:i386 libxslt1-dev:i386 libv4l-dev:i386 libgstreamer-plugins-base1.0-dev:i386 libudev-dev:i386 libxi-dev:i386 liblcms2-dev:i386 libibus-1.0-dev:i386 libsdl2-dev:i386 ocl-icd-opencl-dev:i386 libxinerama-dev:i386 libxcursor-dev:i386 libxrandr-dev:i386 libxcomposite-dev:i386 libavcodec58:i386 libswresample3:i386 libavutil56:i386

aptitude will present a solution which just needs to uninstall two packages (xserver-xorg-dev and font-related one IIRC). Accept it and wait for aptitude to finish

6. Continue building, it should finish without issue



After compiling, you need to force Steam to use proton-tkg (right click Spelunky 2 > Properties > Click the "force the use of a specific compability tool checkbox > select proton-tkg from the drop-down). You may also need to delete the game's wine prefix if you've already created one

# This deletes a bit more than the prefix actually, but worked for me rm -rf ~/.steam/steam/steamapps/compatdata/418530/

and/or launch Spelunky 2 with the following flags
PROTON_USE_WINED3D11=1 PROTON_NO_ESYNC=1 %command%
Отредактировано penguin-sledder; 1 окт. 2020 г. в 15:43
The guide does have a hack for Debian-based systems that don't support multilib properly, where the 64-bit and 32-bit parts of the build are done separately. Not sure if that would work for Pop 20.04, but it can't hurt to try it
I have successfully compiled it! However, the game freezes as soon as the ship shows up in the opening cutscene...
What hardware are you running? As suggested by some previous reports, you may need to set launch options to:

PROTON_USE_WINED3D11=1 PROTON_NO_ESYNC=1 %command%
Отредактировано 7GE4; 29 сен. 2020 г. в 23:42
I deleted the game's wine prefix, as it was made before compiling proton-tkg for myself, and that seems to have fixed the issue.
Just got it to work! After compiling proton-tkg I had to both delete the prefix and use those launch flags 7Ge4 mentioned to get the game to start properly

I'll spell out the exact commands I used for the upgrades and stuff tomorrow, it's already way too late as is :D
Отредактировано penguin-sledder; 30 сен. 2020 г. в 1:28
I will say that proton-tkg 5.15 works so you don't have to go through and compile it yourself (of course you can). The problem with the more recent versions is that they are compiled with glibc2.32 but the recent versions of ubuntu use glibc2.31. Proton-tkg 5.15 is was last one done with 2.31 and works just fine for me.

I am on popos, which appears to not play nice with multi arch (failing with the 32 bit stuff and not able to easily resolve dependencies without a real possibility of breaking stuff). I might look into the workaround spelunky-2-hype did.
Thanks, this worked for me! I think the update-alternatives steps were what I was missing when I tried to figure it out.

I will note that I'm technically using Linux Mint 20, and for some reason it wouldn't let me install xserver-xorg-dev:i386 because something in its dependencies conflicted with xserver-xorg-dev. I never figured out why, but everything else installed and then built fine without it.

Anyway, after building that manually, Spelunky 2 runs fine for me, no need to even modify any launch options.
Отредактировано Minneyar; 30 сен. 2020 г. в 6:26
@Bageer The prebuilt proton-tkg 5.15 didn't work for us, which is why we went through this build process, hahaha.
Отредактировано 7GE4; 30 сен. 2020 г. в 6:05
Thank you for step-by-step tutorial! With its help I compiled proton-tkg but now I don't see where it was compiled to. There is no directory named "proton_tkg" on my disk and "compatibilitytools.d" is not created, too. Have anyone encountered such problem?

Part of the log, if it can help (it was the second time I ran ./proton-tkg.sh)
-> Using staging patchset -> Using fsync patchset -> Using pba patchset -> Installing to /home/swalrus/.steam/root/compatibilitytools.d/proton_tkg -> Cloning and preparing sources... Please be patient. -> Removed BIG_UGLY_FROGMINER - Ribbit -> Removed Proton-tkg token - Valve Ribbit -> exit cleanup done -> Compilation time for 64-bit wine: real 0m2,594s user 0m4,238s sys 0m1,651s
This is working great for me on Ubuntu 20.04, thanks for the tips.

Just wanted to note that on Ubuntu 20.04 (really, an Ubuntu derivative called Regolith, which may have been the problem), I did in fact need to install the 32 bit libraries separately as the xorg-dev and xorg-dev:i386 conflicted.

However, the 'proton-tkg.cfg' file supports some options that will handle this all for you:

# Set to true to get a prompt after the 64-bit part is built, enabling package switching before building the 32-bit side. # This is a workaround for distros shipping broken devel packages that can't coexist as multilib _nomakepkg_midbuild_prompt="true" # Set to the distro of your choice to attempt dependency resolution. Valid options are "debuntu" (for debian, ubuntu and similar), "fedora" or "archlinux". _nomakepkg_dep_resolution_distro="debuntu"

Ultimately, I also needed to install the
fonttools
python package into my system package to prevent some other error in the build script.

All that said, however, it now runs Spelunky 2 pretty much flawlessly.

If you are on Ubuntu 20.04 on and x86_64 cpu, I'm sharing the precompiled build artifact. You can try it and see if it works for you without jumping through these hoops:


wine-tkg 5.18.r3 Ubuntu 20.04 [github.com]
Gotta say, I love seeing y'all coming together to be able to have people play on a version currently unsupported. While I, myself do not run Linux, I find the comradery and the willingness to help not only each other, but the devs too in some cases to just put a smile on my face and warm me up inside a little. I wish y'all the best of luck and hope y'all get official support sometime!
Автор сообщения: Skypris
Gotta say, I love seeing y'all coming together to be able to have people play on a version currently unsupported. While I, myself do not run Linux, I find the comradery and the willingness to help not only each other, but the devs too in some cases to just put a smile on my face and warm me up inside a little. I wish y'all the best of luck and hope y'all get official support sometime!

Agree with this. I just read through this whole thread and have no idea what anyone really said or how in the world I might even start to understand linux (although I want to), but seeing people build functional solutions for running the game is really cool.
< >
Сообщения 115 из 58
Показывать на странице: 1530 50

Дата создания: 29 сен. 2020 г. в 21:11
Сообщений: 58