Spyke

After updating CachyOS, I am unable to play games as easily as before. How do I fix it?

cross-posted from: https://sopuli.xyz/post/47762187

When I first installed CachyOS, my mind was blown away by how quickly and conveniently I could start playing my Windows games with it. With its proton-cachyos-slr wine executable, it was only a matter of setting the game executable and runtime locations in Lutris and I could start playing the game immediately.

However, ever since I updated my system with sudo pacman -Syu in the beginning of May, almost every game stopped opening like it used to. Of those games, almost half of them would simply not open at all with any tweaking. The rest of the games eventually started to run but some of them were hit by performance degradation severe enough to not be playable.

I tried to search for the cause on the CachyOS forums and wiki. I managed to find some posts somewhat discussing this issue, citing issues with the new kernel or the proton-cachyos-slr package. Unfortunately following their proposed solutions like downgrading proton-cachyos-slr or tweaking runtime settings in Lutris didn't fix the problem.

Eventually I moved on to the CachyOS documentation, mentioning an option of using an alternative wine executable wine-cachyos. It wasn't available as a regular executable option and had to be called manually, but eventually it allowed me to play most of my games like before.

I don't feel comfortable with this setup since the entire implementation feels like a hack instead of being an in-built feature, requires additional configuration process for every new game added and still doesn't allow me to run some of my games that I have spent most of my playing hours on. I have been experiencing this for almost 2 months and I have been contemplating my decision to update my system.

Is there a way to go back to how my system was before without resorting to snapshots or a fresh installation? I don't expect solutions as you would do in support forums; I am just in need of advice on where to start looking to solve my concern. If you need debug info or context, I'll happily provide them.

View original on sopuli.xyz
linux_gaming·Linux GamingbyCannonGoBoom

GE-Proton11-1 Released

Heads up! This release used AI to rebase the video playback pipeline.

EDIT: I have added the release notes as a spoiler for easier readability as requested in the comments

::: spoiler spoiler The long awaited video rework and Proton 11 rebase is finally done! GE-Proton11-1 is now available!

Proton updates:

  • d7vk added (not enabled by default). Use PROTON_USE_D7VK=1 to enable. It is enabled via protonfix on Tex Murphy: Overseer

  • discord bridge added. (not enabled by default). Use PROTON_DISCORD_BRIDGE=1 to enable. (proton-cachyos)

  • optiscaler support added. (not enabled by default). Use PROTON_USE_OPTISCALER=1 to enable' (proton-cachyos)

  • winealsa channel count override option added. (not enabled by default). Use WINEALSA_CHANNELS to tune. Possible values is the number of speakers, such as 2 (to disable spatial audio), such as 4 (2 front, 2 rear), 6 (5.1) or 8 (7.1). (Vyrolian)

  • winealsa spacial downmix override option added. (not enabled by default). Use WINEALSA_SPACIAL=1 to enable. (Vyrolian)

  • xrandr added to build so that auto-detection of default monitor can work without relying on host xrandr when a default monitor is not set for wine-wayland. This means if you accidentally forget to set a monitor for wine-wayland it should display on the default one found by xrandr now instead of just defaulting to the far left.

  • updated star citizen patches

  • added patches for Task Bar Hero (thaylorz)

  • added patches for VRChat webcam face tracking (LilFishyChan)

  • Entire build rebased onto latest proton 11 bleeding-edge

  • Standalone patches for VR rebased onto proton 11 (so you can use with umu outside of steam on non-steam VR games)

  • wine-native rsx3d library created to for older games (games like Tex Murphy no longer need 3rd party rsx3d winetricks)

  • Enable .exe dynamic relocation and only relocate files which have relocations. For XIV specifically, this fixes issues with low address space being filled up by everyone and everything and, as a result, some plugins failing to apply their hooks and leaving the game in an unstable state. (0x0ade)

--The video playback rework--

Q. What was the problem?

A. Originally, proton uses two methods for video playback with two different backends. The first is typically winedmo->ffmpeg. The second is typically quartz->gstreamer. For most games, especially older games, the quartz->gstreamer path was the default. winedmo was introduced recently (as of either proton 9 or 10, I don't remember which) as a modern approach to fixing video playback. The problem is the inner workings of the quartz->gstreamer path were complicated, to convert, thus two paths were used.

Seeing as both ffmpeg and gstreamer effectively do the same thing and can handle the same codecs -- it does not make sense to use both, especially when gstreamer is split into several different libraries that need to be built independently (gst-base, gst-good, gst-bad, gst-ugly, gst-orc, gst-libav, etc), and gstreamer also has surface display problems such as X11 vs Wayland vs Surfaceless.

Q. How did I "fix" it?

A. As many of you know, the last GE-Proton release was in March. It is now June. That is a 4 month gap, which is most definitely not the norm for GE Releases. Why is that? It's because I spent the last 4 months converting the quartz->gstreamer path to instead use quartz->winedmo->ffmpeg, and completely gutted all gstreamer libraries from the proton build.

Yes, I used AI for this work. No, it likely unfortunately will not be able to be upstreamed because CodeWeavers policy does not accept AI generated code. You might be asking "how the hell did you use AI for this?" -- the same way I would without it, the only difference is AI was used to compare code logic when things were failing or incorrect. So how does that work?

First, I did a base rework. I completely removed winegstreamer from wine, and had the AI agent look at the current code and convert what it could so that quartz used winedmo instead.

Next, about 80% of the games in the video rework list used the quartz path and relied on protonfixes with winedll overrides for quartz, lavfilters, amstream, dshow, wmp9, wmp11, and so on. This was GREAT because it meant I was able to get winedebug logs with valid, working instances. Once I gathered those logs for each game, I them removed the protonfixes, created a clean prefix, then ran and logged the broken instance. After that I fed a working log and a broken log into the AI agent for comparison to see what WINE was doing when the overrides were in place and working, versus when it was broken natively. I found that in pretty much every instance the agent was quickly able to identify the difference and either correct or implement the missing native code needed to make the videos work as if the overrides were in place, given a small amount of trial and failure retries. Additionally if the game provided the video files I would point the AI agent to those files so that it could properly analyze what kind of files they were in order to implement into wine the ability to play them. There were very very few games that needed fixing "from scratch" and needed a lot more trials and failures before getting a successful fix -- examples being Darksiders Warmastered Edition and Nukitashi 2. I also in the process managed to get rid of a few game-specific hacks that were used and implement solutions that did not break other games -- such as audio fixes that were previously in place for The Medium and Metal Gear Solid V. You will also see a lot of VN (Visual Novel) games have been fixed, as many of those games use the same few engines and fixing one or two fixed the rest of the games that used the same engine. In fact, we even found a bug with steam runtime 4 missing some required libraries for 32 bit video playback that we were able to report upstream to get fixed (you will see liblzma and xz added to the build for this reason).

Here is a detailed breakdown of old quartz behavior versus new:

• Current Quartz Flow

For a game using quartz / DirectShow now:

  1. Game calls IGraphBuilder::RenderFile() or manually builds a graph.

  2. quartz/filesource.c identifies the media:

  • Extension/registry if available.

  • ASF header sniffing for extensionless ASF files, e.g. Persona 4 Arena Ultimax.

  1. For ASF files, RenderFile() now tries:
  • AsyncReader first.

  • Falls back to WMAsfReader if async rendering fails.

  1. FilterGraph2_Render() autoplugs the graph.

  2. Before generic filtermapper enumeration, Quartz now explicitly tries known-good paths:

  • MPEG stream -> MPEG-I Stream Splitter

  • MPEG video -> Wine MPEG video decoder

  • AC3 audio -> winedmo AC3 decoder

  • WMA audio -> DMOWrapperFilter around winedmo WMA decoder

  1. If none of those apply, it falls back to normal IFilterMapper2_EnumMatchingFilters().

  2. Decoding is now mostly routed through winedmo, backed by FFmpeg, instead of winegstreamer.

  3. Audio renderer now rejects compressed audio and only accepts PCM / float PCM, forcing the graph to insert a decoder first.

  4. DirectSound buffer creation is delayed until stream start instead of happening at connect/filter creation time.

  5. Video output still lands in the normal Quartz video renderer path: DDraw / VMR-style surfaces depending on what the graph builds.

Previously

Before the rework, Quartz relied much more on the stock Wine DirectShow path:

  • Source filter selection was mostly extension/registry driven.

  • ASF files generally went straight to WMAsfReader.

  • Filter insertion relied more heavily on generic filtermapper enumeration.

  • Some compressed audio could incorrectly reach DSoundRender, causing failed buffer creation or partial render failures.

  • A lot of media handling still depended on winegstreamer / GStreamer behavior.

  • Game-specific workarounds and external overrides were needed more often: lavfilters, quartz, wmp11, dgvoodoo2, etc.

Practical Difference

The new flow is more deterministic:

Game -> Quartz RenderFile

-> source detection / ASF sniffing

-> AsyncReader or WMAsfReader

-> explicit known decoder/splitter choices

-> winedmo/FFmpeg decode

-> PCM audio to DSoundRender

-> decoded video to Quartz video renderer

Previously it was closer to:

Game -> Quartz RenderFile

-> registry-selected source

-> generic filtermapper search

-> Wine/GStreamer/native override behavior

-> renderer

So the current design tries to keep legacy DirectShow games inside Wine’s own Quartz graph while using winedmo/FFmpeg for the media formats that Wine’s older Quartz

path handled poorly.

Q. Are there currently any known issues?

A. Some older WMV videos can occasionally start playback distorted/pixelated, but they will correct themselves after a few seconds. This is most noticeable in the skill videos in Ghosts N' Goblins Resurrection. WRC 4 Also has some intro logo videos that have a weird frame-splitting issue. Apart from that most games should work, especially if they are in the Verified working test list below:

Godfall

Akiba's Trip: Undead & Undressed

Nukitashi

Nukitashi 2

Ys Origin

Darksiders Warmastered Edition

Breath of Fire IV

Watch Dogs

Dark Souls: Prepare to Die Edition

Silent Hill 3

Full Metal Daemon Muramasa

Bloodstained: Ritual of the Night

Blops 3

Final Fantasy XIV

RE 0

RE1 Remaster

RE2 Remake

RE3 Remake

RE4 Remake

RE4

RE7

RE8

Nioh 2

Nioh 3

Ninja Gaiden Sigma

Ultimate Marvel Vs. Capcom 3

Ghosts 'n Goblins Resurrection

Halo Infinite

soul calibur vi

age of empires II: Definitive edition

age of empires III

age of empires IV: Anniversary Edition

The Great Ace Attorney Chronicles

Memento Mori

Devil May Cry HD Remaster

Mortal Kombat 11

Injustice

Injustice 2

Endless Space 2

oddworld: munch's oddysee

Oddworld: Abe's Oddysee

Fable - The Lost Chapters

tokyo xanadu ex+

Ghostwire tokyo

Tokyo Necro

Order of Battle: World War II

Not For Broadcast

Blue Protocol: Star Resonance

Ryse: Son of Rome

Life Makeover

Street Racing Syndicate

Juarez: Gunslinger

BlazBlue Centralfiction

BlazBlue Chronophantasma Extend

Tree Of Savior

Record of Agarest War Mariage

Agarest: Generations of War 2

Agarest: Generations of War

Agarest Zero

Atelier Ryza 3: Alchemist of the End & the Secret Key DX

Atelier Ryza 2: Lost Legends & the Secret Fairy

Atelier Ryza: Ever Darkness & the Secret Hideout

Atelier Rorona The Alchemist of Arland DX

Atelier Marie Remake: The Alchemist of Salburg

Riddle Joker (should also fix other NekoNyan VNs: Senren*Banka, Sanoba Witch FHD Edition, Sabbat of the Witch, Cafe Stella, Dracu-riot, Parquet, Angelic Chaos: RE-BOOT!)

Seven: Enhanced Edition

Catherine Classic

Spyro Reignited Trilogy

Borderlands 3

Ceville

Grandia HD

Grandia II HD

Sky: Children of the Light

Trials of Mana

Secret of Mana

Legend of Mana

ARK: Survival Evolved

Power Rangers: Battle for the Grid

Persona 3 Reload

Persona 4 Golden

Persona 4 Arena Ultimax

Persona 5 Royal

Persona 5 Strikers

WRC 4

Nekopara Vol.1 (KiriKiri engine games)

Guilty Gear Accent Core Plus R

我打不过漂亮的她们 I Can't Win Against Those Pretty Girls

神都不良探 Underdog Detective

UberSoldier

The Medium

Liminal Border Part III

YOU and ME and HER: A Love Story

Mojika - Truth Rears Its Ugly Head

Moero Chronicle

Megadimension Neptunia VII

BLUE REFLECTION

Hell Yeah!

Bully: Scholarship Edition

Nine Witches: Family Disruption

Gabriel Knight 3: Blood of the Sacred, Blood of the Damned

ONE PIECE: PIRATE WARRIORS 4

Alternativa

Arcania (Gothic 4)

Arcania: Fall of Setarrif

Legend of Heroes: Trails in the Sky

Legend of Heroes: Trails in the Sky SC

Legend of Heroes: Trails in the Sky the 3rd

Umineko: Golden Fantasia

Tex Murphy: Overseer

With all of that work done, I am happy to say all of the games listed above now have functional video playback with NO winetricks needed and NO dll overrides needed. No quartz,no dshow, no amstream, no lavfilters, no klite, no rsx3d, no wmp9, no wmp11, etc. -- All the functionality previously needed from those overrides is now patched directly into wine for the listed games that needed them, and the protonfixes that were previously added have now been removed since they are no longer needed.

Many of these games I did not originally own and did have to purchase in order to get working correctly -- so I would like to send a very big thank you to my patreon supporters for helping me every month with things like this. Of course the patreon is not limited to games, many times it also goes to hardware for Nobara as well, but in this case there were a lot of game purchases made to get this working.

If a game you play has video that is not playing, please open a GE-Proton issue.

Protonfixes updates:

  • d7vk protonfix added for tex murphy overseer

  • d7vk protonfix added but temporarily disabled for Gabriel Knight 3 (d7vk has a flicker problem with this game)

  • font fix for Ground Control 2 (CommandMC)

  • protonfix added for Senren * Banka (R1kaB3rn)

  • protonfixes added for several older ID tech games: Medal of Honor: Allied Assault War Chest, Soldier of Fortune: Platinum Edition, Quake, Hexen II, Star Wars Jedi Knight/Jedi Knight II, Return to Castle Wolfenstein (SinnohConfirmed)

  • protonfix added for The Fruit of Grisaia (R1kaB3rn)

  • protonfix added for Need for Speed Underground 2 (MatthiasDillen)

  • protonfix added for GOG version of Quake II (SinnohConfirmed)

  • protonfix added for Zero Zone (XargonWan)

  • protonfix added for Gray Zone Warfare (ProjectSynchro)

  • protonfix added for Persona 5: The Phantom X (NelloKudo)

  • protonfix added for MONGI: Star Drive (NelloKudo)

  • protonfix added for cxbx-reloaded (BlueInterlude)

  • protonfix added for Assassin's Creed 1 (CommandMC) :::

GE-Proton11-1 Releasedhttps://github.com/GloriousEggroll/proton-ge-custom/releases/tag/GE-Proton11-1Open linkView original on lemmy.world
linux_gaming·Linux Gamingbymlg

Steam Lepton now shows up in the search bar.

https://store.steampowered.com/news/app/3029110

IIRC it showed up once before when the app ID was first added, but it had no associated store or news page.

Despite the rammagedon steam machine and probably inevitable steam frame prices, I think this is probably the coolest development Valve has invested into since its basically Waydroid + FEX which removes the dependency on libhoudini/libndk which would make a lot of mobile games playable on PC using ARM translation.

One such proven example being fortnite lol: https://github.com/waydroid/waydroid/issues/2115

View original on lemmy.world

Can't launch Steam games

I can't launch games on Steam for some reason, at least Windows games using Proton. I even reinstalled Steam several times, but nothing has changed. My distro is Pop OS. Here's what happens when I try launching Vanquish for example:

chdir "/home/quentin/.steam/debian-installation/steamapps/common/Vanquish"
ERROR: ld.so: object '/home/quentin/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Game Recording - would start recording game 460810, but recording for this game is disabled
Adding process 63931 for gameID 460810
ERROR: ld.so: object '/home/quentin/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/quentin/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/quentin/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/quentin/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Adding process 63932 for gameID 460810
Adding process 63933 for gameID 460810
Adding process 63934 for gameID 460810
setlocale "fi_FI.UTF-8": No such file or directory
pv-locale-gen: Missing locale fi_FI.UTF-8 (found in $LC_ADDRESS)
pv-locale-gen: Generating locale fi_FI.UTF-8...
pv-locale-gen: Generated locale fi_FI.UTF-8 successfully
pv-locale-gen: Generating locale en_US.UTF-8...
pv-locale-gen: Generated locale en_US.UTF-8 successfully
pv-adverb[64004]: W: Container startup will be faster if missing locales are created at OS level
Adding process 64042 for gameID 460810
Adding process 64045 for gameID 460810
Adding process 64046 for gameID 460810
fsync: up and running.
Adding process 64047 for gameID 460810
Adding process 64050 for gameID 460810
Adding process 64052 for gameID 460810
Adding process 64056 for gameID 460810
Adding process 64068 for gameID 460810
Adding process 64074 for gameID 460810
Adding process 64081 for gameID 460810
Adding process 64113 for gameID 460810
Adding process 64122 for gameID 460810
Adding process 64125 for gameID 460810
Adding process 64132 for gameID 460810
Fossilize INFO: Overriding serialization path: "/home/quentin/.steam/debian-installation/steamapps/shadercache/460810/fozpipelinesv6/steamapprun_pipeline_cache".
pid 64048 != 64047, skipping destruction (fork without exec?)
Game Recording - game stopped [gameid=460810]
Removing process 64132 for gameID 460810

This has something to do with Steam's overlay, even though I have disabled it. Help is welcome.

View original on sopuli.xyz

DIY Steam Machine for Under $200 [Project]

I came across some articles about how people are upcycling a specific cryptocurrency mining single-board computer and decided to pick one up myself and put together a rig. The board is the AMD BC-250 which is similar to the APU in the PS5.

I've been out of the gaming scene since the Xbox 360 and never could justify the expense of building a gaming rig, but I couldn't pass up the opportunity to build something decent for under $200. This thing rocks and can play my entire catalog of Steam games, many of which I bought on sale and worried later about having a PC that could actually run them.

Specs

  • CPU: 6x AMD Zen 2 cores @ ~3.5GHz (actually has 8 cores/16 threads, but I haven't yet unlocked the other 2)
  • GPU: 24 RDNA2 Compute Units with 1536 shaders. Actually has 40 compute units, and you can unlock the remaining ones pretty easily. The PS5 has, I believe, 36 CUs active.
  • Memory: 16GB GDDR6 shared memory
  • TDP: 220W (50W idle - 235W max load)
  • OS Support: Linux only (no Windows GPU drivers)

I/O

  • 2x USB 3.0 (A only)
  • 2x USB 2.0
  • 1x RJ-45 gigabit ethernet
  • 1x DisplayPort output
  • 2x buttons. One is power and the other seems to be reset

Cost and Parts

  • BC-250 APU - $125 (sadly they've jumped in price again and are now $165)
  • 300W 12v PSU - $35
  • 500 GB NVMe SSD - $0 since I already had a few spare ones on hand
  • 120mm Fan - $17 for a 3-pack
  • 8-pin PCIe power cable - $3 (to connect from the PSU to the APU)

Total cost: $180 though would have been closer to $250 if didn't already have an SSD on hand. Price also doesn't include the filament I used to print the case as I already had that as well. I didn't check the exact usage, but expect to use the better part of a 1 kg roll on the print. It used about half a roll of red and half a roll of black in my case.

A few optional components added to the build that I already had in my parts bin:

  • Game controller (you can use a Xbox or PS4 controller if you add a USB bluetooth adapter)
  • USB Hub
  • USB Wifi adapter (it's only got wired ethernet onboard)
  • Passive DP to HDMI cable (to connect to my HDMI-only TV)

Depending on the parts you have on hand, you could still potentially build this for $200 or less even after the price hike of the boards.

I'm running Bazzite on it and booting directly into Steam Big Picture. Works great!

Resources

View of the Guts

Note: These aren't mine and are from the Printables model page as I neglected to take photos as I went, and it's kind of a pain to disassemble this because of the way it goes together. I also modded the heatsink and cut off the little ridges since it was originally made for rack cooling and didn't cool well with just a fan on top.

View original on startrek.website
linux_gaming·Linux Gamingbychristos

Terminal Tower of Hanoi, in Bash

cross-posted from: https://lemmy.world/post/47988648

https://gitlab.com/christosangel/hanoi

Hanoi is a simple terminal version of the known classical game Tower of Hanoi, written in Bash.

During the game, the user can move left and right, pick disks and drop them in other stacks.

The aim is to move all the disks from the ORIGIN pile to the DESTINATION pile, in as little moves as possible

View original on lemmy.world
linux_gaming·Linux GamingbyGustavoM

Playing Mina the Hollower on a Orange pi 5 MAX, full speed, no stuttering -- feels comfy af

Pretty sure most of you will drop a "Well, duh -- that's pretty much a NES game"... which is true, yes. A NES game with plenty of layers (FEX > x86_64 to arm > wine > Directx 12, if my memory serves me right) and the fact that vulkan support is "meh", but still very limited (What you are seeing is pure opengl) makes this a very significant accomplishment. This is not the only game that can run on it -- even Metro 2033 (linux native version) can run quite in an acceptable framerate (10'ish FPS, worst case scenario), and the fact that this is run on a device that barely sips the 10 watts mark... makes this feel very "I'm in the future"-kind of thing.

Oh, and the ingame res is odd like that due to the wacky panfrost support (its gpu "drivers") but its 100% fine when I remove all these terminal windows.

View original on lemmy.world

Esync not changing

Ok so I am on voidlinux. doing "ulimit -Hn" outputs "4096" And I can only move it down until 1024 or whatever with that command but temporally anyways. So I edited /etc/security/limits.conf and added "* hard nofile 1048576" at the end, but nothing happened, I've tried slightly different configurations of the file and still nothing. I have also rebooted multiple times so idk what's wrong.

Solved: First I was trying to change the number of open files limit or whatever apparently, second games still don't work, they're just as laggy and still crash but now without an error message in lutris specifically :thumbs up: Anyways I just followed this quote from the r/voidlinux subreddit “in /etc/pam.d/login add the line session required /lib/security/pam_limits.so to the bottom then do the same for the file associated with your DM i.e. /etc/pam.d/lightdm” and then rebooted or whatever.

View original on sh.itjust.works
linux_gaming·Linux GamingbyDoodz

Help With Lutris & Playing Games

Edited

I am trying to install and play BFME (Battle For Middle-Earth), BFMEII, ROTWK (Rise Of The Witch King) & TAOTR (The Age Of The Ring) I do not have any of the game files, or games, as I couldn't find a way to actually download the games and have them work right. That is until I came upon this guide (linked below). Only issues I have are the graphics themselves and how laggy the game is

Outside of this guide, I have gone down numerous rabbit holes with no resolution. So many websites with outdated information or lack thereof. Any help would be appreciated.

https://redlib.catsarch.com/r/bfme/comments/1q9euon/bfme_linux_a_comprehensive_guide/

View original on lemmy.ml