ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
660 stars 76 forks source link

[HL2] [Linux] Files not loading from VPK #6621

Closed flibitijibibo closed 1 week ago

flibitijibibo commented 1 week ago

With the latest update to the HL2 content it looks like the opening cutscene music track went missing:

Failed to load sound "*#music/HL2_intro.mp3", file probably missing from disk/repository

The path appears in the cache at hl2/hl2_sound_misc.vpk.sound.cache, in all lower-case, and hl2_intro appears in hl2/hl2_sound_misc_dir.vpk. Editing the scripts to explicitly match case does not fix the issue, so the casefolding still seems to be working at least!

There are also similar errors for a specific shader, but these don't use a script so I don't know if it's easy to hack through these:

Error reading weapon data file for: weapon_oldmanharpoon
Attempted to create unknown entity type info_ladder!
Can't init info_ladder
Error: Material "models/breen/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/breen/pupil_l" uses unknown shader "Eyeball"
Error: Material "models/gman/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/gman/pupil_l" uses unknown shader "Eyeball"
Unable to load sprite material materials/sprites/xssmke1.vmt!
Unable to load sprite material materials/sprites/flare6.vmt!
Error: Material "models/humans/male/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/humans/male/pupil_l" uses unknown shader "Eyeball"
Error: Material "models/humans/female/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/humans/female/pupil_l" uses unknown shader "Eyeball"
Error: Material "models/humans/male/grn_pupil_r" uses unknown shader "Eyeball"
Error: Material "models/humans/male/grn_pupil_l" uses unknown shader "Eyeball"
Error: Material "models/police/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/police/pupil_l" uses unknown shader "Eyeball"
Error: Material "models/kleiner/pupil_r" uses unknown shader "Eyeball"
Error: Material "models/kleiner/pupil_l" uses unknown shader "Eyeball"
DenAkimov commented 1 week ago

Intro music is playing normally on my end.

Eyeball shader errors appear, but they also did on the steam_legacy version.

flibitijibibo commented 1 week ago

Understood - is the install location the Steam default? Is the filesystem something other than ext4? Just trying to think of ways that the same content would behave on different systems...

DenAkimov commented 1 week ago

Default install location, steam installed using apt. Filesystem is ext4.

Have you tried verifying the integrity of game files?

caseif commented 1 week ago

After some investigation, this appears to be https://github.com/ValveSoftware/steam-for-linux/issues/43. Observing the terminal output during game startup yields the message Warning: MP3 decoder has failed to start. Most likely SELinux is disabling JITing?, and indeed all MP3 files seem to exhibit the same problem. Adding an SELinux exception fixes the issue on my system (Fedora 41).

Given that the problem doesn't exist in the legacy branch, it would be nice if some sort of fallback decoder could be used in case of an SELinux denial.

flibitijibibo commented 1 week ago

Tested and can confirm that @caseif is correct - this is surprising both for the reason mentioned as well as the fact that the native libMiles.so was supposed to be the fix for that, from what I remember. Now that the patents have long since expired I wonder if it's worth it to replace the decoder entirely; it probably wouldn't perform as well but I wonder how measurable the difference is nowdays.

In any case, good find, will close as a dupe of https://github.com/ValveSoftware/steam-for-linux/issues/43