diff options
Diffstat (limited to 'hlvr')
| -rwxr-xr-x | hlvr/patch-hlvr | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/hlvr/patch-hlvr b/hlvr/patch-hlvr index d7b8d9d..0594f37 100755 --- a/hlvr/patch-hlvr +++ b/hlvr/patch-hlvr @@ -69,6 +69,28 @@ def patch( PATCHES = { + "game/hlvr/bin/linuxsteamrt64/libclient.so": patch( + "a49955f7935ed21ccbe0c0b75362ca28c94fa922b15d8c6f650b7cc5383138b6", + "1a48a9fe4da43cf2ae3a124f38ce96a2b35bdd4d5a8c1a72a4122e4012236d88", + ( + # The `libvideo` that ships with the game seems to be some newer + # version which can decode an optional alpha channel. The game + # calls `CreateVideoPlayer` (an export of this library) with a + # callback that the library calls for every decoded frame of a + # video. The callback that `libvideo` expects to call is supposed + # to take an extra pointer and stride parameter for the optional + # alpha plane. The game passes a callback which presumably matches + # an older signature. The result is that the game's callback is + # called with the wrong y and u strides (the v and u strides happen + # to be the same, so a shift doesn't break them) which causes a + # corrupt looking decoding. + # This patch shifts the three stack accesses which access the three + # stride parameters up by 8 bytes. + (0x2DDEDFB, "28"), + (0x2DDEE07, "20"), + (0x2DDEE0B, "18"), + ), + ), "game/bin/linuxsteamrt64/librendersystemvulkan.so": patch( "dc034f6b5d2116393bfead77f3265c124687b76766906c53a077c196b21ffa18", "7a52bda8f4e6cc35e5ed46f181c3847400807704cab3fea38b40154d0b977f03", |
