this post was submitted on 17 Jul 2023
24 points (96.2% liked)

Linux Gaming

15474 readers
162 users here now

Gaming on the GNU/Linux operating system.

Recommended news sources:

Related chat:

Related Communities:

Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.

founded 4 years ago
MODERATORS
 

I see it a lot in visual novels, older PC games and PC ports of older non-PC games. It sounds so trivial on paper, like... just play the video? But I know it's not. Why though? Can we ever expect the problem to be fully solved? Right now it kinda seems like an uphill struggle, like by fixing cutscene playback in one game doesn't really seem to automatically fix it for other games, so it's not a situation where a convenient one size fits all solution works.

And I don't really get it, because if it's related to video codecs, there are only so many codecs out there, right? And then you also expect that there's probably just a few popular ones out there that'll be used for 99% of all cases, with a few odd outliers here and there perhaps.

top 31 comments
sorted by: hot top controversial new old
[–] [email protected] 11 points 1 year ago* (last edited 1 year ago) (2 children)

In older times when in-game scenes weren't invented yet game studios often played Bink videos.

You need a licence for the codec meaning someone has to pay to play.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (2 children)

Wouldn't that someone be the game company, when they first made the game? I can't imagine games rely on some system library to decode bink, it must be embedded in engine. Besides, pretty sure bink can be played on vlc, so lack of free/open source decoders isn't the issue.

[–] [email protected] 13 points 1 year ago (1 children)

It's not just a FOSS issue; it's a software patent issue.

VLC doesn't attract a huge amount of attention because they don't really make any money and would just get forked if someone did try to destroy them.

However, larger distros with commercial backing (OpenSUSE springs to mind) often won't directly include potentially patent-infringing packages, so you have to get them from a quasi-third-party repo like Packman.

[–] [email protected] 11 points 1 year ago (1 children)

Vlc is also hosted in France, where software patents aren't legal.

[–] [email protected] 2 points 1 year ago

France based

[–] [email protected] 3 points 1 year ago (1 children)

The codec is embedded in the game. You are not allowed to crack a game to make it play a video or reroute it to some other software. That's illegal.

[–] [email protected] 4 points 1 year ago (1 children)

?

Op is saying the cutscenes don't work in-game. Nobody said anything about cracking. And I'm saying if the problem was the lack of a system decoder that could easily be solved since there are free decoders available.

[–] [email protected] 2 points 1 year ago (2 children)

As I wrote the codecs were usually included in the game. No sane developer assumed that they are already installed in the system.

Now how do you get a game to not use the codec it's shipped with? By cracking.

[–] [email protected] 9 points 1 year ago* (last edited 1 year ago)

If the codec was included in the game you wouldn't need to pay to use it. It was already paid by the developers.

Edit: not to mention modding games is legal in most cases

[–] [email protected] 4 points 1 year ago

Having the runtime of the codec installed in a wine prefix is not the same as having it work. Just like wine has to work on the codec to get the data to it and output back to the game, in a way that the game, the codec and wines d3d implementation can deal with it. This is made mode difficult by some codecs doing output themselves and some handing buffers back to the game for display.

This is hard and gruesome work. With painstaking observing and duplicating behavior, since a lot is not documented and for a clean room implementation the person implementing it can not look at disassembled binaries or (hypothetical) code-leaks.

Now how do you get a game to not use the codec it’s shipped with? By cracking.

That is just wrong. "Cracking" is the circumvention of Copy-Protection. Before Denuvo afaik no Copy-Protection had data-integrty checks, so modification of game Behavior (aka Modding) did not require tampering with the Copy Protection. Best Example SKSE for Skyrim, a tool adding a lot of additional functions to the internal scripting language while still keeping copy protection in tact.

[–] [email protected] 1 points 1 year ago (1 children)

Isn't that more of a legal thing than a technical one?

[–] [email protected] 3 points 1 year ago (1 children)

Yeah. It is. But it's a powerful one. 😬

[–] [email protected] 2 points 1 year ago (1 children)

Kinda weird, typically there's always a... less than legal solution for problems like that, y'know?

[–] [email protected] 1 points 1 year ago

If money is involved people will unsheath their knifes.

[–] [email protected] 7 points 1 year ago (1 children)

A lot of games rely on Windows Media Player to play videos. So that needs to be accurately reverse engineered for videos to work properly through Wine and Proton.
Support is slowly improving.

And the Unity game engine supports very few video formats on Linux. So lazy native ports with MP4 videos won't work, they would probably just crash the game. Unity doesn't support MP4 on Linux.

[–] [email protected] 2 points 1 year ago (1 children)

What about the WMP versions in winetricks? Are they incomplete?

[–] [email protected] 3 points 1 year ago (1 children)

No idea, honestly. I'm guessing winetricks downloads the actual WMP, which would explain why it's not included by default. Not sure though

[–] [email protected] 3 points 1 year ago

That'd make it even stranger, like wouldn't that reliably always fix the issue, since that's the actual dependency? It looks a bit like it's not entirely completely somehow though.

[–] [email protected] 4 points 1 year ago (1 children)

@HoukaiAmplifier99 I see it rarely nowadays, but yes, proprietary or old/rare codecs are the heart of it.

[–] [email protected] 3 points 1 year ago (1 children)

Most recent example I can think of is the Mega Man ZX games in the Mega Man Zero/ZX Legacy Collection, which are PC ports of old NDS games. The cutscenes just show a white screen. Did manage to fix that thanks to someone's help on reddit (was related to mfplat and another component iirc), but there are also instances where that won't work (I tried to help someone fix a cutscene issue on an obscure visual novel, but I couldn't get that to work if my life depended on it).

Modern games do seem fairly safe though, like you said.

[–] [email protected] 3 points 1 year ago (1 children)

@HoukaiAmplifier99 I might have made this up, but I think I recall reading that Valve routinely licences old and weird codecs so that they can build support in Proton for some of these fringe cases.

The only time I can remember seeing it recently was in an old game off GOG called Conquest: Frontier Wars. Like others, it just showed a coloured pattern, but with that game it couldn't recover from not being able to play and would crash after.

[–] [email protected] 1 points 1 year ago (1 children)

Interesting, I take it you don't remember the source? I might want to look into that.

[–] [email protected] 2 points 1 year ago (2 children)

@HoukaiAmplifier99 I don't remember my source, and I can't find anything searching around. I either made it up or it was an unsubstantiated reddit comment that stuck in my brain :)

For real instances of this problem though, look at Glorious Eggroll if you haven't already. Contains a number of additional video codecs Valve can't yet support directly.

[–] [email protected] 2 points 1 year ago

Oh yeah Proton-GE is definitely my go-to usually, has fixed some stuff before, but there are still cases where it doesn't help. Idk what it does under the hood though.

[–] [email protected] 0 points 1 year ago (1 children)

Contains a number of additional video codecs Valve can't yet support directly.

Why would valve need to support the codecs? I don't think Microsoft goes out of its way to support proprietary codecs in windows for a games to be able to decode them. What makes that necessary when running the game in proton?

[–] [email protected] 5 points 1 year ago (1 children)

@Lojcs Microsoft does exactly that. They licence a number of proprietary codecs for inclusion in Windows for the convenience of users.

Running under Wine, some alternative decoders can be used, but many proprietary codecs don't have freely-available decoders available. Under Proton, many free decoders can be used like Wine, but some prohibit commercial use or otherwise can't be implemented in Proton via Valve. GE-Proton manages the best of both worlds.

[–] [email protected] 3 points 1 year ago

Considering that windows doesn't even have a free h.265 software decoder to use in its video app, it's hard to believe that it might support codecs obscure enough to not have open source decoders even in GE proton. Thanks for the reply tho

[–] warmaster 4 points 1 year ago (2 children)

Is there anything VLC can't play ? Why not use the same libraries ? Would it be illegal for Valve to use that?

[–] [email protected] 11 points 1 year ago (1 children)

VideoLAN (organization behind VLC) is in France, which is outside US juridiction. The methods used by VLC are authorized/legal. Software is also not patentable there. That's why it's still up after all these years. You can learn more on their site: https://www.videolan.org/legal.html

Valve, however, must obliged to US juridiction meaning they can't do the same as VLC. Software can also be patented when meeting certain technical requirements.

[–] warmaster 3 points 1 year ago

That's it. Thank you.

[–] [email protected] 1 points 1 year ago

It seems to struggle with screen recordings made by gnome. Last time I did that it played the video squashed into the left half of the screen

load more comments
view more: next ›