Vue normale

Reçu aujourd’hui — 1 janvier 2026

Un bug de 20 ans dans GTA San Andreas refait surface avec Windows 11

Par :Korben
1 janvier 2026 à 08:53

Le Skimmer dans GTA San Andreas c'est ce petit hydravion qu'on pouvait chopper près de la mer pour faire du rase-mottes au-dessus de l'eau. Eh bien figurez-vous que ce truc cachait un défaut dans son code depuis... 20 ans. Un bug dormant qui est resté totalement invisible jusqu'à l'arrivée de Windows 11 24H2 en avril 2025.

Silent, le moddeur derrière SilentPatch , a publié une analyse technique sur ce bug zombie. En gros, quand vous essayez de spawn le Skimmer sur Windows 11 24H2, l'hydravion devient tellement gigantesque qu'il n'est même plus rendu à l'écran. Et si vous forcez CJ à monter dedans via la console, son altitude affichée explose à environ 1,087 quadrillion d'années-lumière. Beaucoup plus loin que n'importe quoi dans l'univers observable...

Le coupable c'est une ligne manquante dans le fichier vehicles.ide qui définit les paramètres des véhicules. Le Skimmer a été copié-collé depuis Vice City où il était classé comme bateau, donc pas besoin de définir les paramètres de roues. Sauf que dans San Andreas, quelqu'un l'a requalifié en avion... sans ajouter les 4 paramètres manquants pour les roues.

Du coup, le code qui charge les véhicules se retrouve avec des variables non initialisées. Pendant 20 ans, ça passait crème parce que ces variables récupéraient par hasard les bonnes valeurs laissées dans la pile mémoire par le véhicule précédent (un certain TopFun avec un wheel scale de 0.7). Le jeu était littéralement à 4 octets près de planter depuis 2004.

Et puis Microsoft a décidé de modifier la gestion interne des Critical Section Objects dans Windows 11 24H2. La fonction LeaveCriticalSection utilise maintenant plus d'espace dans la pile, ce qui écrase ces fameuses valeurs "héritées" par accident. Résultat, le wheel scale se retrouve corrompu avec une valeur de 3,73×10²⁹, les calculs de suspension partent en vrille, et hop, votre hydravion file vers Alpha du Centaure.

Comme quoi c'est pas pour rien que les devs bassinent tout le monde avec l'initialisation des variables. Le code de San Andreas ignorait probablement les warnings du compilateur depuis le début, et tout le monde s'en fichait parce que "ça marche". Jusqu'au jour où ça marche plus, bah ouais Morray !

La bonne nouvelle c'est que le fix est facile à faire. Soit vous éditez manuellement le fichier data\vehicles.ide pour ajouter les paramètres manquants au Skimmer, soit vous attendez la prochaine mise à jour de SilentPatch qui corrigera ça automatiquement. D'ailleurs, les versions Xbox et la Definitive Edition avaient déjà corrigé ce bug... sans le savoir.

Bref, 20 ans de code qui tourne sur une douzaine de versions de Windows différentes, et il aura fallu un changement apparemment anodin dans la gestion mémoire de Microsoft pour réveiller ce vilain bug dormant...

Source

❌