Forums

[Scripts] Divinity: Original Sin (GoG)

Auteur Réponses
Arzaroth Mercredi 8 Octobre 2014 à 18:52
ArzarothAnonymous

Hi,

As I'm waiting waiting for the linux port, I made a script to insall Divinity: Original Sin (GoG release).
As there's multiple versions of the installer, and severals patches, I choosed to make multiple scripts in order to don't force owners of previous version to download the last full release, but only patches.

I will just put here the install script, since there is a lot of patch scripts (9 actually, plus the DLC installation).
You will find all of them here: https://github.com/Arzaroth/playonlinux/tree/master/Divinity_original_sin
If you experience some troubles, please feel free to report it.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
# Date : (2014-10-04 02-53)
# Last revision : (2014-10-09 00-20)
# Wine version used : 1.7.21
# Distribution used to test : Arch Linux
# Author : Arza
 
[ -z "$PLAYONLINUX" ] && exit 0
source "$PLAYONLINUX/lib/sources"
 
TITLE="$(eval_gettext 'Divinity: Original Sin (GoG release)')"
SHORTCUT="$TITLE"
PREFIX="DivinityOriginalSin_gog"
WORKING_WINE_VERSION="1.7.21"
 
# deeply inspired by petch work
check_file() {
    local FILE="$1" EXPECTED_NAME="$2" EXPECTED_MD5="$4"
    local -i EXPECTED_SIZE="$3"
 
    POL_SetupWindow_wait "$(eval_gettext 'Checking file...')" "$TITLE"
    local NAME="$(basename "$FILE")" MD5="$(POL_MD5_file "$FILE")"
    local -i SIZE="$(wc -c <"$FILE")"
 
    if [[ "$SIZE" -ne "$EXPECTED_SIZE" || "$MD5" != "$EXPECTED_MD5" ]]; then
        POL_Debug_Error "$(eval_gettext 'Install file mismatch.\n
Either your install file is corrupted, or is not the expected version.\n
This script cannot guarantee that installation will work correctly. Please report success or failure to PlayOnLinux forums.')\n
$(eval_gettext 'Name:') $NAME ($(eval_gettext 'expected') $EXPECTED_NAME)\n
$(eval_gettext 'Size:') $SIZE ($(eval_gettext 'expected') $EXPECTED_SIZE)\n
$(eval_gettext 'MD5:') $MD5 ($(eval_gettext 'expected') $EXPECTED_MD5)"
        POL_SetupWindow_question "$(eval_gettext 'Continue?')" "$TITLE"
        [ "$APP_ANSWER" != "TRUE" ] && POL_Debug_Fatal "$(eval_gettext 'Not the expected file')"
    fi
}
 
install_file() {
    local FILE_NAME="$1" FILE_MD5="$3"
    local -i FILE_SIZE="$2"
 
    POL_SetupWindow_browse "$(eval_gettext 'Please now provide $FILE_NAME.')" "$TITLE"
    FILE="$APP_ANSWER"
 
    check_file "$FILE" "$FILE_NAME" "$FILE_SIZE" "$FILE_MD5"
 
    POL_SetupWindow_wait "$(eval_gettext 'Please wait while $TITLE is installed.')" "$TITLE"
    POL_Wine start /unix "$APP_ANSWER" || POL_Debug_Fatal "$(eval_gettext 'Error during the installation')"
    POL_Wine_WaitExit "$TITLE"
}
 
POL_SetupWindow_Init
POL_Debug_Init
 
POL_SetupWindow_presentation "$TITLE" "Larian Studios" "http://www.larian.com/" "Arza" "$PREFIX"
 
POL_Wine_SelectPrefix "$PREFIX"
POL_Wine_PrefixCreate "$WORKING_WINE_VERSION"
 
POL_SetupWindow_VMS "512"
 
POL_System_TmpCreate "$PREFIX"
 
POL_Call POL_Install_d3dcompiler_43
POL_Call POL_Install_d3dx9
POL_Call POL_Install_d3dx9_43
POL_Call POL_Install_mono26
POL_Call POL_Install_vcrun2008
POL_Call POL_Install_dotnet35sp1
 
Set_OS winxp
 
POL_SetupWindow_message "$(eval_gettext 'The script will ask you which version you want to install.')\\n
$(eval_gettext 'If you don'\''t know, just refer to the filename of your setup file:')\\n
setup_divinity_original_sin_2.3.0.6.exe: 1.0.57\\n
setup_divinity_original_sin_2.5.0.11.exe: 1.0.107\\n
setup_divinity_original_sin_2.11.0.21.exe: 1.0.177\\n\\n
$(eval_gettext 'When the GoG installer ask you to install dotnet, hit cancel. You might have a few errors, but the game will still run -- flawlessly.')\\n
$(eval_gettext 'Also, if you'\''re having graphic issues with the GoG installer, consider installing lib32-libpng12.')" "$TITLE"
 
POL_SetupWindow_menu "$(eval_gettext 'Which version do you want to install ?')" "$TITLE" "1.0.57~1.0.107~1.0.177" "~"
VERSION="$APP_ANSWER"
 
if [[ "$VERSION" = "1.0.57" ]]; then
    install_file "setup_divinity_original_sin_2.3.0.6.exe" "35948232" "a1597f3975bf38ea44632cd73b6b6bf2"
 
    install_file "patch_divinity_original_sin_2.3.0.7.exe" "290033752" "0a002693070732362879d81246c85954"
elif [[ "$VERSION" = "1.0.107" ]]; then
    install_file "setup_divinity_original_sin_2.5.0.11.exe" "35961472" "c6c44a836df634c2bedc6bd4c15a9b02"
 
    install_file "patch_divinity_original_sin_2.7.0.14.exe" "73179704" "3eb062170af754d15a18e1c61654803e"
elif [[ "$VERSION" = "1.0.177" ]]; then
    install_file "setup_divinity_original_sin_2.11.0.21.exe" "36028944" "82e7d53475592d7cdeef2e5d3ad6a878"
 
    install_file "patch_divinity_original_sin_2.12.0.23.exe" "22301168" "c9298dadd23ffc25886dcdfe0fa5f02c"
fi
 
POL_SetupWindow_message "$(eval_gettext '$TITLE has been successfully installed.')" "$TITLE"
POL_SetupWindow_message "$(eval_gettext 'Please note that during the game is running, your keyboard layout will be changed to qwerty (US).')\\n
$(eval_gettext 'Your old layout will be restored once the game is closed.')\\n
$(eval_gettext 'Also note you can run the configurator to change in-game language, but launching the game from it might fail.')" "$TITLE"
 
POL_System_TmpDelete
 
POL_Wine_reboot
 
POL_Shortcut "EoCApp.exe" "$SHORTCUT"
# Injecting a script to retrieve keyboard layout
POL_Shortcut_InsertBeforeWine "$SHORTCUT" 'layout=$(setxkbmap -print | awk -F"+" '\''/xkb_symbols/ {print $2}'\'')'
POL_Shortcut_InsertBeforeWine "$SHORTCUT" "setxkbmap us"
# Insert after wine to restore keyboard layout, based on POL_Shortcut_InsertBeforeWine
after='setxkbmap "$layout"'
POL_Debug_Message "Inserting after POL_Wine : $after"
COMMANDS="$after" perl -ni -e '
print;
if (!$done && /^POL_Wine /) {
    print "$ENV{COMMANDS}\n";
    $done=1
}' "$REPERTOIRE/shortcuts/$SHORTCUT"
 
POL_SetupWindow_Close
 
cat << _EOF_ > "$REPERTOIRE/configurations/configurators/$SHORTCUT"
#!/bin/bash
[ -z "\$PLAYONLINUX" ] && exit 0
source "\$PLAYONLINUX/lib/sources"
export WINEPREFIX="\$REPERTOIRE/wineprefix/$PREFIX"
export WINEDEBUG="-all"
cd "\$WINEPREFIX/drive_c/GOG Games/Divinity - Original Sin"
POL_Wine LanguageSetup.exe "$@"
_EOF_
 
exit

Edité par Arzaroth

This site allows content generated by members, and we promptly remove any content that infringes copyright according to our Terms of Service. To report copyright infringement, please send a notice to dmca@playonlinux.com