This fixes the four research bugs I know of relating to mis-ordering of research. If you're missing an item like Alien Sub Construction, the Disruptor Pulse Launcher, or the MC Reader, the game will automatically let you the research item once you acquire it -- you don't need to rerun this executable after you've acquired a sample of the item.
If you're using xcomutil this can be run automatically after each battle.
FAQ from the README:
Q. Should I back up my data before I run this?
A. Yes. This doesn't modify any executables,
just game data, so backing up your saved games
Q. Which version of TFTD is this for?
A. This is for version 2, in which you can research
Magnetic Navigation as soon as you have it.
It shouldn't break anything with version 1, but I
have done no testing. Feedback from anyone using
version 1 would be appreciated.
Q. How do I fix a research bug in my saved game?
A. Go to the specific saved game directory and run
RESEARCH.EXE. If there is a bug that is fixed,
you will get a message describing each bug it
finds and fixed.
Q. Which research bugs does it fix?
A. It currently fixes four:
1. If the MC Lab is fully researched, then the
MC Reader will become available once you
acquire one (even if you don't yet have one).
2. If you have researched Plastic Aqua Armor,
Ion Beam Accelerators, and a live Deep One,
then Ion Armor will be available.
3. If you have researched Zrbite, then you will
be able to research the Disruptor Launcher
once you acquire one.
4. If you have researched Zrbite and the
Transmission Resolver, you will be able to
research Alien Sub Construction once you
acquire a sample.
Q. Can I incorporate this into my game?
A. If you have XcomUtil, yes! It should run
automatically. Just copy research.exe and
xcuhook3.bat to MPS/TFTD.
If you already have an xcuhook3.bat script,
you can merge them together.
If you don't want to get status messages
after every battle, add " --quiet" after
"research.exe" in the xcuhook3.bat file..
Q. What does the future hold?
A. These things:
1. Making individual fixes selectable.
2. Getting rid of the corpse requirements for
3. Reading generic changes from a configuration file.
4. Putting these changes into the executable.