Le mystère des grandes statistiques dans l'OVNI: l'ennemi inconnu (1994)
La plupart d'entre nous, qui ont longtemps joué le bon vieux UFO: Enemy Unknown, ont rencontré (ou du moins connaissent) des cas où les statistiques d'un soldat s'envolent pour 160 et se précipitent vers des valeurs qui débordent par 255, vont à zéro.Je voulais clarifier la situation, pourquoi cela s'est produit et où exactement cela s'est produit. Afin de mettre un terme à cette histoire.Au cours de l'étude, les versions DOS 1.0, 1.2, 1.4, russe (traduit) et Gold Edition ont été vérifiées. C'est-à-dire, littéralement tous disponibles.Ce problème a été observé uniquement dans la version 1.0. Mais, il convient de noter que la version russifiée était basée précisément sur la version 1.0, il s'est donc avéré que nos nombreux compatriotes étaient confrontés à cette situation beaucoup plus souvent que dans le reste du monde, car il n'a glissé que brièvement (le patch 1.2 est sorti assez rapidement, juste un mois plus tard), et personne n'a fait la russification de nouvelles versions.Un fragment du code désassemblé geoscape.exe responsable de l'augmentation des statistiques en fonction du résultat de la mission (augmentation des unités de temps): les
décalages 2Ah et 35h concernent respectivement les unités de base et l'amélioration des unités de base.Dans la version 1.2, le code était déjà légèrement différent:
veuillez noter que la clé ici est JZ / JLE.JZ - transition si le résultat est nul (équivalent).JLE - saute si le résultat est inférieur ou équivalent.Il s'avère qu'au départ, les développeurs ont fait une erreur de débutant: ils ont vérifié une limite sans marge, malgré le fait que la valeur peut bondir de plus de 1.Autrement dit, dans le cas des "TU", la croissance n'était limitée que si elle atteignait définitivement 80.Tous ceux qui ont joué dans les versions mises à jour ou non russifiées ne sont pas tombés sur ce problème.PS: Après avoir approfondi, il s'est avéré que la version russifiée était un hybride dans lequel GEOSCAPE.EXE était tiré de la version 1.0 et BATTLESCAPE.EXE était de 1.2. C'est juste que l'ogive de 1.0 s'est écrasée lorsque les Crissalids sont apparus, et avec cette version, le jeu ne serait pas viable. Gollops a délibérément divisé le jeu en deux EXE différents (deux modes de jeu différents) interagissant via des fichiers afin que le jeu tienne dans 640 kilo-octets de mémoire conventionnelle, eh bien, pour des raisons historiques: il a été initialement conçu comme une tactique au tour par tour simple, Laser Squad 2. Par conséquent, un tel hybride était possible. Source: https://habr.com/ru/post/fr381703/
All Articles