Misteri statistik besar dalam UFO: Enemy Unknown (1994)

statistik xcom


Sebagian besar dari kita, yang telah lama memainkan UFO tua yang baik: Musuh Tidak Dikenal, telah menemukan (atau setidaknya tahu) kasus-kasus ketika statistik seorang prajurit terbang untuk 160 dan bergegas ke nilai-nilai yang meluap melalui 255 dan pergi ke nol.

Saya ingin mengklarifikasi situasinya, mengapa ini terjadi, dan di mana tepatnya ini terjadi. Untuk mengakhiri cerita ini.

Selama penelitian, DOS versi 1.0, 1.2, 1.4, Rusia (diterjemahkan), dan Edisi Emas diperiksa. Artinya, secara harfiah semua tersedia.

Kesalahan ini diamati hanya dalam versi 1.0. Tetapi, perlu dicatat bahwa versi Russified didasarkan pada versi 1.0, jadi ternyata banyak rekan kami yang menghadapi situasi ini jauh lebih sering daripada di seluruh dunia, karena hanya tergelincir sebentar (patch 1.2 keluar cukup cepat, hanya sebulan kemudian), dan tidak ada yang melakukan Russification versi baru.

Sebuah fragmen dari kode dibongkar geoscape.exe bertanggung jawab untuk peningkatan statistik berdasarkan hasil misi (peningkatan Unit Waktu):

versi 1.0

Offset 2Ah dan 35h masing-masing berhubungan dengan Base TUs dan TU Improvement.

Dalam versi 1.2, kode sudah terlihat sedikit berbeda:

versi 1.2

Harap dicatat bahwa kuncinya di sini adalah JZ / JLE.
JZ - transisi jika hasilnya nol (setara).
JLE - melompat jika hasilnya kurang atau setara.

Ternyata pada awalnya para pengembang membuat kesalahan pemula: mereka memeriksa batas tanpa margin, terlepas dari kenyataan bahwa nilainya dapat melonjak lebih dari 1.

Artinya, dalam kasus "TU", pertumbuhan dibatasi hanya jika benar-benar mencapai 80.

Setiap orang yang bermain dalam versi yang diperbarui atau tidak, Russified tidak menemukan kesalahan ini.

PS: Setelah mempelajari lebih dalam, ternyata versi Russified adalah hibrida di mana GEOSCAPE.EXE diambil dari versi 1.0, dan BATTLESCAPE.EXE berasal dari 1.2. Hanya saja hulu ledak dari 1.0 crash ketika Crissalids muncul, dan dengan versi ini gim tidak akan dapat digunakan lagi. Gollops dengan sengaja membagi permainan menjadi dua EXE yang berbeda (dua mode permainan yang berbeda) berinteraksi melalui file agar gim tersebut muat dalam 640 kilobyte dari Memori Konvensional, yah, karena alasan historis: ia awalnya dipahami sebagai taktik sederhana berbasis giliran, Laser Squad 2. Karena itu, hibrida semacam itu dimungkinkan.

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


All Articles