Forum

The Settlers II - 10th Anniversary (GoG)

Författare Svar
TonyFlow Monday 20 May 2013 at 3:13
TonyFlow

Bonjour, voici ma première tentative de script pour PlayOnLinux (grrr mais que fait petch !? un jeu GoG qui n'a toujours pas son script, c'est un scandale !!). J'attends donc vos remarques avec intérêt pour m'assurer que je fais les choses correctement.

Je commence donc avec un script qui me semble facile : "The Settlers 2: 10th Anniversary", version GoG. Un jeu noté en platinium sur l'appdb de winehq, script déjà existant pour la version non-GoG et je suppose que GoG facilite les choses.

[code language=playonlinux]
#!/bin/bash
# Date : (2013-05-19 18-00)
# Last revision : (2013-05-19 18-00)
# Wine version used : 1.5.25
# Distribution used to test : Fedora 17
# Author : TonyFlow <tonyflow@rhcp.net>
# Script licence : GPL v.2
# Program licence : Retail
# Depend :
 
[ -z "$PLAYONLINUX" ] && exit 0
source "$PLAYONLINUX/lib/sources"
 
GOGID="the_settlers_2_10th_anniversary"
PREFIX="SettlersII_10thAnniversary_gog"
WORKING_WINE_VERSION="1.5.25"
 
TITLE="GOG.com - The Settlers 2: 10th Anniversary"
SHORTCUT_NAME="The Settlers II - 10th Anniversary"
SHORTCUT_EDITOR="$SHORTCUT_NAME - $(eval_gettext 'Editor')"
 
POL_SetupWindow_Init
#POL_SetupWindow_SetID
POL_Debug_Init
 
POL_SetupWindow_presentation "$TITLE" "Blue Byte / Ubisoft" "http://www.gog.com/gamecard/$GOGID" "TonyFlow" "$PREFIX"
 
POL_Call POL_GoG_setup "$GOGID" "9d460a721ac514126f2cdfa171dc95f2"
 
POL_Wine_SelectPrefix "$PREFIX"
POL_Wine_PrefixCreate "$WORKING_WINE_VERSION"
 
POL_Call POL_GoG_install
 
# GoG work!
Set_OS winxp
 
# Install DirectX9
POL_Call POL_Install_d3dx9
 
POL_SetupWindow_VMS "32"
 
# Doesn't hurt ;)
POL_Wine_reboot
 
GOGPATH="$GOGROOT/The Settlers II - 10th Anniversary"
convert "$GOGPATH/gfw_high.ico[7]" "$GOGPATH/gfw_32x32.png"
cp -n "$GOGPATH/gfw_32x32.png" "$REPERTOIRE/icones/32/$SHORTCUT_NAME"
cp -n "$GOGPATH/gfw_32x32.png" "$REPERTOIRE/icones/32/$SHORTCUT_EDITOR"
 
#POL_SetupWindow_make_shortcut "$PREFIX" "$GOGPATH/bin" "S2DNG.exe" "" "$TITLE"
#POL_SetupWindow_auto_shortcut "$WINEPREFIX" "S2DNG.exe" "$SHORTCUT_NAME.png" "$SHORTCUT_NAME"
POL_Shortcut "S2DNG.exe" "$SHORTCUT_NAME" "$SHORTCUT_NAME.png" "" "Game;StrategyGame;"
POL_Shortcut "S2DNGEditor.exe" "$SHORTCUT_EDITOR" "$SHORTCUT_EDITOR.png" "" "Game;StrategyGame;"
 
#POL_Shortcut_Document "$SHORTCUT_NAME" "$WINEPREFIX/drive_c/GOG Games/The Settlers II - 10th Anniversary/Manual.pdf"
POL_Shortcut_Document "$SHORTCUT_NAME" "$GOGPATH/Manual.pdf"
POL_Shortcut_Document "$SHORTCUT_EDITOR" "$GOGPATH/EditorManual.pdf"
 
POL_SetupWindow_Close
exit
[/code]

Je n'ai pas encore vraiment eu le temps de tester le jeu, mais à première vue ça fonctionne ! Le seul vrai problème rencontré semblait être l'absence de DirectX9, résolu en ajoutant la ligne "POL_Call POL_Install_d3dx9".

Après, faut pas trop me demander pourquoi telle ou telle option :
- wine version 1.5.25, c'est récent (celle que j'ai sur ma fedora 17 d'ailleurs) et l'appdb indique le jeu en platinium avec celle-ci...
- winxp, c'est ce que j'ai vu le plus courament (GoG indique xp,vista,7,8)
- la VMS à 32, bah pourquoi pas ?...
- SetID, c'est seulement quand le script devient officiel hein ?
- le shortcut pour l'éditeur, c'est superflu ou c'est bien comme ça ?


Sinon j'ai un peu galéré pour avoir des icones correctes... Je ne suis pas certain que mon "convert" et mes "cp" soient recommandés, m'enfin au moins j'ai les icones dans le client playonlinux. Par contre les raccourcis sur mon système (fichiers .desktop donc) restent avec l'icone PoL... L'unique moyen serait-il que les icones soient sur le site de PoL !?

Si tout va bien, je trouverais peut-être d'autres scripts à fournir (je commence à avoir quelques jeux sur GoG, mais la plupart sont déjà scriptés ^^).

Ändrat av TonyFlow

petch Monday 20 May 2013 at 9:36
petch
Developer

Bonjour TonyFlow :)

grrr mais que fait petch !? un jeu GoG qui n'a toujours pas son script, c'est un scandale !!

Citat

Héhé, et bien les 200 scripts existant m'occupent déjà pas mal, GOG a fait récemment des mises à jours silencieuses, semble-t-il juste pour changer les pubs qui s'affichent dans l'installeur, mais pour moi peu importe, ça change le hash MD5 des fichiers et il faut que je revérifie tous les scripts... D'autre part les jeux de stratégie ne sont pas ma spécialité, il en manque sûrement plusieurs dans mes scripts...

A première vue pas grand-chose à dire sur ton script, c'est propre, il y a juste l'extraction de l'icône dont il vaut mieux se passer en mettant l'icône sur le serveur.

Le seul vrai problème rencontré semblait être l'absence de DirectX9, résolu en ajoutant la ligne "POL_Call POL_Install_d3dx9"

Citat

La note Platinum signifie normalement qu'aucune DLL "native" n'est requise, tu es sûr que c'est nécessaire ?

- wine version 1.5.25, c'est récent (celle que j'ai sur ma fedora 17 d'ailleurs) et l'appdb indique le jeu en platinium avec celle-ci...

Citat

Personnellement j'en suis venu à utiliser la dernière version stable disponible (donc Wine 1.4.1) chaque fois que c'est possible. Déjà ça évite de multiplier les versions à installer...

- la VMS à 32, bah pourquoi pas ?...

Citat

Une recherche sur "settlers 2 system requirements" me souffle 64.

- SetID, c'est seulement quand le script devient officiel hein ?

Citat

Oui, au moment de saisir le script, le numéro qui lui a été assigné apparaît dans l'URL. ça permet de rajouter dans l'interface de l'installeur une icône "information" (i) qui amène sur la page web du script. Aucun impact sur l'installation du jeu, donc.

- le shortcut pour l'éditeur, c'est superflu ou c'est bien comme ça ?

Citat

Moi j'aime bien ça, que le script offre autant que possible les mêmes fonctionnalités que l'installation sous Windows, je parse d'ailleurs les fichiers .lnk créés dans les répertoires de menus pour en avoir une idée précise. D'autres comme Tinou préfèrent quand il n'est créé que l'icône du jeu, pour éviter l'amoncellement d'icônes dans la liste de PlayOnLinux. C'est un peu les limites d'avoir une liste "plate".
J'ai ménagé quelques fois la chèvre et le chou en en faisant une option d'installation (exemple le script de Painkiller Black), même si je sais que Tinou n'est pas très fan de ça non plus...
Bref je n'ai pas vraiment de recommandations, pour moi ça va en l'état.

Par contre les raccourcis sur mon système (fichiers .desktop donc) restent avec l'icone PoL... L'unique moyen serait-il que les icones soient sur le site de PoL !?

Citat

Bonne question, il y a aussi un répertoire pour les icônes dans leur taille originale (~/.PlayOnLinux/icones/full_size/) peut-être que c'est ce que les .desktop utilisent ?
Mais de toutes façons oui, la méthode officielle pour régler le problème quand l'extraction d'icônes ne se fait pas automatiquement est de poser les icônes sur le serveur. De toutes façons il faut le faire pour l'icône du script lui-même...

Si tout va bien, je trouverais peut-être d'autres scripts à fournir (je commence à avoir quelques jeux sur GoG, mais la plupart sont déjà scriptés ^^).

Citat

ça sera avec grand plaisir, comme je disais avec plus de 200 scripts à maintenir je commence à voir très précisément mes limites... Avec une mise à jour transverse des scripts (pour ajouter le paramètre catégorie aux POL_Shortcut) et cette mise à jour silencieuse, ça fait 2 mois que je n'ai pas pu créer de nouveau script.

Cordialement,
Pierre.

Ändrat av petch

Xodetaetl Monday 20 May 2013 at 11:47
XodetaetlAnonymous

GOGID="the_settlers_2_10th_anniversary"
PREFIX="SettlersII_10thAnniversary_gog"
TITLE="GOG.com - The Settlers 2: 10th Anniversary"
SHORTCUT_NAME="The Settlers II - 10th Anniversary"

Quote from TonyFlow
Je ressens une hésitation entre II et 2. :D

POL_Shortcut_Document "$SHORTCUT_NAME" "$GOGPATH/Manual.pdf"
POL_Shortcut_Document "$SHORTCUT_EDITOR" "$GOGPATH/EditorManual.pdf"

Quote from TonyFlow
J'aurais bien aimé faire ça aussi dans mes scripts, mais PoL ne prend en compte que le dernier Shortcut_Document, non ?

SetID, c'est seulement quand le script devient officiel hein ?

Quote from TonyFlow
En fait non, tu peux le récupérer dans l'URL dès que tu ajoutes ton script sur le site via la page Logiciels supportés > Nouvel installateur.

le shortcut pour l'éditeur, c'est superflu ou c'est bien comme ça ?

Quote from TonyFlow
L'éditeur est important, pour moi c'est mieux que le lien soit là que pas.

Ändrat av Xodetaetl

petch Monday 20 May 2013 at 12:03
petch
Developer

J'aurais bien aimé faire ça aussi dans mes scripts, mais PoL ne prend en compte que le dernier Shortcut_Document, non ?

Citat

On ne peut mettre qu'un document par raccourci, comme il a deux raccourcis il a droit à deux documents :D
Xodetaetl Monday 20 May 2013 at 12:05
XodetaetlAnonymous

Oh, le veinard ! ^^
TonyFlow Monday 20 May 2013 at 17:30
TonyFlow

GOG a fait récemment des mises à jours silencieuses, semble-t-il juste pour changer les pubs qui s'affichent dans l'installeur, mais pour moi peu importe, ça change le hash MD5 des fichiers et il faut que je revérifie tous les scripts...

Quote from petch

Erf j'imagine, un changement des hash ça doit en faire du taf ! Ca me rappelle une remarque que j'avais sur les scripts d'ailleurs... Mais je la garde pour un autre post, histoire de pas tout mélanger.

A première vue pas grand-chose à dire sur ton script, c'est propre

Quote from petch

Normal, tu es mon modèle :D

il y a juste l'extraction de l'icône dont il vaut mieux se passer en mettant l'icône sur le serveur.

Quote from petch

Okay, si c'est géré comme ça... Du coup on ne fait rien et on laisse l'équipe ajouter ce qu'il faut au moment de valider le script ?

(d3dx9) La note Platinum signifie normalement qu'aucune DLL "native" n'est requise, tu es sûr que c'est nécessaire ?

Quote from petch

Bein ça m'a un peu étonné aussi, j'étais réticent à me lancer dans l'ajout d'une dll... Mais sans ça le jeu ne se lançait pas (resize de l'écran en 800x600, fenêtre furtive dans le coin de l'écran, et plus rien... le bureau reste en l'état :/). En mode debug des messages causant de d3d (que je n'ai pas noté, mais je peux les reproduire).

A noter que sur la page http://appdb.winehq.org/objectManager.php?sClass=version&iId=9001 on trouve une section HOWTO qui indique notament :
 6. Than put the Files: d3dx9_29.dll and msvcr71.dll download them from dll-flies.com
 7. Unpack this Files and Copy them to "/home/YOURNAME/.wine/drive_c/windows/system32"
PS: je n'ai rien fait par contre concernant msvcr71.dll)

(Wine 1.5.25) Personnellement j'en suis venu à utiliser la dernière version stable disponible (donc Wine 1.4.1) chaque fois que c'est possible. Déjà ça évite de multiplier les versions à installer...

Quote from petch

Ca me parait une bonne chose en effet, je vais retester mon script avec la 1.4.1

(VMS=32) Une recherche sur "settlers 2 system requirements" me souffle 64.

Quote from petch

Tu connais des sources d'info pratiques et fiables pour ce genre de détails ? Une recherche me donne une page avec "Video Card:> 32MB", tandis qu'une fiche sur jeuxvideo.com indique "minimum 64 Mo" et "recommandé 128 Mo"...

(shortcut pour l'éditeur) Moi j'aime bien ça, que le script offre autant que possible les mêmes fonctionnalités que l'installation sous Windows ... D'autres comme Tinou préfèrent quand il n'est créé que l'icône du jeu, pour éviter l'amoncellement d'icônes ... J'ai ménagé quelques fois la chèvre et le chou en en faisant une option d'installation ... Bref je n'ai pas vraiment de recommandations, pour moi ça va en l'état.

Quote from petch

Je vois bien ^^ D'un côté c'est sans aucun doute plus simple pour l'utilisateur de supprimer un raccourci que d'en ajouter un. Et ça reste acceptable si on en ajoute pas 10 par appli...

En plus ici, ça me permet de réutiliser le shortcut_document pour indiquer le manuel de l'éditeur (n'est-ce pas Xodetaetl !). J'étais pas sûr que ça soit pris en compte... mais oui ça marche !

(fichiers .desktop) Bonne question, il y a aussi un répertoire pour les icônes dans leur taille originale (~/.PlayOnLinux/icones/full_size/) peut-être que c'est ce que les .desktop utilisent ?

Quote from petch

Hmm je vais essayer par curiosité de mettre une image dans le full_size, voir s'il est pris en compte. Car là mes .desktop contiennent "Icon=/usr/share/playonlinux/etc/playonlinux.png"

Si tout va bien, je trouverais peut-être d'autres scripts à fournir (je commence à avoir quelques jeux sur GoG, mais la plupart sont déjà scriptés ^^).

Citat

ça sera avec grand plaisir, comme je disais avec plus de 200 scripts à maintenir je commence à voir très précisément mes limites... Avec une mise à jour transverse des scripts (pour ajouter le paramètre catégorie aux POL_Shortcut) et cette mise à jour silencieuse, ça fait 2 mois que je n'ai pas pu créer de nouveau script.

Quote from petch

Actuellement j'arrive à 35 jeux (+10 gratuits) sur GoG, ils ont quasi
tous déjà un installeur (encore merci ^^, GoG devrait vous faire des
dons !?!). Au moins ça permet de les tester/valider aussi. Dans les
absents je note seulement :
 - Imperialism 2: The Age of Exploration
 - Prince of Persia (2008)
 - Prince of Persia: Warrior Within
 - Assassin's Creed: Director's Cut
 - Lionheart: Legacy of the Crusader
(+ Beyond Good and Evil que j'ai trouvé en béta)

Donc j'ai quand même de quoi me faire un peu la main ;)

TonyFlow Monday 20 May 2013 at 17:38
TonyFlow

GOGID="the_settlers_2_10th_anniversary"
PREFIX="SettlersII_10thAnniversary_gog"
TITLE="GOG.com - The Settlers 2: 10th Anniversary"
SHORTCUT_NAME="The Settlers II - 10th Anniversary"

Quote from Xodetaetl
Je ressens une hésitation entre II et 2. :D

Quote from TonyFlow


Héhé en effet, même si finalement, malgré la différence, il y a une cohérence !
Pour le TITLE je reprends tel quel le titre de GoG, pour le raccourci c'est ce qui me semble être la syntaxe officielle du jeu (et d'ailleurs le dossier d'install est nommé exactement comme le shortcut).

SetID, c'est seulement quand le script devient officiel hein ?

Quote from Xodetaetl
En fait non, tu peux le récupérer dans l'URL dès que tu ajoutes ton script sur le site via la page Logiciels supportés > Nouvel installateur.

Quote from TonyFlow

Ooooh j'avais pas encore trouvé ça (pt'être parce qu'avant de poster je n'avais pas de compte :p). Je vais pouvoir ajouter ça dans mon post au sujet de la doc !

TonyFlow Tuesday 21 May 2013 at 14:14
TonyFlow

Script publié : http://www.playonlinux.com/fr/edit_app-1703.html

Dernières modifications :
- ajout de l'ID du script
- Wine version 1.4.1 (ça marche toujours)
- VMS à 128 (qui peut le plus, peut le moins ?)
- retrait du gettext pour le shortcut de l'éditeur
- retrait des appels à convert pour générer des icones
(quand je dis retrait.. c'est mis en commentaire en fait)

J'ai refait le test sans l'ajout de d3dx9, voici le debug du lancement (qui crash) :

fixme:win:EnumDisplayDevicesW ((null),0,0x92f278,0x00000000), stub!
fixme:d3dx:D3DXCreateFontIndirectW (0x32c72c0, 0x92f5f8, 0xcaceb4): stub
fixme:d3dx:D3DXCreateFontIndirectW (0x32c72c0, 0x92f5f8, 0xcaceb8): stub
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3d:resource_check_usage Unhandled usage flags 0x8.
fixme:d3dx:d3dx9_base_effect_init HLSL ascii effects not supported, yet
fixme:d3dx:ID3DXEffectCompilerImpl_CompileEffect iface 0x3654160, flags 0, effect 0x92f4e0, error_msgs 0x92f4d4 stub
err:mmtime:TIME_MMTimeStop Timer still active?!
petch Tuesday 21 May 2013 at 18:43
petch
Developer


Okay, si c'est géré comme ça... Du coup on ne fait rien et on laisse l'équipe ajouter ce qu'il faut au moment de valider le script ?

Quote from TonyFlow

Du coup il faudra nous fournir les icônes extraites qu'on puisse les mettre sur le serveur, vu que nous n'avons pas le jeu.


A noter que sur la page http://appdb.winehq.org/objectManager.php?sClass=version&iId=9001 on trouve une section HOWTO qui indique notament :
 6. Than put the Files: d3dx9_29.dll and msvcr71.dll download them from dll-flies.com
 7. Unpack this Files and Copy them to "/home/YOURNAME/.wine/drive_c/windows/system32"
PS: je n'ai rien fait par contre concernant msvcr71.dll)

Quote from TonyFlow

Comme dit sur IRC (mais nous avons été interrompu par les problèmes de performance du serveur), il faudrait que je fasse un fonction d3dx9_29 qui n'installe que cette DLL, histoire de tester. Edit: fait
Pour msvcr71.dll je suppose qu'elle est déjà installée par GOG.


Tu connais des sources d'info pratiques et fiables pour ce genre de détails ? Une recherche me donne une page avec "Video Card:> 32MB", tandis qu'une fiche sur jeuxvideo.com indique "minimum 64 Mo" et "recommandé 128 Mo"...

Quote from TonyFlow

J'ai lu 64 minimum sur les quelques sites que j'ai regardé. Ce n'est pas incompatible avec "128 recommandé", et la valeur à fournir à POL_SetupWindow_VMS est le minimum requis (le seul but de ce paramètre est d'afficher un avertissement si la valeur saisie par l'utilisateur est inférieure).


Actuellement j'arrive à 35 jeux (+10 gratuits) sur GoG, ils ont quasi
tous déjà un installeur (encore merci ^^, GoG devrait vous faire des
dons !?!). Au moins ça permet de les tester/valider aussi. Dans les
absents je note seulement :
 - Imperialism 2: The Age of Exploration
 - Prince of Persia (2008)
 - Prince of Persia: Warrior Within
 - Assassin's Creed: Director's Cut
 - Lionheart: Legacy of the Crusader
(+ Beyond Good and Evil que j'ai trouvé en béta)

Donc j'ai quand même de quoi me faire un peu la main ;)

Quote from TonyFlow

On a demandé un certain temps à GOG s'ils étaient intéressés par une collaboration, contre un accès aux jeux achetés à l'ensemble des scripteurs intéressés (pour l'instant ce sont des achats personnels, quelques uns offerts par le projet PlayOnLinux; Mais dans les deux cas ce sont des licences individuelles, donc impossible par exemple de tester les jeux sur davantage de types de matériels, à fortiori de tester sur Mac).
La réponse montrait clairement que la demande n'avait pas été comprise. C'était il y a à peu près un an, peut-être qu'ils seraient plus prêt aujourd'hui, ou peut-être pas (je peux comprendre aussi les réticences à collaborer avec une équipe extérieure à l'entreprise).
Dans les jeux que tu as cités, je viens juste d'acheter PoP 2008 (aucune idée quand j'aurais le temps de m'en occuper), et j'ai Lionheart qui ne fonctionne pas sous Wine (la souris fait des traînées, bug ouvert depuis des années http://bugs.winehq.org/show_bug.cgi?id=13581).

Cordialement,
Pierre.

Ändrat av petch

TonyFlow Tuesday 21 May 2013 at 23:32
TonyFlow

Je pense avoir effectué les dernières modifs :
- VMS à 64 puisque c'est la recommandation minimale
- POL_Call de POL_Install_d3dx9 remplacé par POL_Install_d3dx9_29
- Ajout de la commande POL_GetSetupImages

J'ai donc soumis le script pour validation.

Quant aux ressources graphiques associées, j'ai composé une jolie image pour le "left" :

Plusieurs propositions pour le top (petite préférence pour la première, sans plus) :



Pour les icones des raccourcis, il y a les icones de GoG :


Ou les icones extraites des exécutables du jeu et de l'éditeur :


petch Wednesday 22 May 2013 at 1:38
petch
Developer