Tout d'abord, il faut disposer d'un jeu déjà installé. Je ne suis pas parvenu à faire fonctionner l'installer de RA3 sous wine (1.1.26)... Il crash directement après avoir sélectionné le répertoire d'installation en balancant l'erreur suivante :

err:menubuilder:init_xdg error looking up the desktop directory
fixme:advapi:LookupAccountNameW (null) L"ctabin" (nil) 0x33f85c (nil) 0x33f860 0x33f854 - stub
fixme:advapi:LookupAccountNameW (null) L"ctabin" 0x129d58 0x33f85c 0x15f480 0x33f860 0x33f854 - stub
fixme:msi:msi_unimplemented_action_stub MigrateFeatureStates -> 2 ignored L"Upgrade" table values
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:seh:raise_exception Exception frame is not in stack limits => unable to dispatch exception

Du coup, impossible d'installer "proprement" le jeu, mais il est possible de le faire fonctionner avec un répertoire contenant l'installation du jeu (copié-collé depuis Windows). A noter que sous Ubuntu l'installer marche correctement et les étapes ci-dessous ne sont pas nécessaires, excepté la dernière.

Si on essaie de lancer bêtement le jeu en exécutant la commande wine RA3.exe, un message nous dit "please install at least one language pack" et ça s'arrête la... Pour résoudre ce premier souci, il suffit de lancer la commande wine regedit. screenshot-22.07.09-08_51_09.png

Ensuite, Il faut créer les clés de registre suivantes :

# HKEY_CURRENT_USER\Software\Electronic Arts\Electronic Arts\Red Alert 3
  - variable 'Language', de type String avec la la valeur 'english'.

# HKEY_LOCAL_MACHINE\Software\Electronic Arts\Electronic Arts\Red Alert 3
  - variable 'UseLocalUserMaps, de type DWORD avec la valeur 0
  - variable 'UserDataLeafName' de type String avec la valeur 'Red Alert 3'
  - variable 'ProfileFolderName' de type String avec la valeur 'Profiles'

# HKEY_LOCAL_MACHINE\Software\Electronic Arts\Electronic Arts\Red Alert 3\ergc

En relancant le jeu, le pavé d'erreur suivante remonte :

fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762)
err:module:import_dll Library MSVCR80.dll (which is needed by L"Z:\\mnt\\ehd1\\Games\\Red Alert III\\Data\\ra3_1.4.game") not found
err:module:import_dll Library MSVCP80.dll (which is needed by L"Z:\\mnt\\ehd1\\Games\\Red Alert III\\Data\\ra3_1.4.game") not found
err:module:import_dll Library MSVCR80.dll (which is needed by L"Z:\\mnt\\ehd1\\Games\\Red Alert III\\Data\\ra3_1.4.game") not found
err:module:import_dll Library MSVCP80.dll (which is needed by L"Z:\\mnt\\ehd1\\Games\\Red Alert III\\Data\\ra3_1.4.game") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\mnt\\ehd1\\Games\\Red Alert III\\Data\\ra3_1.4.game" failed, status c000013

C'est qu'il manque des librairies nécessaires à RA3 pour tourner. Après moultes recherches, voici les commandes à exécuter :

wget http://www.kegel.com/wine/winetricks
chmod +x winetricks
./winetricks dotnet20 vcrun2005 vcrun2005sp1 d3dx9

Après avoir installé tout ceci, le jeu se lance correctement. Toutefois, dans les settings, il faut mettre toutes les qualités à low, sinon le jeu n'arrive pas à lancer la partie. Je ne sais pas si c'est du à ma carte graphique ou à wine lui-même...

L'étape suivante est obligatoire (sous Gentoo et Ubuntu) pour pouvoir jouer en réseau. Sans cela, il y aura toujours un message "Connection timeout" lorsqu'on tente de rejoindre une partie.

C'est assez simple : il faut éditer le fichier /etc/hosts pour mettre en premier l'adresse ip de l'ordinateur courant :

# NEEDED ENTRY FOR RA3
89.90.2.36     localhost thelinux

# default entries
127.0.0.1       localhost
::1             localhost
127.0.0.1       thelinux

Enfin, pour que le jeu fonctionne en multi-joueur, il faut le lancer avec un hack spécial (forum) en utilisant la ligne de commande suivante :

LD_PRELOAD="path/to/bind_hack.so" wine ./RA3.exe

Toutefois, attention à ne pas laisser le bind_hack.so sur une partition NTFS, car wine n'arrivera pas à le charger (du moins, ça ne marche pas avec ntfs-3g).

Après cela le jeu devrait être complètement fonctionnel !