Table des matières

, ,

Far Cry

Farcry est un jeu de tir subjectif, développés par Crytek Studios, édité par UbiSoft il est sorti sur PC en mars 2004.

Présentation

Doté d'un moteur graphique novateur, l'originalité de Far Cry réside surtout dans son ambiance: c'est un des rares jeu de tir subjectif à se dérouler sous le soleil. En effet l'aventure se déroule sur une île paradisiaque du Pacifique sud entourée d'une mer turquoise par un temps de carte postale. Le jeu se parcourt en extérieur avec une certaine liberté de mouvement, notamment par la possibilité de conduire divers véhicules. (extrait wiki)

Le jeu se joue en mode solo ou multi-joueurs.

Mode solo

Échoué au paradis…
Jack Carver a laissé derrière lui un passé plein de mystère et d'amertume pour venir créer une société de transport maritime dans le Pacifique Sud. Il est engagé par Valérie Constantine pour emmener secrètement celle-ci sur une île inexplorée de la Micronésie. Après l'avoir amenée sur l'île, son bateau est attaqué par des mercenaires. Jack parvient à s'échapper mais échoue à des milliers de kilomètres de tout. Sans l'aide de Valérie, laquelle est perdue quelque part dans les profondeurs de la jungle, Jack doit retrouver le chemin de la civilisation. (extrait du manuel)

Pré-requis

Installation

Avec le script de cbz

installer avec le script cbz

Avec le script de LOKI

Loki propose un excellent installateur de Far-Cry, très simple a utiliser.

Attention ! ce site ne distribue plus le script de Far-Cry. La raison est officiellement que loki ne veut plus le distribuer car la dépendance à la version de Wine est trop importante. En pratique, sur la dapper ça fonctionne parfaitement. On peut trouver le script ici

Ou ici:

 wget http://poiresdujardin.free.fr/loki_wine/far.cry_1.33-french.dvd.run
cd Desktop
sh far.cry_1.33-french.dvd.run

(il se peut que l'installeur vous affiche "PLease mount Farcry, choose Yes to retry, No to cancel", continuellement, alors même que le jeu est monté. Dans ce cas cliquez sur "cancel" puis exécutez

SETUP_CDROM=/chemin/vers/leCdRom ./far.cry_1.33-french_2.dvd.run

(où "far.cry_1.33-french_2.dvd.run" correspond au nom de l'exécutable que vous avez téléchargé.

Et relancez le script installation! )

Au bout d'un certain temps et de beaucoup de 100%, votre jeu est installé.

Pour lancer le jeu, vous devez éditer le script de lancement :

sudo gedit farcry

Puis remplacez la première ligne :

#!/bin/sh

par

#!/bin/bash

Vous pouvez aussi recopier le script dans /usr/local/bin pour pour lancer FarCry en tapant "farcry" dans une console :

sudo cp farcry /usr/local/bin/

Et voilà ça marche !! Avec les vidéos et en plein-écran !!! :)


Si par la suite vous voulez jouer sur internet ou corriger des bugs graphique, vous pouvez essayer d'installer le patch 1.33 ⇒ 1.4 ou 1.X ⇒ 1.4. (Apparemment le patch 1.33 ⇒ 1.4 ne fonctionne pas, essayer directement l'autre). N'essayez pas d'installer un patch si tout marche déjà correctement, car cela peut toujours poser problème…

Manuelle

Wine doit être configuré (avec winecfg), choisir dans les options d'affichage émuler un bureau virtuel.

Créer le fichier DirectX9c.reg dans le répertoire ~/.wine/drive_c/ avec comme contenu:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX]
"InstalledVersion"=hex:00,00,00,09,00,00,00,00
"Version"="4.09.00.0904"

Enregistrer la clé de registre crée ci-dessus (pour simuler la présence de DirectX9c).

cd  ~/.wine/drive_c/
regedit DirectX9c.reg

Si besoin insérer le média d'installation de Far Cry
Dans la ligne suivante remplacer "/media/cdrom0" par le chemin du média d'installation.

cd  /media/cdrom0

Pendant l'installation, choisir la langue, accepter la licence Crytek, (de préférence, pas testé) ne pas changer le chemin d'installation, (décocher les raccourcis,) décocher l'installation d'Acrobat Reader et de DirectX, si demandé accepter les termes du contrat de licence de DirectX (celui-ci ne sera pas installé grâce à la clé de registre enregistrée précédemment).
Le temps d'installation de Far Cry peut sembler assez long…

wine setup.exe

A la fin de l'installation tuer le serveur wine. ( Ouvrir un terminal )

wineserver -k

Modifier chaque ligne suivante du fichier system.cfg dans le répertoire Far Cry.

i_direct_input = "1"
r_Driver = "Direct3D9"
r_Fullscreen = "1"

par la ligne correspondante

i_direct_input = "0"
r_Driver = "OpenGL"
r_Fullscreen = "0"

Dans le répertoire Bin32 remplacer le fichier FarCry.exe par la version No CD.

Installation d'un patch

Télécharger la version cumulative du patch et la placer dans le répertoire ~/.wine/drive_c/

cd  ~/.wine/drive_c/

Remplacer dans la ligne suivante le nom du patch par celui présent.
Pendant l'installation accepter sans changement les propositions faites.
Une erreur peut apparaîte à la fin de l'installation, ne pas en tenir compte.

wine far_cry_v1.4_cumulative.exe

A la fin de l'installation tuer le serveur wine.

wineserver -k

Problème de souris rencontré pendant le jeu, la souris ne semble pas fonctionner.
Avec l'arrivée du patch 1.4 Far Cry, le support des joypads a été ajouté.
Le fichier game.cfg généré automatiquement par Far Cry peut être configuré pour gérer le jeu par joypad par défaut au lieu de le gérer par souris.
Pour régler le problème, modifier chaque ligne suivante du fichier game.cfg dans le répertoire Far Cry.

Input:BindAction("TURNLR", "joy_rstick_ud", "binozoom", 0);
Input:BindAction("TURNUD", "joy_rstick_lr", "binozoom", 0);
Input:BindAction("TURNLR", "joy_rstick_ud", "default", 0);
Input:BindAction("TURNUD", "joy_rstick_lr", "default", 0);
Input:BindAction("TURNLR", "joy_rstick_ud", "vehicle", 0);
Input:BindAction("TURNUD", "joy_rstick_lr", "vehicle", 0);
Input:BindAction("TURNLR", "joy_rstick_ud", "zoom", 0);
Input:BindAction("TURNUD", "joy_rstick_lr", "zoom", 0);

par la ligne correspondante

Input:BindAction("TURNLR", "maxisx", "binozoom", 0);
Input:BindAction("TURNUD", "maxisy", "binozoom", 0);
Input:BindAction("TURNLR", "maxisx", "default", 0);
Input:BindAction("TURNUD", "maxisy", "default", 0);
Input:BindAction("TURNLR", "maxisx", "vehicle", 0);
Input:BindAction("TURNUD", "maxisy", "vehicle", 0);
Input:BindAction("TURNLR", "maxisx", "zoom", 0);
Input:BindAction("TURNUD", "maxisy", "zoom", 0);

Si le problème persiste modifier également ces lignes dans les fichiers game.cfg rencontrés sous l'arborescence Far Cry\Profiles.

Optimisation et astuces

Problème de son (crachotements)

Aller dans les Options Audio de Far Cry et cocher:

      Mode compatible (redémarrage)
      A utiliser si problèmes audio.
Lancement sous Debian (Etch)

Si le jeu ne se lance pas :Erreur de segmentation (si besoin relancer le serveur X [CTRL]+[ALT]+[SUP]) essayer

strace /usr/lib/wine/wine.bin "C:\Program Files\Ubisoft\Crytek\Far Cry\Bin32\FarCry.exe" 2>/dev/null

Pour la version installée avec le dépôt winehq

strace wine "C:\Program Files\Ubisoft\Crytek\Far Cry\Bin32\FarCry.exe" 2>/dev/null
Pointeur souris figée

Si le pointeur de la souris reste figé au milieu de l'écran
Configurer wine avec un bureau virtuel, noter la définition (ex: 800X600)

winecfg

Configurer la résolution de Far Cry en reportant la résolution définie dans wine

gedit ~/.wine/drive_c/Program\ Files/Ubisoft/Crytek/Far\ Cry/system.cfg

dans les paramètres r_Height = "600" et r_Width = "800"

Problème de triangles noirs (bug d'affichage)

Far Cry permet de monter toute la configuration en très élevé, mais il m'a fallu descendre la qualité des éclairages en élevé pour ne pas avoir de bugs.

Options configuration graphiques

Supprimez le fichier "system.cfg" dans le dossier farcry/ et relancez le jeu. Vous pourrez alors configurer le jeu en détail, et si vous le désirer éditer les petites lignes manuellement avec des explications (allez dans Vidéo ⇒ Personnaliser).

Attention tout de même, vous ne pourrez changer Direct3D, il va falloir lancer le jeu une fois, le quitter, éditer le fichier system.cfg manuellement et mettre "OpenGL" au lieu de "Direct3D".

Sauvegardes incompatibles

Attention : les sauvegardes de la version 1.0 à 1.2 ne sont pas compatibles avec la 1.3 et supérieur.

Mode triche

Un mode bien pratique, notamment si vos sauvegardes ont été effacées/perdues :

Il faut faire en sorte de lancer FarCry.exe avec l'option "-DEVMODE". Pour le script de Loki par exemple, il faut éditer le fichier "farcry" (dans le dossier d'installation) et dans la ligne 9, faire comme ceci :

GAME_BINARY="FarCry.exe -DEVMODE"
Touche Effet
P toutes les armes à feu
O 999 munitions pour l'arme actuellement sélectionnée
F2 point de contrôle suivant de la mission
F3 "mode vol", avec les collisions
F4 "mode vol", sans les collisions

- Pour avoir des vies en nombre illimité : Ouvrez la fenêtre de la console en pressant la touche "exposant 2" (le petit 2 situé à gauche du "1" au-dessus du "A". Pressez simultanément les trois touches suivantes de votre clavier : "CTRL" (en bas à gauche) "Alt" (deux touches à droite de "CTRL") "#" (la touche du chiffre "3", au-dessus des lettres "Z" et "E") Normalement, le signe "#" devrait apparaître. Tapez ensuite "god=1". Vous devriez donc lire : #god=1

Pressez la touche "ENTREE" de votre clavier. Faites disparaître la fenêtre de la console en pressant la touche "exposant 2" (le petit 2 situé à gauche du "1" au-dessus du "A". Normalement, vous devriez lire "GOD 0" en haut à gauche sur votre écran.

Extrait de la FAQ officielle.

Problèmes rencontrés

Ici les problèmes n'ayant pas de solutions…

Problème d'océan qui n'apparait pas

J'ai ce bug avec ma ATI9600XT (pilotes proprios, voir screen), j'ai tout essayer (EDIT: et je viens de réessayer de trafiquer pendant plus de 5h…) en vain pour le résoudre (configuration, patch 1.4…), mais rien n'y fais. Si vous avez une solution, éditez ce paragraphe !!

La souris

La molette de la souris fait planter le jeu. Il semblerait que le patch 1.4 en soit la cause. Peut-être une prochaine mise à jour de Wine corrigera-t-elle le bug… à moins d'un prochain patch compatible !

Configuration systèmes testés

Bureau Noyau Version Wine Test Commentaires
Gnome 2.6.39 Debian Wheezy 1.3.28 Ok Fonctionne très bien en suivant le guide de l'installation manuelle (et surtout en utilisant OpenGL). DirectX cause des problèmes de clavier et souris.
Gnome 2.6.22 Gutsy Gibbon 0.9.50 Ok Marche parfaitement (rectangles noirs présents, pas trop génant mais certainement dûs à une mauvaise configuration…)
Gnome 2.6.20 Feisty Fawn 0.9.41 Ok Marche parfaitement
Gnome 2.6.18 Debian Etch 0.9.40 Ok
Gnome 2.6.18 Debian Etch 0.9.25 Ok voir optimisation et astuces
Gnome 2.6.20 Feisty Fawn 0.9.36 OK Installation par script sans soucis. Mode plein-écran OK
Graphiquement, quelques petits soucis : ATI9600XT (pilote proprio)
Gnome 2.6.20 Feisty Fawn 0.9.36 OK Tout fonctionne à fond les ballons sur C2D E6300 + 7600GT + 1Go RAM en 1280x1024 :)
KDE 2.6.15-27 Dapper Drake 0.9.25 Ok Suite à un boot ne se lance qu'une fois puis crash X
KDE 2.6.17-10 Edgy Eft 0.9.25 Ko Problème de noyau à confirmer

Captures d'écran

pendant une partie multijoueur

Connexion au serveur Durant le jeu

Ressources

Script d'installation

Créer un fichier texte et y coller le script. Attention à bien enregistrer votre fichier au format UTF-8 pour éviter les problèmes d'accents.

#!/bin/sh
 
# Install Farcry
# version 0.6
# par cbz
 
# gksu (Debian) ou gksudo (Ubuntu)
if [ "`cat /etc/debian_version`" = "" ]; then
	gks="gksudo"
	versionwine="Wine 0.9.24"
	tversionwine="Wine "
else
	gks="gksu"
	versionwine="wine-0.9.24"
	tversionwine="wine-"
fi
if [ -a /usr/lib/wine/wineserver ]; then
	wineserv="/usr/lib/wine/wineserver"
else
	wineserv="wineserver"
fi
 
# (Dépendances: zenity, cabextract, sed, wine)
if ! [ "`dpkg -s zenity | grep 'Status:'`" = "Status: install ok installed" ]; then
{
    #Recherche du paquet zenity dans les dépôts
    $gks --message "Installation du paquet Zenity nécessaire pour continuer l'installation." apt-get update
    if [ "`apt-cache search --names-only zenity`" = "" ]; then
        echo "Le paquet zenity n'est pas présent.
Installation annulée."
        exit 1
    else
        #Installation de zenity
        $gks apt-get install zenity
        if ! [ "`dpkg -s zenity | grep 'Status:'`" = "Status: install ok installed" ]; then
            echo "Le paquet zenity n'est pas présent.\nInstallation annulée."
            exit 1
        fi
    fi
}
fi
 
#Dépendance cabextract
if ! [ "`dpkg -s cabextract | grep 'Status:'`" = "Status: install ok installed" ]; then
    #Recherche du paquet cabextract dans les dépôts
    $gks --message "L'installation du paquêt cabextract est nécessaire." apt-get update
    if [ "`apt-cache search cabextract`" = "" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Le paquet cabextract n'est pas présent.\nInstallation annulée."
        exit 1
    else
        #Installation de cabextract
        $gks --message "L'installation du paquêt cabextract est nécessaire." apt-get install cabextract
        if ! [ "`dpkg -s cabextract | grep 'Status:'`" = "Status: install ok installed" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Le paquet cabextract n'est pas présent.\nInstallation annulée."
            exit 1
        fi
    fi
fi
 
#Dépendance sed
if ! [ "`dpkg -s sed | grep 'Status:'`" = "Status: install ok installed" ]; then
    #Recherche du paquet sed dans les dépôts
    $gks --message "L'installation du paquêt sed est nécessaire." apt-get update
    if [ "`apt-cache search sed`" = "" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Le paquet sed n'est pas présent.\nInstallation annulée."
        exit 1
    else
        #Installation de cabextract
        $gks --message "L'installation du paquêt sed est nécessaire." apt-get install sed
        if ! [ "`dpkg -s sed | grep 'Status:'`" = "Status: install ok installed" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Le paquet sed n'est pas présent.\nInstallation annulée."
            exit 1
        fi
    fi
fi
 
 
# Prérequis Wine
if [ ! "`dpkg -s wine | grep 'Status:'`" = "Status: install ok installed" ]; then
    #Verifie si le paquet wine est installé
    zenity --title="Installation Far Cry" --error \
           --text="Wine ne semble pas être installé.\nInstallation annulée."
    exit 1
fi
 
#Verifie si wine est configuré (existence du répertoire ~/.wine/drive_c)
if ! [ -d ~/.wine/drive_c ]; then
    zenity --title="Installation Far Cry" --question \
           --text="Wine ne semble pas être configuré (~/.wine/drive_c absent).\nVoulez vous lancer Wine Config?"
    if [ "$?" = "0" ]; then
        winecfg 2>~/winecfg.log
    fi
    if ! [ -d ~/.wine/drive_c ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Wine ne semble pas avoir été configuré.\nInstallation annulée."
        exit 1
    fi
fi
 
# Vérifie la version de wine (>=0.9.25 bon support de l'installation par msi)
if ! [ "`wine --version 2>/dev/null | grep -i "$tversionwine"`" \> "$versionwine" ]; then
    zenity --title="Installation Far Cry" --error \
           --text="Version de wine obsolète (`wine --version 2>/dev/null`).\nVeuillez faire la mise à jour de wine avec une version >= 0.9.25."
    exit 1
fi
 
#Vérifie si le répertoire ~/.wine/drive_c est accessible en écriture
if ! [ -w ~/.wine/drive_c ]; then
    zenity --title="Installation Far Cry" --error \
           --text="Le répertoire racine du lecteur C (~/.wine/drive_c) ne permet pas un accès en écriture.\nInstallation annulée."
    exit 1
fi
 
 
zenity --title="Installation Far Cry" --info \
       --text="Ce programme est un installeur pour Far Cry.\n\nIl nécessite:\n-Un média d'installation de Far Cry.\n-Une clé de Far Cry valide.\n-Un patch cumulatif récent de Far Cry.\n-Un exécutable No CD de Far Cry\n-Les options vidéos de Wine configurés pour émuler un bureau virtuel.\n\nLors de l'installation, vous serez peut-être amener à clore manuellement la fenêtre wine desktop."
 
# Sélection du média d'installation de Far Cry
flag=1
while [ "$flag" = "1" ]; do
    media_farcry=`zenity --title="Sélectionner le média d'installation de Far Cry" --file-selection --directory`
    if [ "$?" != "0" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Installation annulée."
        exit 1
    fi
    # Verification du média d'installation de Far Cry
    if ! [ -e "$media_farcry/Far Cry.msi" ]; then
        zenity --title="Installation Far Cry" --info \
               --text="Identification du média d'installation de Far Cry échouée.\nSi besoin veuillez insérer le DVD d'installation."
    else
        flag=0
    fi
done
 
# Sélectionner du patch Far Cry à installer
flag=1
while [ "$flag" = "1" ]; do
    patch_farcry=`zenity --title="Sélectionner du patch Far Cry à installer" --file-selection`
    if [ "$?" != "0" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Installation annulée."
        exit 1
    else
        flag=0
    fi
done
 
# Sélectionner de l'exécutable Far Cry No CD
flag=1
while [ "$flag" = "1" ]; do
    exeNoCD_farcry=`zenity --title="Sélectionner de l'exécutable Far Cry NoCD" --file-selection`
    if [ "$?" != "0" ]; then
        zenity --title="Installation Far Cry" --error \
               --text="Installation annulée."
        exit 1
    else
        flag=0
    fi
done
 
echo "Installation de clés de registre pour simuler la présence de DirectX9c."
#Installation des clés de registres
mkdir -p ~/.wine/drive_c/Program\ Files/Ubisoft/Crytek/Far\ Cry/
cd ~/.wine/drive_c/Program\ Files/Ubisoft/Crytek/Far\ Cry/
# DirectX9c.reg
echo 'Windows Registry Editor Version 5.00' >>DirectX9c.reg
echo '' >>DirectX9c.reg
echo '[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX]' >>DirectX9c.reg
echo 'InstalledVersion=hex:00,00,00,09,00,00,00,00' >>DirectX9c.reg
echo 'Version="4.09.00.0904"' >>DirectX9c.reg
# Mise à jour de la base de registre
regedit DirectX9c.reg
 
# Installation de Far Cry
echo "Installation de Far Cry."
# installation de Far Cry
echo $media_farcy
cd "$media_farcry/"
wine setup.exe
$wineserv -k
 
# Installation du patch Far Cry
echo "Installation du patch Far Cry."
# installation du patch Far Cry (lancer avec wine via un lien symbolique)
ln -s "$patch_farcry" ~/.wine/drive_c/patch.exe
wine ~/.wine/drive_c/patch.exe 2>~/.wine/drive_c/patch_farcry.log
$wineserv -k
rm ~/.wine/drive_c/patch.exe
 
cd ~/.wine/drive_c/Program\ Files/Ubisoft/Crytek/Far\ Cry/
 
# Copie de l'exécutable Far Cry No CD
mv ./Bin32/FarCry.exe ./Bin32/original_FarCry.exe
cp "$exeNoCD_farcry" ./Bin32/
 
# Exécution du programme de configuration de Far Cry 
zenity --title="Installation Far Cry" --info \
       --text="Le programme de configuration de Far Cry va être exécuté.\nRenseigner un mode graphique compatible avec le mode défini dans wine."
wine ./Bin32/FarCryConfigurator.exe
$wineserv -k
 
#Force openGL et un mode fenêtre dans le fichier system.cfg de Far Cry
for namecfg in `find . -name '*system.cfg' -type f`;do
    sed -i 's/r_Driver = "Direct3D9"/r_Driver = "OpenGL"/g' $namecfg;
    sed -i 's/r_Fullscreen = "1"/r_Fullscreen = "0"/g' $namecfg;
    sed -i 's/i_direct_input = "1"/i_direct_input = "0"/g' $namecfg;
done
#r_TexResolution = "0"
 
#Force l'utilisation de la souris à la place du pad
cp ./Profiles/defaults/french/game.cfg .
for namecfg in `find . -name '*game.cfg' -type f`;do
    sed -i 's/Input:BindAction("TURNLR", "joy_rstick_ud", "binozoom", 0);/Input:BindAction("TURNLR", "maxisx", "binozoom", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNUD", "joy_rstick_lr", "binozoom", 0);/Input:BindAction("TURNUD", "maxisy", "binozoom", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNLR", "joy_rstick_ud", "default", 0);/Input:BindAction("TURNLR", "maxisx", "default", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNUD", "joy_rstick_lr", "default", 0);/Input:BindAction("TURNUD", "maxisy", "default", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNLR", "joy_rstick_ud", "vehicle", 0);/Input:BindAction("TURNLR", "maxisx", "vehicle", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNUD", "joy_rstick_lr", "vehicle", 0);/Input:BindAction("TURNUD", "maxisy", "vehicle", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNLR", "joy_rstick_ud", "zoom", 0);/Input:BindAction("TURNLR", "maxisx", "zoom", 0);/g' $namecfg;
    sed -i 's/Input:BindAction("TURNUD", "joy_rstick_lr", "zoom", 0);/Input:BindAction("TURNUD", "maxisy", "zoom", 0);/g' $namecfg;
done
 
zenity --title="Installation Far Cry" --info \
       --text="Installation de Far Cry terminée.\n\nBon frag !!!"
 
exit 0



Contributeurs : cbz Guguscat adam0509