Das Geheimnis der großen Statistiken im UFO: Enemy Unknown (1994)

xcom Statistiken


Die meisten von uns, die schon lange das gute alte UFO: Enemy Unknown gespielt haben, sind auf Fälle gestoßen (oder wissen es zumindest), in denen die Statistik eines Soldaten 160 fliegt und auf Werte stürzt, die 255 überschreiten, auf Null gehen.

Ich wollte die Situation klären, warum dies geschah und wo genau dies geschah. Um dieser Geschichte ein Ende zu setzen.

Während der Studie wurden die DOS-Versionen 1.0, 1.2, 1.4, Russisch (übersetzt) ​​und Gold Edition überprüft. Das heißt, buchstäblich alles verfügbar.

Dieser Fehler wurde nur in Version 1.0 beobachtet. Es ist jedoch erwähnenswert, dass die russifizierte Version genau auf Version 1.0 basiert, sodass sich herausstellte, dass unsere vielen Landsleute dieser Situation viel häufiger ausgesetzt waren als im Rest der Welt, weil es rutschte nur kurz ab (Patch 1.2 erschien schnell genug, nur einen Monat später), und niemand hat die Russifizierung neuer Versionen durchgeführt.

Ein Fragment des zerlegten Codes geoscape.exe, das für die Erhöhung der Statistiken basierend auf dem Ergebnis der Mission verantwortlich ist (Erhöhung der

Version 1.0

Zeiteinheiten ): Die Offsets 2Ah und 35h beziehen sich auf Basis-TUs bzw. TU-Verbesserung

In Version 1.2 sah der Code bereits etwas anders aus:

Version 1.2

Bitte beachten Sie, dass der Schlüssel hier JZ / JLE ist.
JZ - Übergang, wenn das Ergebnis Null ist (äquivalent).
JLE - Sprung, wenn das Ergebnis kleiner oder gleichwertig ist.

Es stellt sich heraus, dass die Entwickler anfangs einen Anfängerfehler gemacht haben: Sie haben nach einem Limit ohne Marge

gesucht , obwohl der Wert um mehr als 1 springen kann. Das heißt, im Fall von "TUs" war das Wachstum nur begrenzt, wenn es definitiv 80 erreichte.

Jeder, der in den aktualisierten oder nicht russifizierten Versionen gespielt hat, ist nicht auf diese Panne gestoßen.

PS: Nachdem wir uns eingehender mit dem Thema befasst hatten, stellte sich heraus, dass es sich bei der russifizierten Version um einen Hybrid handelte, bei dem GEOSCAPE.EXE aus Version 1.0 und BATTLESCAPE.EXE aus Version 1.2 übernommen wurde. Es ist nur so, dass der Sprengkopf von 1.0 abgestürzt ist, als die Crissalids erschienen, und mit dieser Version wäre das Spiel unrentabel. Gollops hat das Spiel absichtlich in zwei verschiedene EXEs (zwei verschiedene Spielmodi) unterteilt, die über Dateien interagieren, damit das Spiel aus historischen Gründen in 640 Kilobyte konventionellen Speichers passt: Es wurde ursprünglich als einfache rundenbasierte Taktik, Laser Squad 2, konzipiert. Daher war ein solcher Hybrid möglich.

Source: https://habr.com/ru/post/de381703/


All Articles