bottlesdevs / Bottles

Run Windows software and games on Linux
https://usebottles.com
GNU General Public License v3.0
6.23k stars 259 forks source link

[Bug]: BOTTLES_USE_SYSTEM_GSTREAMER=1 has no effect (no in-game Videos) #3175

Open CaptainCoward opened 10 months ago

CaptainCoward commented 10 months ago

Describe the bug

So i have now spent quite some time on this issue. No matter what i seem to do i can't get In-Game Videos Working on any Runner that is bundled with its own Gstreamer (like WineGE). It would only work on Runners that aren't bundled with a Gstreamer Plugin for example Soda. Therefore i tried using the BOTTLES_USE_SYSTEM_GSTREAMER=1 variable in all combinations. Yet it has no effect at all. I don't get any warnings or errors related to this in the Bottles-Terminal. In-Game Videos just don't work or get skipped. A good example for this is the game Ghostrunner 2 and the Tony Hawk Pro Skater remake. I even reinstalled Flatpak and all Apps but the Issue remains. Using Heroic Launcher and their Equvivalent of BOTTLES_USE_SYSTEM_GSTREAMER makes the Videos work. So i guess that issue might be related to the Variable not working or something is "missing" in the Flatpak of bottles? I don't know. I just wanted to report that somewhere in case other users have the same Issue.

To Reproduce

  1. Use a Bottle with a Runner that is bundled with its own gstreamer (Wine-GE).
  2. Try playing a game (with 265h/mp4 Videos) like Ghostrunner 2 or Tony Hawk Pro Skater Remake
  3. Check if in-game Videos are playing.
  4. if not try the BOTTLES_USE_SYSTEM_GSTREAMER=1 Variable.
  5. Start game again: Videos still not playing.

Package

Flatpak from Flathub

Distribution

EndouverOS

Debugging Information

Official Package: true
Version: '51.9'
DE/WM: plasma
Display:
    X.org: true
    X.org (port): :0
    Wayland: false
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 6.6.2-arch1-1
Disk:
    Total: 16787251200
    Free: 16787095552
RAM:
    MemTotal: 31.3GiB
    MemAvailable: 28.0GiB
Bottles_envs: null

Troubleshooting Logs

No response

Additional context

No response

Hexaflare commented 10 months ago

I'm not sure if it's related to your issue but I also have problem with in-game videos for a while now. Devil May Cry 5's move previews, River City Girls' intro and cutscenes (mp4 files) or Punishing Gray Raven's prerendered cutscenes all result in crashes for me.

I was sure that some of them worked before so I started rolling back Wine-GE version and it appears that the last version which could play those videos was 8-15. From Wine-GE 8-16 onward most games with in-game videos just crash, I actually checked all of them up to 8-24 today. I'm using latest flatpak version of Bottles running on Steam Deck's SteamOS 3.5.7.

CaptainCoward commented 9 months ago

Have you tested out Soda if that works for you? Then it might be related.

Hexaflare commented 9 months ago

I just tested two latest Soda runners and the results are as follows: River City Girls plays videos on both soda-experimental_8.0 and soda-7.0-9. Videos in this game are in H264 MP4 files. Devil May Cry 5 in-game videos on the other hand crash on both 8.0 and 7.0-9. Not sure about format used here.

I noticed that even though RCG cutscenes work, there's one type of them (stylized as comic strips) that have background colors wrong (they are just stretched all over the screen) even though they play ok in VLC. That happens on both Wine GE 8-15 and Sodas. It's not a major issue though. I copied the game to a Windows machine to exclude that the in-game video player is bugged but the videos there are being displayed correctly.

CaptainCoward commented 9 months ago

Interesting. I mean crashes can always be related to issues with Runners that is why it's good to be able to select different runners. Usually wine-ge worked best for me in the past. That is why it kinda sucks that videos now don't seem to work and the custom variable doesn't help. I assume our Issue is somewhat related. But i'm no dev, and actually have no clue about programming at all. I'm just assuming here lol.

Edit I have to thank you, since you mentioned that it worked till Wine-GE 8.15 i just tested it myself. And yup Videos work with that. After that videos will just get skipped for me (at least in the two games i tried Ghostrunner 2/Tony Hawks Pro Sakter 1+2). So what's interesting is that i just compared the Changes between the Wine-GE releases and the difference between Wine GE 8.15 and 8.16 seems to be gstreamer libraries updated to 1.22 (same as proton) and missing libraries added for gstreamer (libbz2, libFLAC, libvpx) so i assume that is the cause of the issue here.