SimCity 2000 enfin réparé sur les Windows récents !

par Manu -

Vous n’imaginez pas la joie qui m’envahit en écrivant cet article car en tant que fan inconditionnel de SimCity 2000 depuis mes années collège (et oui, ça ne me rajeunit pas), j’ai une excellente nouvelle à vous annoncer : le développeur Araxestroy vient de créer sc2kfix, une DLL magique qui permet de faire tourner SimCity 2000 Edition Spéciale parfaitement sur les Windows modernes. C’est à se demander pourquoi je ne suis pas encore devenu maire de mon patelin avec toutes ces heures passées à construire des villes virtuelles ! 😄

Si comme moi vous avez déjà essayé de relancer SimCity 2000 sur votre PC récent, vous avez sûrement rencontré deux problèmes majeurs :

  1. Les animations sont complètement figées : les lumières ne clignotent plus, l’eau ne bouge plus… Bref, votre ville ressemble à une photo plutôt qu’à une métropole vivante.
  2. Et le jeu a tendance à planter lors de l’utilisation des boîtes de dialogue de sauvegarde/chargement. Et y’a rien de plus frustrant que de perdre sa partie à cause d’un simple bug !

Le développeur Araxestroy a donc créé une solution particulièrement élégante. Plutôt que de modifier l’exécutable du jeu (ce qui pose souvent des problèmes de compatibilité), il a développé une DLL qui se charge en mémoire et corrige les bugs à la volée. C’est propre, c’est élégant, et surtout ça marche !

Le principe est simple :

  1. Vous téléchargez le fichier winmm.dll depuis la dernière version sur GitHub
  2. Vous copiez ce fichier dans le même dossier que votre simcity.exe
  3. Vous prévenez vos amis, collègues et familles que vous allez disparaitre pendant plusieurs heures
  4. Et vous lancez le jeu

Et voilà ! Si les lumières sur l’écran de démarrage sont animées, c’est que tout fonctionne correctement.

La DLL apporte plusieurs améliorations majeures :

  • Restauration des animations par palette : Les animations basées sur le swapping de palette (technique typique des années 90) fonctionnent à nouveau parfaitement
  • Correction des crashs : Plus de plantage lors de l’utilisation des boîtes de dialogue de sauvegarde/chargement
  • Support des hautes résolutions : Le jeu tourne désormais parfaitement même sur les écrans modernes
  • Suppression des avertissements inutiles : Plus de message agaçant concernant le mode 256 couleurs

Et pour les dévs qui me lisent, voici comment fonctionne la magie sous le capot. La DLL utilise deux techniques principales :

  1. Injection de code en mémoire : Au lieu de modifier le fichier .exe, sc2kfix injecte ses corrections directement dans la mémoire du processus au démarrage.
  2. Redirection des appels système : La DLL intercepte certains appels Windows et les modifie pour restaurer le comportement original du jeu.

Avant sc2kfix, la principale solution était SC2KRepainter de Guspaz. Bien que fonctionnelle, cette approche avait quelques effets secondaires comme un rafraîchissement forcé de toute la fenêtre, la disparition des prix pendant le drag & drop et des performances moins optimales.

Bref, en tant que joueur invétéré de SimCity 2000, je peux vous dire que cette correction change complètement l’expérience de jeu. Voir à nouveau les animations fonctionner comme à la grande époque de la sortie du jeu, c’est tout simplement trop cooool. Et au passage, avoir une meilleure stabilité est également un énorme plus. Plus besoin de sauvegarder comme un sauvage sa partie toutes les 2 minutes !

Source