Some questions [Zaimoni: now answered empirically]:
- What is going on with the start time for 0/0 on Research missions? The Jan 1999 one is always 2.5h, but I recently saw an Antarctica Research mission at 3d for 0/0.
- How consistently does the time to the next UFO react to a successful Battlescape game? (I just saw a Retaliation 1/1 go from 7Eh to 136h upon successful completion.)
--Zaimoni, 6:50 Sept 21 2006 CDT
I couldn't understand much of your research but it made me wonder about one question: is it possible to determine the amount of UFO missions and their types that you will see during a month (and also the areas?). Or are those set in a total random fashion?
If so this could be considered as spoilers but it could also be used for an article describing alien strategy on the field manual.
--Hobbes 18:39, 21 September 2006 (PDT)
MISSIONS.DAT is a spoiler, definitely. It stores the time (in 30-minute increments) for all non-Supply scheduled UFOs that have not arrived yet. While it won't tell you all of the UFOs arriving in the month, it will positively ID arrival time, mission, physical type, and race of each one in the queue. I'm in the middle of redocumenting it.
My current conjecture is that the 0..3 sequence indexes the "size" of the UFO. The legacy content just listing ufo-c coordinates is misleading (it seems to be enumerating the visible sequence of ufos), but I want to positively observe the entire sequence of ufo-c/ufo-sub-c pairs before updating.
At all times, the current mission types and areas are in MISSIONS.DAT...except for supply missions. You really want a Hyperwave Decoder covering each alien base you're harvesting. So far, Beginner and Superhuman schedule the same at the beginning of the months after Jan 1999: 1 Terror mission, one non-terror mission. I don't know the criteria for scheduling Retaliation missions. (I've never seen them show up except immediately after Battlescape missions, but that obviously isn't exhaustive.]
Particularly interesting: Battlescape messes with the arrival time of the next mission after the one you're cleaning up on. This needs more careful analysis (e.g., is it just mission completion?)
--Zaimoni, 22:35 Sept 21 2006 CDT
The increase in time to next UFO occurs either (or both) at shootdown, or at the start of the Battlescape mission. Since I used XCOMUtil interceptor with six soldiers for this test, I can't tell which one. No change between the beginning and the end of the Battlescape mission. [But a genuine Terrorship will happen soon enough...that gets a no-crew Interceptor and a full Skyranger.]
--Zaimoni, 23:51 Sept 21 2006 CDT
- After a shootdown, the next UFO for that mission is delayed between 1 and ~9 days ( the formula is 48+RAND()*400 half hours ). A retaliation mission will be scheduled if RAND()*100 < 4*(24-difficultyLevel).
- If RAND()*100 < (50-6*difficultyLevel), the retaliation mission will use the same zone as the shot UFO, else it'll be the zone containing the base the craft in coming from. The first UFO is scheduled in 100 half-hours (the value is taken from the table I speak of later at the bottom of this page).
- Seb76 18:56, 12 July 2008 (PDT)
I don't think I'll be continuing this savegame, but I just had a Feb 1999 that only generated a new Terror Mission. The other mission...not visible. [I may have messed it up — I did edit the Jan 1999 Terror mission from Europe to Southern Africa.]
--Zaimoni, 10:38 Dec 30 2006 CDT
Zaimoni, I've been thinking about the comment about HWD's activating retaliation missions from the start. Are you able to check the mission types of the first couple of UFOs through mission.dat without editing the HWD stats onto the base? I'm not entirely convinced that retaliation missions are instigated by having a hyperwave decoder (stats or the module).
- Yes, I can check (and have checked) that by hex editor. [It's a moderately different game with total information on arrival times and mission types...much easier to resume after a month or so hiatus.] I haven't tested with a game whose Hyperwave detection was edited.
- I normally save immediately after starting a new game to apply my custom soldier editor to the game. While I'm at it, I check MISSIONS.DAT. I have always gotten two missions: a Research mission in the same region as my starting base, and a terror mission with a decidedly non-uniform random distribution of location that I haven't bothered to try to analyze.
- I'm not sure whether there's a random component to getting a Retalation series scheduled by shooting down the first Research UFO, or whether it's just hypersensitive to some sort of detail. If the series is not significantly interfered with, the base defense mission would happen 2-3 weeks in.
- --Zaimoni, 3:23 Mar 20 2007 CDT
Just ran some quick checks, nothing too intensive.
- Editing hyperwave detection in a hex editor: no obvious effect, but would have to tweak the initial MISSIONS.DAT (move the Terror Act to within range) to be absolutely sure. The game does not transmogrify Research UFOs in real-time; I need to test Terror UFOs.
- Start a new game after abandoning one: race information is not cleared in MISSIONS.DAT, but other information is cleared. In particular, both ufo-c and subufo-c are overwritten to their defaults.
--Zaimoni, 23:11 Apr 11 2007 CDT
so, the question which should be asked:
Is it too difficult to make an editor which changes the sequences? I dunno anything with hex-editors, programming, high level mathematics, etc. It would be interesting to have an opportunity to spawn multiple UFO everyday and not be able to shoot them all down as which is the case for the current mode of EU (and TFTD). The only thing that comes close to something of this current scenario is an inflitration mission where you have 5+ alien ships all at once and not having the capability to deal with them all. I dunno... i just wish having more tweaks to make it harder would be a good thing as opposite to just using editors to dull the technology of xcom to increase difficulty.
Six terror sites at once??? hell yeah! EsTeR
- It should be safe to create Retaliation acts and Terror acts by directly editing MISSIONS.DAT, there will be no internal consistency issues with other files. Editing existing entries in MISSIONS.DAT to other valid entries should be safe (note that not all mission types have been authoritatively mapped). Editing duration should be safe, but problems could happen with invalid races or UFO c/sub-c pairs. Creating other mission types will require counter-editing ACTS.DAT. I haven't specifically checked the behavior of ZONAL.DAT when spawning new acts.
- The ufo-c/ufo-sub-c pair 0/0 is always valid, at least.
- Research, Base, Terror, and Retaliation have fully documented ufo-c/ufo-sub-c pairs. I haven't done any verification at all for Abduction or Infiltration.
- Changing the relative durations between UFOs, time delays incurred when shooting down UFOs, or number of missions spawned per month, requires finding that information first. --Zaimoni, 10:16 Oct 17 2007 CDT
Just a note to add to this section lest I forget, and as late follow up to the notes that re on the page: back when I first got the idea that the first UFO was on a retaliation mission, I did not know that there was a 2% chance for every UFO to generate a retaliation mission. Armed with this knowledge, this is probably the sequence of events that happened to me at the time: I shot down the first UFO, recovered it and then got my base attacked. The 2% might've triggered then. This would very well the impression I had that UFOs could start on retaliation missions. They don't, but they can generate an attack. -NKF 03:10, 3 June 2010 (EDT)
Alien missions data discovered in geoscape.exe [finally ;-)]
OK guys, here's a big one: alien missions data is located in the executable at offset 0x70E70 (gold edition) ; it starts with these values (all 16bit words):
.data:00470E70 structAlienMission <5, 1, 0, 12Ch> .data:00470E70 structAlienMission <6, 1, 2, 104h> .data:00470E70 structAlienMission <7, 2, 4, 12Ch> .data:00470E70 structAlienMission 5 dup(<0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh>) ...
It goes on for 64x4x2 bytes (7 mission types and possible data for additional 'supply' type mission).
Every mission type has 8 entries consisting of 4 words. First word is the ship type, second is the number of ship of this type to spawn successively (each uses the same time counter), and 4th correspond to the time counter in MISSIONS.DAT. 3rd one is unknown for now.
The example below is for research mission: one small scout (type 5), then one medium scout (type 6) and finally 2 large scouts (type 7). The time counter is calculated like this: time*RAND()+time/2. Anyone care to hack the binaries to confirm this? Seb76 10:58, 9 March 2008 (PDT)
- Time calculation looks good for those UFOs with randomized time (there are a few known exceptions). -- Zaimoni 10:16 10 March 2008 (CDT)
- It would be very good to locate what controls fixed vs randomized times for the normal missions. -- Zaimoni 10:59 13 July 2008 (CDT)
The 3rd word of missions is UFO_trajectory_type. It refers into table at address .data:00471070. So there are 10 types of trajectories possible, with maximum 8 waypoints.
.data:00471070 ufo_10_types_52___ dw 5 ; UFO_Waypoint_count .data:00471070 dw 5, 0, 0, 1, 5, -1, -1, -1; UFO_Waypoint_Site .data:00471070 dw 4, 3, 1, 1, 2, 0, 0, 0; UFO_Waypoint_Altitude .data:00471070 dw 100, 74, 28, 47,100, 0, 0, 0; UFO_Waypoint_Speed .data:00471070 dw 3000 ; Ground_Timer
--Volutar 05:59, 14 April 2011 (EDT)
The 3rd "word" is called a Mission Plan in the dev notes I have. As Volutar mentioned, there are 10 types, and I'll list the internal descriptions here
Plan Description 0 Low level reconnaissance 1 Intense low level reconnaissance 2 Occasional landings 3 Occasional abductions 4 Systematic abductions 5 Reconnaissance for base 6 Establishing base 7 Visit major cities 8 Destroy [X-COM] base 9 Base Supply
- So all these missions, once started, will continue in the precise sequence no matter what?
- Yes; only most of these tables have been verified by inspection of the savegame files in a hex editor, however. Infiltration has not. Matching the savegame file behavior against the in-game data Seb76 has located is tricky. -- Zaimoni
- What about the whole thing with whether it's found the site or not (e.g. Terror Ships finding/not finding a city to raid, Battleships finding/not finding your base)? Does this apply to all missions?
- The base assault battleships are not on the Retaliation Act sequence, they're controlled by XBASES.DAT. Reverse-engineering how the Retaliation Act ships find bases hasn't been precisely done yet (don't let the UFOs get too close to the base), mind shielding reduces the range at which a UFO can spot a base.
- So the two battleships that don't ever spot your base are unrelated to the battleships that come if you're spotted? User:magic9mushroom
- Correct. I've had entire Retaliation Acts cycle without scheduling a base attack battleship, but this was with XBASES.DAT never flagging a base for retaliation.
- As for Terror Ships: whether a UFO lands or not, appears to be controlled by its ufo-c/ufo-sub-c indexing. If they have orders to land, they won't have problems finding an appropriate site. -- Zaimoni
- So that means that of the two Terror Ship indexes you have listed, only one occurs in any given mission? User:magic9mushroom
- For all act types, the indexes are incremented in strictly increasing order (with all ufo-sub-c indexes run through before the ufo-c index is incremented). It may take more than one hour for a ufo to reach hyperwave detection with incomplete hyperwave coverage. -- Zaimoni
- So are there two Terror Ships per mission or not?
- The separation between Terror Ship 2/0 and Terror Ship 3/0 is a few days, so it's conceptually two missions with one Terror Ship each with the Terror Act. Empirical research into ufo behavior suggests that if they are not shot down, Terror Ship 2/0 never lands, while Terror Ship 3/0 always lands (and gives you a terror site). -- Zaimoni
- With the infiltration, what does the "it starts again" mean? Does that mean that once an infiltration mission has started in a zone, endless infiltrations will run there until all countries there are infiltrated?
- Infiltration is the only mission type that loops. It will continue even after all countries in the zone have been infiltrated. Russia is empirically immune to infiltration in all versions higher than DOS 1.0. -- Zaimoni
- So what happens at the conclusion of an Infiltration mission after all countries in the zone are infiltrated? Does a country outside the zone get infiltrated? Does no country get infiltrated? User:magic9mushroom
- Nothing happens. Was rather fortunate to experience this a few times - and when I ran a no-funding-country scenario where I edited the save and flagged all the countries as withdrawn. Rather amusing to see them infiltrate an already infiltrated country and yield no results. In this case, the only real impact is the area activity points, which the neighbours will notice. -NKF 05:30, 10 August 2009 (EDT)
- It says the order for infiltrations is Terror ship -> Battleship -> Supply ship -> Battleship, but my own experience contradicts this - I shot down each UFO in an infiltration run, and the sequence was Terror ship -> Supply ship -> Battleship -> Battleship.
- While Infiltration has not been verified by me in-game yet, the tables all assume that all UFOs in the sequence are detected. This is more interesting if this was with the Hyperwave Decoder. -- Zaimoni, 8:42, 9 August 2009 (CDT)
- It was with a Hyper-Wave Decoder and I shot down each before the next appeared. Magic9mushroom 04:07, 10 August 2009 (EDT)
- All eight are in the executable, in the order specified in MISSIONS.DAT. However, the four mentioned are pretty much "in a row": the sixth should arrive exactly one hour later after the fifth, and so on. That is, you have one hour to shoot down the Terror Ship to delay the three others by ~2 weeks. -- Zaimoni, 9:37, 10 August 2009 (CDT)
- Well, it was days between detecting each one. They definitely arrived in the order Terror Ship, Supply Ship, Battleship, Battleship.
- See it in the executable, fixing that now. (Mapping duration from executable to empirical is tricky, as is estimating turning points and landing counts.) -- Zaimoni, 9:37, 10 August 2009 (CDT)
Thanks in advance. Magic9mushroom 04:14, 9 August 2009 (EDT)
I understood what mean third entry in section Alien Data Missions at executable file. As I said in forum Seeing speeds of USO sub we can determine the mission of this USO sub even without transmission resolver - even in january 2040 Every USO sub in every missions (interdiction, colony, probe and other) have unique speeds and we can determine mission of USO on their speed And we can determine what amount of times a sub touch down on his mission - because every mission has unique rule for touch down USO subs And we can determine what amount of time USO Sub will touch down on their mission - because every Sub in every mission has unique and ALWAYS equal amoun of time to touch down (p.s. this time we can see in file Loc.dat)
And third entry - it's index of speeds of sub.
I have table of speeds of all USO subs. Where can locate it?
Non-scheduled Terror Missions
What is it known on terror missions which are NOT in MISSIONS.DAT? At least in TFTD, such missions are, as a rule, on the 1st of each month, 1:00 (are they always ship route attacks?). Saving the game before the attack but after the midnight (1st, 0:00), and next loading and continuing it, always leads to a mission in the same (exact) location, on the same type of the ship, and with the same alien race (or Mixed Crew). Only numbers of particular creatures of a given race can change. So, the mission properties must be stored somewhere between the midnight and 1:00 (when the attack occurs). The game must store this information somewhere, and it is not MISSION.DAT for sure.
Such a first-o'clock alien terror mission does not influence the normal, scheduled alien missions (so, it is even possible to have another terror mission just few hours after the first one, if only the other mission had been scheduled). Where is it stored?
Does a similar phenomenon occur in UFO:EU as well?
File:Nstm.zip - a set of savegames for tests, the explanation inside.
Sherlock 20:24, 30 January 2013 (EST)
- It's in LOC.DAT. As in, the terror site already existed before it became visible to you, so you actually saved AFTER the attack started. - Bomb Bloke (Talk/Contribs) 02:02, 31 January 2013 (EST)
I'm not great at this sort of thing so I'd like to know if the following is correct. Zaimoni's example, "E.g. infiltration(3) in Europe(4) would have the offset 3*8+4*(7*8)=0xF8" means the entries are ordered by missiontype*8 + region*56 (respectively from ACTS.DAT and ZONAL.DAT) ???
Running that logic through excel I generated the addresses below. I guess they make sense; it could look like what's going on in-game though I don't have any saves where I am dead-certain what missions are running... which is what brought me to this page... :)
|0||Research in North America|
|8||Harvest in North America|
|10||Abduction in North America|
|18||Infiltration in North America|
|20||Base in North America|
|28||Terror in North America|
|30||Retaliation in North America|
|38||Research in Arctic|
|40||Harvest in Arctic|
|48||Abduction in Arctic|
|50||Infiltration in Arctic|
|58||Base in Arctic|
|60||Terror in Arctic|
|68||Retaliation in Arctic|
|70||Research in Antarctic|
|78||Harvest in Antarctic|
|80||Abduction in Antarctic|
|88||Infiltration in Antarctic|
|90||Base in Antarctic|
|98||Terror in Antarctic|
|A0||Retaliation in Antarctic|
|A8||Research in South America|
|B0||Harvest in South America|
|B8||Abduction in South America|
|C0||Infiltration in South America|
|C8||Base in South America|
|D0||Terror in South America|
|D8||Retaliation in South America|
|E0||Research in Europe|
|E8||Harvest in Europe|
|F0||Abduction in Europe|
|F8||Infiltration in Europe|
|100||Base in Europe|
|108||Terror in Europe|
|110||Retaliation in Europe|
|118||Research in North Africa|
|120||Harvest in North Africa|
|128||Abduction in North Africa|
|130||Infiltration in North Africa|
|138||Base in North Africa|
|140||Terror in North Africa|
|148||Retaliation in North Africa|
|150||Research in South Africa|
|158||Harvest in South Africa|
|160||Abduction in South Africa|
|168||Infiltration in South Africa|
|170||Base in South Africa|
|178||Terror in South Africa|
|180||Retaliation in South Africa|
|188||Research in Central Asia|
|190||Harvest in Central Asia|
|198||Abduction in Central Asia|
|1A0||Infiltration in Central Asia|
|1A8||Base in Central Asia|
|1B0||Terror in Central Asia|
|1B8||Retaliation in Central Asia|
|1C0||Research in Southeast Asia|
|1C8||Harvest in Southeast Asia|
|1D0||Abduction in Southeast Asia|
|1D8||Infiltration in Southeast Asia|
|1E0||Base in Southeast Asia|
|1E8||Terror in Southeast Asia|
|1F0||Retaliation in Southeast Asia|
|1F8||Research in Siberia|
|200||Harvest in Siberia|
|208||Abduction in Siberia|
|210||Infiltration in Siberia|
|218||Base in Siberia|
|220||Terror in Siberia|
|228||Retaliation in Siberia|
|230||Research in Australasia|
|238||Harvest in Australasia|
|240||Abduction in Australasia|
|248||Infiltration in Australasia|
|250||Base in Australasia|
|258||Terror in Australasia|
|260||Retaliation in Australasia|
|268||Research in Wilderness|
|270||Harvest in Wilderness|
|278||Abduction in Wilderness|
|280||Infiltration in Wilderness|
|288||Base in Wilderness|
|290||Terror in Wilderness|
|298||Retaliation in Wilderness|
Something's off with Zombie's numbers
I hate to contradict the great Zombie, but the countdown timers here seem to have an off-by-one. The numbers as they are now predict a 3x Abductor flotilla for Abduction, a 2xLarge Scout+Terror+Supply+2xBB flotilla for Infiltration, and a Medium Scout+Large Scout+2xSupply+BB flotilla for Base, but in all three cases the first of those is not actually part of the flotilla. We need to fix this, but I'm not sure how because I don't know where the data is in GEOSCAPE.EXE (I have DOS version). Can anyone help me out here? Magic9mushroom (talk) 07:34, 31 August 2019 (CEST)
Okay, I've got it. It is an off-by-one. The time index associated with a UFO in the data files is not the countdown timer to that UFO. It's the amount of time added to the countdown timer when that UFO is spawned - i.e. the timer for the next UFO. The countdown timer for the first UFO in the mission is presumably set during mission creation, and is not stored with the rest of the mission data (this explains why it can be different for the first vs. subsequent Alien Research missions, as that one is not generated in the usual fashion).
As such, I'm going to move all the times given (which are correct, but misinterpreted) down one row, and put question-marks in the top row (since I don't actually know most of them, except Terror which I empirically know to always be 2.5h). Magic9mushroom (talk) 08:46, 31 August 2019 (CEST)