Mises à jour de Theme Hospital

Theme Hospital est un jeu abandonware développé par Bullfrog en 1997. Puisqu'il est abandonware il est disponible au téléchargement sur des sites tels que Lost treasure FR Abandonware France. Comme tous les jeux de grande qualité, il n'échappe pas à de nombreux bugs. Un patch officiel a été édité corrigeant la plus grande partie des bugs et il est devenu assez stable sur la système d'origine : Windows 95. (On recense quelques problèmes de compatibilité avec les versions les plus récentes de Windows) Il est devenu stable, en tout cas, pour ce qui concerne la version originale, car les versions traduites comportent des bugs spécifiques.

FichierTailleEmplacementRequiertdescription
THPatch.rar 8 928 Ko . Installation Moyenne ou Complète + Patch Officiel Patch intégral (Contient les deux autres et les améliorations de DragonsLover)
LANG-1.DAT 94 Ko Data/LANG-1.DAT Installation Moyenne ou Complète + Patch Officiel Corrige uniquement le bug du niveau 5
Hospital.exe 1 050 Ko Hospital.exe Patch Officiel + Protocole IPX Corrige uniquement la détéction du mode réseau IPX pour Direct Play

Pour plus de détail sur l'installation des mise à jour ou la description technique du bug, vous pouvez vous référez aux sections correspondantes :

Vous pouvez nous contacter par e-mail :

Bug du niveau 5

Description de la mise à jour

N'importe quel joueur de Theme Hospital connaît le bug de Theme Hospital baptisé "Bug du niveau 5". C'est un bug effectivement courant au niveau 5 du jeu Theme Hospital, mais présent aussi dans les niveaux suivants. Lorsqu'il survient, le jeu s'arrête et retourne à Windows. De nombreuses solutions ont été proposées pour résoudre le problème, mais aucune n'est réellement satisfaisante. Cette page propose une solution alternative sans inconvénients : la mise à jour du jeu supprimant le bug.

Installation de la mise à jour

Le programme d'installation de Theme Hospital propose trois types d'installation : "Minimum", "Moyenne", et "Complète". Pour pouvoir mettre à jour Theme Hospital, il faut que l'installation soit "Moyenne" ou "Complète". Le jeu doit être mis à jour par le patch officiel. Certaines distributions abandonwares du jeu sont distribuées déjà patchées. Une version patchée s'identifie facilement notamment par la présence d'un mode de jeu en réseau. Une fois le jeu installé et patché, il suffit de remplacer le fichier data/LANG-1.DAT par le fichier suivant :

FichierTailleEmplacementRequiertdescription
LANG-1.DAT 94 Ko Data/LANG-1.DAT Installation Moyenne ou Complète + Patch Officiel Corrige le bug du niveau 5

Description technique du bug

Le plus surprenant dans ce bug c'est qu'il ne survient que sur la version française. Or pour passer de la version originale à la version française, les sites d'abandonwares proposaient simplement de changer un seul fichier, contenant des données textuelles. Comment du texte peut il provoquer une erreur dans le jeu ?

Le bug avait déjà été décrit depuis longtemps comme une erreur survenant dans le jeu lorsqu'un interne devenait médecin suite à sa formation. En comparant le fichier de langue de la version originale au fichier de la version française voici ce que l'on trouve :

One of your JUNIORS has become a DOCTOR.
Un des médecins est devenu %s.

Cette dernière phrase est celle utilisée à juste titre lors de la spécialisation d'un médecin en "Psychiatre", "Chercheur" ou "Chirurgien". Mais elle est inadaptée à la promotion du médecin. Ceux qui connaissent un peu la fonction C sprintf auront tout de suite vu que le %s signifie "insérer ici un paramètre". Ce paramètre est fourni par le programme lors de l'exécution. Mais puisque ce paramètre n'existe pas dans la version originale, le programme n'en fournira pas non plus pour la version française. Et le passage d'un nombre insuffisant de paramètres à sprint a un comportement généralement indéterminé. Ici le résultat est l'arrêt du programme.

Le fichier proposé ici est donc le fichier original dans lequel la phrase mal traduite a été remplacée par :

L'un de vos INTERNES est devenu MEDECIN.

Bug de détection du réseau IPX pour DirectPlay

Description de la mise à jour

Le patch officiel de Theme Hospital active le mode "jeu en réseau". Les modes "IPX pour Directplay", "IPX", "Câble série" et "Modem" sont proposés. Les deux derniers sont devenus très peu courant et peu pratiques. De plus il est impossible par ces méthodes de jouer à plus de deux joueurs simultanément. Les deux premiers, en revanche, peuvent être utilisés sur un réseau local sans restriction. Pour jouer sur internet il suffit de simuler un réseau local en utilisant un réseau privé virtuel. (VPN) La création d'un réseau privé virtuel est possible grâce à des logiciels comme Hamachi.

Néanmoins, sur les versions non anglophones de windows la détection du protocole IPX par Theme Hospital ne fonctionne pas. Sur ces systèmes le jeu en réseau est alors quasiment inutilisable.

Installation de la mise à jour

Le jeu doit être mis à jour par le patch officiel. Certaines distributions abandonwares du jeu sont distribuées déjà patchées. Le patch rend accessible le mode réseau : dès qu'on peut accéder au panneau de jeu en réseau, c'est que le jeu est patché. Le mode réseau est accessible depuis le menu principal en cliquant au centre du crâne représenté sur le schéma. S'il n'est pas possible de cliquer au centre du crâne c'est que la version du jeu n'est pas patchée.

Pour jouer en utilisant le protocole IPX, celui-ci doit être installé. L'installation varie un peu d'une version de windows à une autre. Sous windows 95, le protocole est systématiquement installé. Sur les versions plus récentes, il faut l'installer manuellement. Il faut accéder aux propriétés d'une connexion réseau. On peut obtenir la liste des connexions réseau dans les propriétés des "Favoris réseau" ou à partir du panneau de configuration. Une fois le panneau de propriétés d'une connexion ouvert, dans le premier onglet appelé "Général" est affichée une liste des protocoles et services installés. Si le protocole IPX n'est pas dans la liste, (Protocole de transport compatible NWLing IPX/SPX/NetBIOS) cliquez sur "Installer..." choisissez "Protocole" puis le protocole IPX dans la liste.

Enfin, il faut remplacer l'exécutable "Hospital.exe" par le fichier que vous pouvez télécharger ici. Assurez vous avant de faire ce remplacement que le jeu a bien été patché auparavant. (Que le mode réseau est disponible)

FichierTailleEmplacementRequiertdescription
Hospital.exe 1 050 Ko Hospital.exe Patch Officiel + Protocole IPX Corrige la détéction du mode réseau IPX pour Direct Play IPX

Pour jouer en réseau avec ce patch, il suffit de cliquer sur DPlayIPX. Si une fenêtre s'affiche avec la possibilité de créer ou rejoindre une partie, c'est que la mise à jour est correctement effectuée. Si vous avez manqué l'une des étapes alors un message indiquera qu'il n'y a pas de réseau IPX.

La détection des parties créés, la connexions à une partie et le jeu en lui même peuvent connaître des problèmes. Ils ne seront alors pas lié au patch, mais probablement à la configuration du réseau local.

Limitation

Le protocole IPX n'est plus supporté à partir de Windows Vista, d'après une annonce de Microsoft. C'est un coup dur pour les amateurs d'abandonwares qui utilisent Windows. Il est néanmoins possible d'installer le protocole IPX en utilisant des librairies fournies par des sites tiers. Cependant, ces méthodes ne permettent généralement pas la détection du protocole IPX par DirectPlay. Le patch sera alors insuffisant pour ce système

J'ai abandonné ma recherche d'une solution pour Vista en même temps que j'ai abandonné Vista pour repasser à une version plus ancienne du système.

Description technique du bug

Theme Hospital utilise DirectX 5, mais des fonctions de DirectPlay 2 qui ont été dépréciée après DirectX 3. Les références de ces versions de DirectX sont difficiles à trouver sur internet. Pour détecter le protocole IPX, Theme Hospital utilise la fonction DirectPlayEnumerate qui permet d'énumérer les connexions et compare les noms des connexions avec la chaîne IPX Connection For DirectPlay. Dès qu'elle est trouvée, la connexion est retenue pour le jeu en réseau.

Le problème est que la chaîne utilisée pour la comparaison n'est pas un nom permettant d'identifier clairement le type d'une connexion mais est une description de la connexion à l'intention de l'utilisateur/du joueur. Cette chaîne est donc traduite dans le langage de l'utilisateur. Dans la version française de Windows Connexion IPX pour DirectPlay. Le jeu échoue alors à comparer cette description française à la description anglaise.

La fonction utilisée pour la comparaison est une recherche de sous chaîne et non l'égalité des deux chaînes. Le correctif remplace l'espace après IPX par un caractère nul. L'effet est donc que le programme recherche parmi les descriptions de connexions celles qui contiennent IPX.

Une autre manière de corriger le problème est peut être de modifier directement les descriptions dans la base de registre par les descriptions anglaises.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectPlay\Service Providers\IPX Connection For DirectPlay]
"DescriptionA"="IPX Connection For DirectPlay"
"DescriptionW"="IPX Connection For DirectPlay"

Sous Windows 95 ces clés de description ne sont pas présentes. Il est possible alors que le nom de la connexion soit directement utilisé. Comme le nom de la connexion n'est pas traduit, cela expliquerait que le jeu fonctionne sur une version française de Windows 95.

Autres améliorations (par DragonsLover)

Description des améliorations

En utilisant un utilitaire qui permet de lire/remplacer les sons de Theme Hospital, j'ai constaté, à ma grande surprise, que des sons inédits étaient présents dans la version anglaise du jeu que l'on ne pouvait pas retrouver dans les autres langues du jeu. De plus, j'ai constaté que quelques annonces de la réceptionniste étaient légèrement incorrectes, en particulier concernant le message qui disait qu'un médecin chercheur était attendu an salle d'électrolyse alors qu'un médecin ordinaire pouvait suffire, ou encore, l'appel de service de l'arrivé de patients victimes d'un « brise-cœur ». J'ai également constaté un drôle de bug par rapport à des emplacements erronés dans le fichier des sons sur certains appels de la réceptionniste, notamment au sujet des messages d'excuses ou aux appels de maintenance. Malheureusement, dans ce dernier cas, j'ai découvert que seuls 5 appels de maintenance fonctionnent, les autres étant muets pour une raison inconnue.

Également, en fouillant un peu parmi les fichiers de script des niveaux du jeu, j'ai remarqué qu'un nouveau cas à traiter n'était jamais utilisée dans le jeu : les patientes en état de Grossesse, qu'il faudra traiter à la salle d'opération. Un patch existait déjà pour rendre disponible cette nouveauté, mais uniquement de façon ordinaire (avec les patientes entrant par les portes d'entrées de l'hôpital). Ici, j'ai légèrement modifié cela pour les obtenir également en urgence dans certains niveaux.

Installation des améliorations

Pour profiter de ces améliorations, il faut avoir effectué une installation "Moyenne" ou "Complète" du jeu. Également, le jeu doit être mis à jour par le patch officiel du jeu. Une fois cela fait, remplacez le fichier Sound-1.dat contenu dans le répertoire Sound du jeu par celui que nous vous offrons pour améliorer considérablement les sons, et remplacez quelques fichiers .SAM contenu dans le répertoire Levels par ceux que nous vous offrons pour obtenir les patientes en état de Grossesse (même lors de certaines parties multijoueurs).

Amusez-vous bien !
Valid XHTML 1.0 Strict Valid CSS !