While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
- Unofficial PC port of Zelda: Majora's Mask, 2 Ship 2 Harkinian has a big new release out
- Steam Controller 2 is apparently a thing and being 'tooled for a mass production' plus a new VR controller
- Half-Life: Blue Shift remake mod Black Mesa: Blue Shift - Chapter 5: Focal Point released
- Linux kernel 6.12 is out now with real-time capabilities, more gaming handheld support
- Steam Deck OLED: Limited Edition White and Steam Deck Australia have launched
- > See more over 30 days here
-
Dungeon Clawler will grab hold of your free time now it…
- razze -
Free-to-play pixel art survival game Ruins To Fortress …
- nb-mago -
The Sci-Fi Shooters Humble Bundle is a top deal with Sy…
- MichelN86 -
The Sci-Fi Shooters Humble Bundle is a top deal with Sy…
- Pyrate -
S.T.A.L.K.E.R. 2: Heart of Chornobyl review - works on …
- Shmerl - > See more comments
- What do you want to see on GamingOnLinux?
- Jarmer - Types of programs that are irritating
- Cyril - Weekend Players' Club 11/22/2024
- StoneColdSpider - Our own anti-cheat list
- Liam Dawe - Spare gog keys
- on_en_a_gros - See more posts
View PC info
I discovered that the steam game ENSLAVED is actually [b]DRMFREE[/b!!! I am able to load and play it from one of my Lutris prefixes (the EA APP prefix), but the game only load in English and I want to play it in Spanish.
If I run it via Steam, is works in Spanish... SO, I am missing something here..
View PC info
Like this?
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
It doesn't work.
View PC info
View PC info
View PC info
View PC info
Then follow this steps with your game running with spanish and then compare the both files you got. If the game language is set by an environment variable, you should be able to see it.
Anyway, I just tested this procedure with one of my games and I couldn't find any env variable that sets the name. So, reading a little bit on the Steam docs I can see that Steam api has an specific function that selects the game language. If every Steam game works this way, then your best chance to setup the correct game name will be by using goldberg emulator and setup language.txt with the correct output.
BTW, the latest binary release of goldberg emulator it's quite old, you may have to compile the emulator for you distro.
Last edited by x_wing on 8 June 2022 at 11:02 pm UTC
View PC info
Edit;
Ups!
SHELL=/bin/bashSESSION_MANAGER=local/Benitez-PC:@/tmp/.ICE-unix/2034,unix/Benitez-PC:/tmp/.ICE-unix/2034QT_ACCESSIBILITY=1XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdgXDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1GNOME_DESKTOP_SESSION_ID=this-is-deprecatedGTK_IM_MODULE=ibusGTK2_MODULES=overlay-scrollbarLANGUAGE=es_AR:esQT4_IM_MODULE=ibusMANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.pathSSH_AUTH_SOCK=/run/user/1001/keyring/ssh__GL_SHADER_DISK_CACHE_PATH=/mnt/epic-games-store/Enslaved/Binaries/Win32XMODIFIERS=@im=ibusDESKTOP_SESSION=cinnamonSSH_AGENT_PID=2149WINE_MONO_CACHE_DIR=/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/monoGST_PLUGIN_SYSTEM_PATH_1_0=/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/lib64/gstreamer-1.0/:/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/lib/gstreamer-1.0/GTK_MODULES=gail:atk-bridgeXDG_SEAT=seat0PWD=/mnt/epic-games-store/Enslaved/Binaries/Win32XDG_SESSION_DESKTOP=cinnamonLOGNAME=carlosXDG_SESSION_TYPE=x11DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1GPG_AGENT_INFO=/run/user/1001/gnupg/S.gpg-agent:0:1WINEESYNC=1XAUTHORITY=/home/carlos/.XauthorityXDG_GREETER_DATA_DIR=/var/lib/lightdm-data/carlosLUTRIS_GAME_UUID=fdcd8cec-d19c-4245-bce2-317aa68c704fGDM_LANG=es_ARWINEARCH=win64HOME=/home/carlosLANG=es_ES.utf-8WINEPREFIX=/mnt/InstalledGames/Lutris/ea-desktopXDG_CURRENT_DESKTOP=X-CinnamonDXVK_LOG_LEVEL=noneXDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0DXVK_ENABLE_NVAPI=1CLUTTER_IM_MODULE=ibusWINEDLLOVERRIDES=d3d10core,d3d11,d3d12,d3d9,d3dcompiler_33,d3dcompiler_34,d3dcompiler_35,d3dcompiler_36,d3dcompiler_37,d3dcompiler_38,d3dcompiler_39,d3dcompiler_40,d3dcompiler_41,d3dcompiler_42,d3dcompiler_43,d3dcompiler_46,d3dcompiler_47,d3dx10,d3dx10_33,d3dx10_34,d3dx10_35,d3dx10_36,d3dx10_37,d3dx10_38,d3dx10_39,d3dx10_40,d3dx10_41,d3dx10_42,d3dx10_43,d3dx11_42,d3dx11_43,d3dx9_24,d3dx9_25,d3dx9_26,d3dx9_27,d3dx9_28,d3dx9_29,d3dx9_30,d3dx9_31,d3dx9_32,d3dx9_33,d3dx9_34,d3dx9_35,d3dx9_36,d3dx9_37,d3dx9_38,d3dx9_39,d3dx9_40,d3dx9_41,d3dx9_42,d3dx9_43,dxgi,nvapi,nvapi64,nvml=n;winemenubuilder=XDG_SESSION_CLASS=user__GL_SHADER_DISK_CACHE=1GTK_OVERLAY_SCROLLING=0DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.pathPROTON_EAC_RUNTIME=/home/carlos/.local/share/lutris/runtime/eac_runtimeUSER=carlosWINE_LARGE_ADDRESS_AWARE=1game_name=EnslavedDISPLAY=:0SHLVL=0WINE_GECKO_CACHE_DIR=/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/geckoQT_IM_MODULE=ibusXDG_VTNR=7XDG_SESSION_ID=c3WINEDEBUG=-allLD_LIBRARY_PATH=/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/lib:/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/lib64:/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu:/lib/x86_64-linux-gnu:/lib/i386-linux-gnu:/usr/lib:/lib:/usr/lib/i386-linux-gnu/sse2:/usr/lib/i386-linux-gnu/i686/sse2:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib64:/home/carlos/.local/share/lutris/runtime/Ubuntu-18.04-i686:/home/carlos/.local/share/lutris/runtime/steam/i386/lib/i386-linux-gnu:/home/carlos/.local/share/lutris/runtime/steam/i386/lib:/home/carlos/.local/share/lutris/runtime/steam/i386/usr/lib/i386-linux-gnu:/home/carlos/.local/share/lutris/runtime/steam/i386/usr/lib:/home/carlos/.local/share/lutris/runtime/Ubuntu-18.04-x86_64:/home/carlos/.local/share/lutris/runtime/steam/amd64/lib/x86_64-linux-gnu:/home/carlos/.local/share/lutris/runtime/steam/amd64/lib:/home/carlos/.local/share/lutris/runtime/steam/amd64/usr/lib/x86_64-linux-gnu:/home/carlos/.local/share/lutris/runtime/steam/amd64/usr/libXDG_RUNTIME_DIR=/run/user/1001VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.jsonXDG_DATA_DIRS=/usr/share/gnome:/usr/share/cinnamon:/home/carlos/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/sharePATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/carlos/.local/binGDMSESSION=cinnamonDBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/busWINE=/home/carlos/.local/share/lutris/runners/wine/lutris-6.4-x86_64/bin/wineGIO_LAUNCHED_DESKTOP_FILE_PID=6752GIO_LAUNCHED_DESKTOP_FILE=/home/carlos/Escritorio/net.lutris.Lutris.desktopWINEFSYNC=0DXVK_NVAPIHACK=0WINE_FULLSCREEN_FSR=1PROTON_BATTLEYE_RUNTIME=/home/carlos/.local/share/lutris/runtime/battleye_runtimeLD_PRELOAD=/usr/$LIB/libgamemodeauto.so.0WINELOADERNOEXEC=1
Last edited by Comandante Ñoñardo on 9 June 2022 at 6:20 pm UTC
View PC info
View PC info
I finally end up buying this game for the sake of trying to figure out what is going on with the install.
So, during this weekend I was able to validate you assumption: the language selection is definitely tied to the steam api dll. This means that using goldberg emulator should do the trick... but it doesn't on linux as it makes the game crash for some reason (there is some weird debugging function call that I'm not sure why is there).
I then decided to check a little bit the game files structure and found some config files with language selection (and even with the language menu selection) but I couldn't figure out how make this work (the Steam exe is probably tied to the Steam api). Which forced me to start playing around with the files that looked like the language and, fortunately, that gave the expected results, which allowed me to create this shitty script:
#!/bin/sh
USAGE="Usage: ./EnslavedLangSw.sh [LANGUAGE|--restore]\nLANGUAGE options:\n DEU\n ESN\n ITA\n FRA\n\n --restore Restores language backups (i.e. rollbacks to english)"
if [ $# -lt 1 ]
then
echo "Invalid arguments!"
echo $USAGE
return 1;
fi
LANGUAGES="DEU ESN ITA FRA"
VALID_LANG=0
BASE_PATH="."
DIR_CHECK="$BASE_PATH/Binaries/Win32/Enslaved.exe"
COOKED_DIR="$BASE_PATH/MonkeyGame/CookedPC/Maps"
LOCALIZATION_DIR="$BASE_PATH/Engine/Localization"
MONKEY_LOC_DIR="$BASE_PATH/MonkeyGame/Localization"
MONKEY_COOK_DIR="$BASE_PATH/MonkeyGame/CookedPC/Packages/Audio"
MONKEY_MAPS_DIR="$BASE_PATH/MonkeyGame/CookedPC/Maps"
MOVIE_LOADING="$BASE_PATH/MonkeyGame/Movies/loading%-%.bik"
MOVIE_DLC1_TXT="$BASE_PATH/MonkeyGame/Movies/DLC1_loadingTruffles%-%.txt"
MOVIE_DLC1_BIK="$BASE_PATH/MonkeyGame/Movies/DLC1_loadingTruffles%-%.bik"
MOVIE_SAVEDATA="$BASE_PATH/MonkeyGame/Movies/Savedata%-%.bik"
RestoreBackup()
{
if [ ! -d "$LOCALIZATION_DIR/../BKP" ]
then
echo "Can't find backup. Did you ever run this script?"
exit 1
fi
rm -rf $LOCALIZATION_DIR/INT
mv -f $LOCALIZATION_DIR/../BKP $LOCALIZATION_DIR/INT
rm -rf $MONKEY_LOC_DIR/INT
mv -f $MONKEY_LOC_DIR/../BKP $MONKEY_LOC_DIR/INT
rm -rf $MONKEY_COOK_DIR/INT
mv -f $MONKEY_COOK_DIR/../../../BKP_COOK $MONKEY_COOK_DIR/INT
for file in $(find $MONKEY_MAPS_DIR | grep "bkp$")
do
TARGET=$(echo $file | sed "s/\(.\)\.bkp/\1/")
mv $file $TARGET
done
LOADING_TARGET=$(echo $MOVIE_LOADING | sed "s/%-%//")
mv $LOADING_TARGET.bkp $LOADING_TARGET
DLC1_TXT_TARGET=$(echo $MOVIE_DLC1_TXT | sed "s/%-%//")
mv $DLC1_TXT_TARGET.bkp $DLC1_TXT_TARGET
DLC1_BIK_TARGET=$(echo $MOVIE_DLC1_BIK | sed "s/%-%//")
mv $DLC1_BIK_TARGET.bkp $DLC1_BIK_TARGET
SAVEDATA_TARGET=$(echo $MOVIE_SAVEDATA | sed "s/%-%//")
mv $SAVEDATA_TARGET.bkp $SAVEDATA_TARGET
}
if [ ! -f $DIR_CHECK ]
then
echo "Invalid directory. You must run this script in the installation directory of Enslaved."
exit 1
fi
if [ $1 = "--restore" ]
then
RestoreBackup
exit 0
fi
for LNG in $LANGUAGES
do
VALID_LANG=$([ $LNG = $1 -o $VALID_LANG -eq 1 ] && echo 1 || echo 0)
done
if [ $VALID_LANG -eq 0 ]
then
echo "Language not supported. This script only supports: $LANGUAGES"
exit 1
fi
echo "Translating...\n"
echo "Moving Engine Localization Dir..."
mv $LOCALIZATION_DIR/INT $LOCALIZATION_DIR/../BKP
cp -r $LOCALIZATION_DIR/$1 $LOCALIZATION_DIR/INT
for file in $(ls $LOCALIZATION_DIR/INT)
do
TARGET=$(echo $file | sed "s/\(.*\)\.$1/\1\.int/i")
mv $LOCALIZATION_DIR/INT/$file $LOCALIZATION_DIR/INT/$TARGET
done
echo "Moving Monkey Localization Dir..."
mv $MONKEY_LOC_DIR/INT $MONKEY_LOC_DIR/../BKP
cp -r $MONKEY_LOC_DIR/$1 $MONKEY_LOC_DIR/INT
for file in $(ls $MONKEY_LOC_DIR/INT)
do
TARGET=$(echo $file | sed "s/\(.*\)\.$1/\1\.int/i")
mv $MONKEY_LOC_DIR/INT/$file $MONKEY_LOC_DIR/INT/$TARGET
done
echo "Moving Monkey Cooked Audio..."
mv $MONKEY_COOK_DIR/INT $MONKEY_COOK_DIR/../../../BKP_COOK
cp -r $MONKEY_COOK_DIR/$1 $MONKEY_COOK_DIR/INT
for file in $(ls $MONKEY_COOK_DIR/INT)
do
TARGET=$(echo $file | sed "s/\(.*\)_$1.upk/\1.upk/")
mv $MONKEY_COOK_DIR/INT/$file $MONKEY_COOK_DIR/INT/$TARGET
done
echo "Moving Monkey Maps..."
for file in $(find $MONKEY_MAPS_DIR | grep "$1.upk$")
do
TARGET=$(echo $file | sed "s/\(.\)$1.upk/\1INT.upk/")
mv $TARGET $TARGET.bkp
cp $file $TARGET
done
LOADING_TARGET=$(echo $MOVIE_LOADING | sed "s/%-%//")
LOADING_SOURCE=$(echo $MOVIE_LOADING | sed "s/%-%/_$1/")
mv $LOADING_TARGET $LOADING_TARGET.bkp
cp $LOADING_SOURCE $LOADING_TARGET
DLC1_TXT_TARGET=$(echo $MOVIE_DLC1_TXT | sed "s/%-%//")
DLC1_TXT_SOURCE=$(echo $MOVIE_DLC1_TXT | sed "s/%-%/_$1/")
mv $DLC1_TXT_TARGET $DLC1_TXT_TARGET.bkp
cp $DLC1_TXT_SOURCE $DLC1_TXT_TARGET
DLC1_BIK_TARGET=$(echo $MOVIE_DLC1_BIK | sed "s/%-%//")
DLC1_BIK_SOURCE=$(echo $MOVIE_DLC1_BIK | sed "s/%-%/_$1/")
mv $DLC1_BIK_TARGET $DLC1_BIK_TARGET.bkp
cp $DLC1_BIK_SOURCE $DLC1_BIK_TARGET
SAVEDATA_TARGET=$(echo $MOVIE_SAVEDATA | sed "s/%-%//")
SAVEDATA_SOURCE=$(echo $MOVIE_SAVEDATA | sed "s/%-%/_$1/")
mv $SAVEDATA_TARGET $SAVEDATA_TARGET.bkp
cp $SAVEDATA_SOURCE $SAVEDATA_TARGET
exit 0
In order to use it:
Note 1: The script can switch to the other fully supported languages (i.e. DEU, ITA & FRA)
Note 2: By only modifying the localization directory (see $LOCALIZATION_DIR) you can keep English voices with your local preferred language as subtitles (you must enable subtitles in the game menu)
Note 3: Once you run the script to switch language, you can rollback the changes by running ./EnslavedLangSw.sh --restore
Note 4: If you switch languages twice without restoring to English between switches, restore will no work anymore
Last edited by x_wing on 22 June 2022 at 2:16 pm UTC