mirror of
https://gitea.shironeko-all.duckdns.org/shironeko/Hytale-F2P-2.git
synced 2026-02-26 10:41:46 -03:00
fix: Steam Deck/Ubuntu crash - use system libzstd.so
The bundled libzstd.so is incompatible with glibc 2.41's stricter heap validation, causing "free(): invalid pointer" crashes. Solution: Automatically replace bundled libzstd.so with system version on Linux. The launcher detects and symlinks to /usr/lib/libzstd.so.1. - Auto-detect system libzstd at common paths (Arch, Debian, Fedora) - Backup bundled version as libzstd.so.bundled - Create symlink to system version - Add HYTALE_NO_LIBZSTD_FIX=1 to disable if needed Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
65
docs/STEAMDECK_DEBUG_COMMANDS.md
Normal file
65
docs/STEAMDECK_DEBUG_COMMANDS.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Steam Deck / Linux Crash Fix
|
||||
|
||||
## SOLUTION: Use system libzstd
|
||||
|
||||
The crash is caused by the bundled `libzstd.so` being incompatible with glibc 2.41's stricter heap validation.
|
||||
|
||||
### Automatic Fix
|
||||
|
||||
The launcher automatically replaces `libzstd.so` with the system version. No manual action needed.
|
||||
|
||||
### Manual Fix
|
||||
|
||||
```bash
|
||||
cd ~/.hytalef2p/release/package/game/latest/Client
|
||||
|
||||
# Backup and replace
|
||||
mv libzstd.so libzstd.so.bundled
|
||||
ln -s /usr/lib/libzstd.so.1 libzstd.so
|
||||
```
|
||||
|
||||
### Restore Original
|
||||
|
||||
```bash
|
||||
cd ~/.hytalef2p/release/package/game/latest/Client
|
||||
rm libzstd.so
|
||||
mv libzstd.so.bundled libzstd.so
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Debug Commands (for troubleshooting)
|
||||
|
||||
### Check libzstd Status
|
||||
|
||||
```bash
|
||||
# Check if symlinked
|
||||
ls -la ~/.hytalef2p/release/package/game/latest/Client/libzstd.so
|
||||
|
||||
# Find system libzstd
|
||||
find /usr/lib -name "libzstd.so*"
|
||||
```
|
||||
|
||||
### Binary Validation
|
||||
|
||||
```bash
|
||||
file ~/.hytalef2p/release/package/game/latest/Client/HytaleClient
|
||||
ldd ~/.hytalef2p/release/package/game/latest/Client/HytaleClient
|
||||
```
|
||||
|
||||
### Restore Client Binary
|
||||
|
||||
```bash
|
||||
cd ~/.hytalef2p/release/package/game/latest/Client
|
||||
cp HytaleClient.original HytaleClient
|
||||
rm -f HytaleClient.patched_custom
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Description | Example |
|
||||
|----------|-------------|---------|
|
||||
| `HYTALE_AUTH_DOMAIN` | Custom auth domain | `auth.sanasol.ws` |
|
||||
| `HYTALE_NO_LIBZSTD_FIX` | Disable libzstd replacement | `1` |
|
||||
Reference in New Issue
Block a user