Difference between revisions of "GEOSCAPE.EXE"

From UFOpaedia
Jump to navigation Jump to search
(Location of File Templates)
Line 9: Line 9:
 
*Has [[Alien_Stats|alien statistics]] starting at (non-offset) byte 379,729. There are 33 records of 39 bytes each. No alien names, though.
 
*Has [[Alien_Stats|alien statistics]] starting at (non-offset) byte 379,729. There are 33 records of 39 bytes each. No alien names, though.
 
*If you have installed [[XcomUtil]], it may alter the length of GEOSCAPE. ''Does anybody have a modified version, so we can put the length here? --[[User:MikeTheRed|MikeTheRed]]''
 
*If you have installed [[XcomUtil]], it may alter the length of GEOSCAPE. ''Does anybody have a modified version, so we can put the length here? --[[User:MikeTheRed|MikeTheRed]]''
 +
** My XCOM Util GEOSCAPE size is 415,271 --[[User:Pi Masta|Pi Masta]]
  
 
= XCOM Windows Collector's Edition =
 
= XCOM Windows Collector's Edition =

Revision as of 18:35, 7 April 2007

The "Geoscape" program that handles base management and aircraft, a.k.a. XCOM outside of tactical combat. TACTICAL.EXE handles combat.

NOTE: In the WinCE version, GEOSCAPE and TACTICAL are one executable, "UFO Defense.exe". Due to this confusion (what wiki pages place things on, when they're practically identical), currently GEOSCAPE, TACTICAL, and UFO Defense information appear here. (Unless and until someone wants to break everything up... then again, having highly related stuff in one place is a good thing.)

Also see Versions.

XCOM: UFO Defense (U.S. DOS) version 1.4

  • Is 382,957 bytes long for the virgin 1.4 executable
  • Has alien statistics starting at (non-offset) byte 379,729. There are 33 records of 39 bytes each. No alien names, though.
  • If you have installed XcomUtil, it may alter the length of GEOSCAPE. Does anybody have a modified version, so we can put the length here? --MikeTheRed
    • My XCOM Util GEOSCAPE size is 415,271 --Pi Masta

XCOM Windows Collector's Edition

  • Variously called the Win CE or Gold version on the wiki
  • Is 495,616 bytes long
  • Starting at byte 648, reads:
XCOM: UFO Defense Gold Edition
This awesome game was compiled on Sep  8 1999 at 08:57:11
Copyright - 1999 Hasbro Interactive/MicroProse Software
Party on dude.
  • If you install XcomUtil, it separates your UFO Defense.exe into GEOSCAPE and TACTICAL executables. They are almost identical copies of UFO Defense.exe, however they start at the right place when run. This allows the game to closely mimick the Dos version by having its main loop run in a batch file.
  • Has alien statistics starting at (non-offset) byte 480,145. There are 33 records of 39 bytes each. No alien names, though.
  • Has tank & inbuilt alien weapon stats at byte 447,868 (see below)

Alien Stats

This section is for the structure of the alien stats, as found in GEOSCAPE. For actual data and additional information, see the alien statistics page. Also see Zombie's excellent alien stats page at StrategyCore. (Have YOU made your StratCore and XCOMUFO accounts yet?)

Alien stats are found as 33 records of 39 bytes each, in all versions of X-COM. They are identical in all versions. This data actually represents the "core" alien stats; modifiers are used to determine the final stats relative to game difficulty level. (In most, but not all, cases, the core stats are the same as the Beginner level stats.)

Alien stats start in each version of X-COM at the following location. This is a byte count, not an offset; with counts, the first byte in the file is byte 1:

Version        Location
DOS 1.4         379,729  (GEOSCAPE.EXE)  
WinCE Gold      480,145  (UFO Defense.exe)
Playstation     501,212
TFTD            486,930

Alien names are not actually found in Geoscape; it just has 33 strings of data... the alien each string applies to has been inferred by matching against aliens in the game.

The 39 bytes correspond to the following values. For the below, statements also apply to TFTD, since it's relevant to understanding the bytes:

0: Race - Corresponds to Unitref[000]

1: Rank - Corresponds to Unitref[042]

2: Unknown - Always 0 - Corresponds to Unitref[011]

3: Can Fly - No Corresponding Unitref offset

4: TUs - Corresponds to Unitref[025]

5: Health - Corresponds to Unitref[026]

6: Energy - Corresponds to Unitref[027]

7: Reactions - Corresponds to Unitref[028]

8: Strength - Corresponds to Unitref[017]

9: Firing Accuracy - Corresponds to Unitref[023]

10: Throwing Accuracy - Corresponds to Unitref[024]

11: Melee Accuracy - Corresponds to Unitref[056]

12: Front Armor - Corresponds to Unitref[029]

13: Left Armor - Corresponds to Unitref[030]

14: Right Armor - Corresponds to Unitref[031]

15: Rear Armor - Corresponds to Unitref[032]

16: Under Armor - Corresponds to Unitref[033]

17: Unknown - Always 0 - Corresponds to Unitref[034]

18: Energy Recharge - Corresponds to Unitref[035]

19: Unknown - Always 0 - Corresponds to Unitref[036]

20: Unknown - Always 1 No Corresponding Unitref offset

21: Unknown - Always 0 - Corresponds to Unitref[046]

22: Unknown - Corresponds to Unitref[048] (see below)

23: Unknown - Corresponds to Unitref[052] (see below)

NOTE: For additional important info on these two bytes, see Talk:UNITREF.DAT. My notes below do not take that info into account. For the moment though I'm leaving it as is. I sure wish we could figure the bytes out, and get rid of all the conjecture! - MikeTheRed 08:05, 6 November 2006 (PST)

These Unitref bytes ([48] and [52]) and now Geoscape Core values have long stumped us hardcore X-Commies. The two bytes always equal the same value for a given alien, including all aliens of the same race (the N's below). And, they're the same between Geoscape and Unitref. Clearly it must be important (or a goof!), but exactly what it is, who knows. Although this page is for X-COM, I've included TFTD in the hopes it helps folks - but it's been so long since I've played TFTD, I can't remember those units at all.

How's this for a thought?...

Dimension   Byte(s)

       X     22

       Y     23

       Z     24  (top when standing)
             25  (top when kneeling)
             26  (bottom)

Maybe they represent the "size in profile" ("width"), affecting likelihood to hit. A game could be tried with a target 20 squares away, set 22 and 23 alternately to 5 or 2 (or 1 or 0?), and see if it affects the successful shots percentage. 0 or even 1 might break the game, though.

Also, how do these values (2 to 5) correlate with the "pixel drawings" of units? I can't seem to find that info at the moment... aren't units and tiles defined as something like 16x16x28? If so, then perhaps the values (2 to 5) are multiplied by 3 or something to get their final "width" for bullet interception?? --MikeTheRed 05:20, 17 September 2006 (PDT)

I finally got the OSG (w00t!), and noticed the following: The section on weapon accuracy says (p. 221) that target size affects the chance to hit, and "the 'size' of each alien is listed along with all other alien statistics in Chapter 9". But the alien stats tables (p. 250 ff.) only lists Height as a possible 'size' stat, and the text write-ups don't otherwise address "target size" with any precision. This discrepancy - that Chapter 8 talks about size, but Chapter 9 only has height - might (might!) mean there are more variables that determine target area size, but somehow they didn't make it to the alien stats tables.
The description for Height (p. 249) does say, "Taller creatures are easier to hit than short ones are. An alien with a height of 40, for example, is twice as easy to hit as an alien with a height of 20." (Note: The tallest Height is actually 23. And also notice, Float is never mentioned.) This might mean only height affects this, or it could be read in a general way; other dimensions (X and Y in addition to Z) might also affect it.
Somebody should do some firing accuracy tests while hacking these potential X & Y bytes! But I still don't know how the values for [22] & [23] compare to what X-COM considers tile width... we know the Height byte accurately reflects the full range of possible values (0 to 23), but I doubt 5 is the full (pixel?) width of a tile. This might mean it's not width, then (or maybe [22] & [23] are added, or they are individually multiplied by 3 or something??) If anyone who knows about tile width could say something, I'd appreciate it. --MikeTheRed 11:24, 1 October 2006 (PDT)

In any event, here's a summary of bytes [22] and [23], in the hopes we can figure it out. They're always identical for a given race, and [22] always equals [23].

                 X-COM                            TFTD

         Value   Alien           N        Value   Alien           N

           2     Sectoid         6          2     Aquatoid        6   
                                                  Bio-Drone       1 
           3     Celatid         1                Tentaculat      1   
                 Chryssalid      1
                 Civilian        2          3     Calcinite       1   
                 Ethereal        3                Civilian        2   
                 Floater         6                Deep_One        1   
                 Muton           3                Gill_Man        4   
                 Snakeman        5                Tasoth          2   

           4     Cyberdisc       1          4     Coelacant       1   
                 Hovertank       1                Displacer       1   
                 Reaper          1                Hallucinoid     1   
                 Sectopod        1                Lobster_Man     5   
                 Tank            1                Triscene        1   
                                                  Xarquid         1 
           5     Silacoid        1  

24: Standing Height - Corresponds to Unitref[049]

25: Kneeling Height - Corresponds to Unitref[050]

26: Floating Height - Corresponds to Unitref[051]

27: Damage Modifier Category - Corresponds to Unitref[055]

This field is simply a look-up table, or more directly, a way to categorize the units into similar groups. The actual modifiers are listed elsewhere in the executable. A value of 1 indicates the first DM category, a value of 4 indicates the 4th, etc. The values of 2 and 3 are not seen in the alien stats as they refer to X-COM soldier armor info. I'm not sure about 13 as the Zombie's stats haven't been found yet, but I think there is a category in the DM's for it.

Column    Unit Type(s)
   1      Civilian, Sectoid, Celatid, Floater
   2      Personal Armor
   3      Power Suit, Flying Suit
   4      Tanks, Hovertanks
   5      Snakemen
   6      Ethereal
   7      Muton
   8      Silacoid
   9      Chryssalid
  10      Reaper
  11      Sectopod
  12      Cyberdisc
  13      Zombie

28: Psi Skill - Corresponds to Unitref[037]

29: Psi Strength - Corresponds to Unitref[057]

30: Bravery (encoded) - Corresponds to Unitref[059]

31: Motion scanner size - Corresponds to Unitref[061]

32: 1 for Cyberdisc, 0 for all others including TFTD... isn't "Explodes"; the TFTD Bio-Drone also explodes... - Corresponds to Unitref[071]

I edited the Cyberdisc's field to 0 and checked to see if it exploded. It still did. Obviously this field is for something else. I'll work on this some more. --Zombie 20:15, 15 September 2006 (PDT)

33: Unknown - Always 0 No Corresponding Unitref offset

34: Corpse type - Corresponds to Unitref[038]

35: Big unit (2x2) No Corresponding Unitref offset

36: Victory point score - Corresponds to Unitref[039]

37: Aggression - Corresponds to Unitref[044]

38: Intelligence - Corresponds to Unitref[073]

This data was just put together working heavily with Zombie and his great SC alien stats page.

Country Labels

Starting at offset 396480 (hex: 0x60CC0) are the records that contain the location of the labels for the country names on the world. In order they are X, Y, and English.dat index all signed short integers (6 bytes for each record). X should never be negative but between 0 and 2880, Y should be between -720 and 720 (See WORLD.DAT). The English.dat file, despite all other array indexes appears to start at 1 and not 0, thus a value of 611 in here represents index 610 in a zero based English.dat array. (It stands to reason that these work for the other language files as well)

File Templates

There appears to be 'templates' of some of the game files stored within this executable. Makes sense as initially no saved game files are present when installed. Here is a list of known positions and the corresponding file.

Offset (Hex) Offset (Dec) Length (Bytes) File
5D894 383124 576 DIPLOM.DAT
5E48C 386188 1392 UP.DAT

See Also