SMACX-unofficial-patch/readme.md
2019-08-15 04:26:29 +01:00

419 lines
24 KiB
Markdown

# Sid Meier's Alpha Centauri & Alien Crossfire Unofficial Patch
Author: scient ([Brendan Casey](https://github.com/b-casey))
[Donate to Brendan!](https://www.paypal.com/donate/?token=TD1cTJuTnZJ29liLpk90YTThMZjqZLOga64Iqg6a15m6aCe73gL2DjElVhi6HPAKsCH5WW&country.x=US&locale.x=US)
## Introduction
This is a comprehensive set of fixes to bugs, crashes, and exploits
found in Sid Meier\'s Alpha Centauri (SMAC) and Alien Crossfire (SMACX).
The primary goal of this project is to fix bugs left after the official
patches. A secondary objective is to expand upon the games features
without modifying the existing mechanics to allow for more freedom.
Feel free to host the installer somewhere else besides
[AC2](http://alphacentauri2.info/index.php?action=downloads),
[CGN](http://www.civgaming.net/forums/forumdisplay.php?f=15),
[WPC](http://www.weplayciv.com/forums/downloads.php?do=cat&id=1) or
[Apoly](http://apolyton.net/local_links.php?catid=399) as long as the
contents of package aren\'t altered in any way and the readme is
included.
I am busy with multiple commitments so updates come whenever I have
time. One of those commitments is my work on another unofficial patch
project for the classic isometric RPG [Planescape:
Torment](http://spellholdstudios.net/ie/pst-fixpack). However, this
project has mostly concluded.
I have no problem with other modders building off of my work as long as
credit is given. If you\'re interested in helping out in any capacity
please contact me. I would like to add fixed versions of the localized
text files to the installer, so if you\'re interested in working with me
to update the French, German or some other language let me know!
I encourage you to report any bugs, crashes, exploits or just ideas on
either [AC2](http://alphacentauri2.info/index.php) or
[CGN](http://www.civgaming.net/forums/forumdisplay.php?f=15) forums
which are the two primary homes of this project. You can also contact me
on [WPC](http://www.weplayciv.com/forums/forumdisplay.php?f=7),
[Apolyton](http://apolyton.net/forums/forumdisplay.php?f=23),
[CFC](http://forums.civfanatics.com/forumdisplay.php?f=27) or
[SHS](http://www.shsforums.net/index.php?showforum=551) forums as well.
While my work on this project will go on regardless, if you enjoyed this
patch please donate a few dollars via PayPal link at the top.
## Installation
- **Install the game (original individual CD\'s, Planetary Pack, SOS,
GOG).**
- **Next install the unofficial patch.**
- **Done!**
**Notes regarding the installer:**
- While always applying the SMAC base files, the SMACX specific files
will only be applied if SMACX has been installed.
- All of the official patches have been rolled into the installer. So
once applied, you are getting the same effect as if you installed
the SMAC 2000/XP Compatibility Update and if applicable SMACX v2.0
patch.
- Any files touched by the installer will be backed up to a new folder
inside SMAC/X directory. Also, an uninstaller is created that will
allow you to roll back any changes made.
- The installer can be applied to multiple SMAC/X installs on the same
system without any conflicts. There are no issues with applying the
installer to a portable install. However, there are a few minor
fixes related to the registry and system font that will only be in
effect on a system where the installer was run.
## Engine Fixes
### Version 1.0
1. **\[CRASH\]\[SMACX\]** As either the Caretakers or the Usurpers,
opening up the Design Workshop and then switching back and forth
between a \"Colony Pod\" and other \"Equipment\" can cause the text
in the \"Special Ability\" panel to become corrupted and crash the
game upon exiting the Design Workshop. Fixed by increasing the
memory allocation used to manipulate the caviar animation files
(cvr) and possibly other buffer related problems. (credit to
WBird784 for original fix)
2. **\[CRASH\]** Scrambling air interceptors could cause the game to
crash usually on larger maps. Even when the game didn\'t crash, it
would use incorrect altitude values.
3. **\[CRASH\]** While moving units around near or at the poles, it is
possible for the y coordinate to exceed the map bounds and crash the
game. Add handling to prevent the y coordinate from ever going over
the World Maps minimum or maximum values.
4. **\[CRASH\]\[MISC\]** Optimized out a number of legacy CPU checks
that serve no purpose unless you\'re using an extremely old
computer. In some cases, these checks actually prevented the game
from starting on newer CPU\'s causing the game to crash. After
removing these old checks, enabling ForceOldVoxelAlgorithm is no
longer necessary. Disabling it may improve performance since setting
ForceOldVoxelAlgorithm to 0 enables SMAC/SMACX to use your CPU\'s
[MMX
capabilities](http://en.wikipedia.org/wiki/MMX_(instruction_set))
for the [voxel algorithm](http://en.wikipedia.org/wiki/Voxel).
5. **\[BUG\]\[SMACX\]** The transport unit\'s special ability \"Repair
Bay\" is rendered useless due to an incorrect check that would only
give the healing bonus to ground transports inside a transport. Now,
it will give the bonus to all ground units except ground transports.
6. **\[BUG\]\[SMACX\]** Enhanced probes are now able to mind control
bases or units normally immune due to high SE morale as stated in
SMACX manual. For units it\'s purely the morale SE value so \>=3
acts as if it were 2 (cost doubled). For bases, the value is
calculated from morale SE and any base facility modifiers (Covert
Ops: +2, Genejack: -1). If final value is \>=3, it acts as if it
were 2.
7. **\[BUG\]\[SMACX\]** While loading the ambient sound file for game,
there is a mistake in faction id check for Believers causing it to
use SMACX default of \"aset1.amb\" rather than their correct ambient
sound file \"bset1.amb\".
8. **\[BUG\]\[SMACX\]** Enhanced probes don\'t receive a penalty to
survival probability when target faction has built Hunter-Seeker
Algorithm. Instead, the success probability is erroneously given the
penalty for a second time after it has already been displayed in UI.
This could cause diminished success rate when it should have been
higher. Fix corrects check so survival rather than success
probability is modified.
9. **\[BUG\]\[SMACX\]** Sealurk units will now not get a movement
penalty when moving through Sea Fungus the same as \"Isle of the
Deep\".
10. **\[BUG\]** If a faction\'s cumulative PROBE value is greater than
three (SE morale, covert ops center) it is possible to \"mind
control\" their bases when they should be immune. If the University
uses SE Knowledge putting PROBE value down to -4, it would act as if
it were 0 erroneously increasing \"mind control\" costs. After
patch, PROBE values greater than 3 will always be immune to regular
probes and values less than -2 will be treated as if they were -2.
11. **\[BUG\]** Fixed a check that was ending the turn for certain air
units (choppers/missiles/grav) when entering a base that had no
adjacent enemy units. The unit\'s turn will now only end if when
entering a base it has less then one turn remaining with no enemy
units adjacent to the base.
12. **\[BUG\]** Using \"Go to home base\" command (shift-g) sends the
unit to closest base rather than it\'s actual home. Fixed so now the
game retrieves the unit\'s home base and sets a \"go to\" waypoint
similar to how a unit is recalled from within the base UI. If a home
base cannot be found say if the unit is independent then the unit
will go to the nearest base.
13. **\[BUG\]\[EXPLOIT\]** Setting more than one patrol waypoint for a
unit with the spacebar causes the coordinate values to be stored
incorrectly. If only two waypoints are set then it is just a display
issue showing an incorrect amount of waypoints when the unit is
clicked. However, if three waypoints are set, it causes the unit\'s
morale to be set as one of coordinates usually boosting it to elite
or demon boil status. Also, when three waypoints are set the final
waypoint would get set to some far off random location usually
(0,0).
14. **\[EXPLOIT\]** Using the right click menu to airdrop a unit moves
the unit instantly and bypasses all of the required condition checks
such as if unit has already moved or in a base or an airbase. Fixed
so airdropping via right click now goes through same condition
checks as if you used the hotkey \"I\".
15. **\[EXPLOIT\]** Inside the base UI, after opening up the production
queue window it is possible to then open the hurry command window,
switch between bases and complete projects for less then their
actual value. An issue with the queue panel is now fixed preventing
certain parts of UI from becoming clickable when they shouldn\'t.
16. **\[EXPLOIT\]** When clicking on an unexplored square, the map
should recenter on that square. However, if the square contains a
base the map doesn\'t recenter giving away hidden bases. Fixed so
when an unexplored square with a base is clicked, the game will
recenter like any other square.
17. **\[EXPLOIT\]** It is possible to change another faction\'s workers
via \"Base Ops\" (F4) if you have that faction infiltrated. It is
now fixed so clicking the citizens of another faction in \"Base
Ops\" has no effect similar to garrisoned units.
18. **\[EXPLOIT\]** It is possible to give the airdrop or artillery
ability to a unit who didn\'t already have it. This is done by using
hotkey (I or F) on a unit that has the ability then switching to a
different unit in bottom center window. The mouse cursor would still
have the airdrop or artillery action ready to go and it is then
possible to use it with the new unit bypassing any checks whether
this unit can use the ability. Fixed by resetting the cursor when
clicking the unit selection window.
19. **\[MOD\]** Squares with both a Borehole and nutrient bonus don\'t
receive the nutrient bonus. If the \"Borehole Square\" nutrient
value defined in alpha/x.txt under \#RESOURCEINFO is set to
non-zero, a square with a Borehole will erroneously act as if it has
a nutrient bonus. The check whether or not to give a \"Borehole
Square\" a nutrient bonus is now fixed from checking if borehole
nutrient value is non-zero to checking if nutrient bonus is actually
present in the square.
20. **\[MOD\]** Fixed a check to use the \"Max artillery range\" value
defined under \#RULES rather than a hardcoded value of 2. It is
already set to 2 by default in alpha/x.txt.
21. ~~**\[MOD\]** Increase maximum number of all units on a map from
2048 to over 2 billion (2147483647). Also, increase value when
native life stops spawning due to number of units on map from 1792
to 2147483391 (same difference of 256 between original values).~~
**NOTE:** Removed as of v2.00 due to problems with fix.
22. **\[UI\]** Removed a check when displaying probe success and
survival probabilities that would drop the display of one if
they\'re both the same. For example, (50%, 50%) would just be (50%).
This change makes the interface a little less confusing.
### Version 2.0:
1. **\[BUG\]\[MISC\]** On launch of the game, fixed a registry check
that could cause an error message to be incorrectly displayed
regarding a \"Complete Install\" not being performed. This was due
to permission issues relating to UAC (Vista, Win7, Win8).
2. **\[BUG\]\[EXPLOIT\]** Units without the \"Amphibious Pods\" ability
can no longer move to a land square from a ocean base without there
being a transport in either the land square or the ocean base. The
previous buggy behavior would allow the unit in the ocean base to
move to the land square as long as there was any existing unit in
that square.
3. **\[BUG\]\[SMACX\]** Prevent the Caretakers from being given the
oppertunity to build the Secret Project \"Ascent to Transcendence\"
which goes against their philosophy. If completed, they would
declare war on themselves and get a Transcendence victory.
4. **\[BUG\]\[MOD\]** You can now evict probes from squares that have
more than one probe or other units in the stack as long as the probe
is the top most unit. When evicting, only the top most probe is sent
back to its own faction\'s territory.
5. **\[BUG\]\[SMACX\]** After the AI successfully completes the probe
action of freeing a captured faction leader, it would instead reset
a non-captured faction. The problem was that AI would always try to
free the first faction, usually being the PC, regardless of whether
this faction was eliminated or not. Now it will obtain all the
potential captured faction leaders and free one randomly.
6. **\[BUG\]\[MOD\]\[SMACX\]** Add references for the use of a new file
\"movlistx.txt\" to allow for expansion specific information text to
be displayed after a Secret Project movie has been played.
7. **\[MOD\]** The \"Nessus Canyon\" landmark is now placed when
generating random maps.
8. **\[BUG\]** The \"attacking along road\" combat bonus is now
correctly applied for combat taking place on roads or magtubes. It
is set to 0 by default in alpha/x.txt.
9. **\[MOD\]** There are a number of unused pcx image files in relation
to the random script event near a base of whether new resources are
discovered or existing ones are depleted. The game will now display
one of twelve images depending on the square (land, ocean) and
resource type (minerals, energy, nutrients) instead of showing a
general warning image for every event.
10. **\[MOD\]** As part of the Datalinks, add the ability to set
individual entries for armor and reactors (help/x.txt) as well as
enable the display of the \"Sea Formers\" unit.
11. **\[BUG\]** Fixed a bug where a \"Planet Buster\" (PB) could
detonate after being initially shot down. Each faction has one
chance to defend against an incoming PB if they have bases or units
in the blast radius. However, there is a check to give the owner of
the ground zero square a chance to defend against the PB even if
they have no units or bases in this territory. This check didn\'t
take into account whether or not the PB had already been shot down
by another faction.
12. **\[BUG\]\[SMACX\]** When another faction detonates a \"Fungal
Missile\" near one of your bases, sometimes a script message would
use an incorrect faction name as part of the text.
13. **\[BUG\]\[MOD\]\[SMACX\]** When detonated in or near ocean squares,
\"Fungal Missiles\" could spawn \"Mind Worms\" or a \"Fungal Tower\"
in those ocean squares that would then die instantly after the end
of turn. Now, a native sea unit will spawn in their place like an
\"Isle of the Deep\" or a \"Sealurk\".
14. **\[BUG\]** Fixed an erroneous message that the use of nerve gas
caused massive casualties at a base even when the attack failed.
15. **\[MOD\]** Added the ability to set the reactor type (1-4) for
\#UNITS inside the alpha/x.txt. To do so, just add a comma after the
Abil field with the value of the reactor you want for the unit. As
an example, \"Colony Pod,\..., 00000000000000000000000000,4\" will
give all \"Colony Pods\" a Singularity Engine. If no value is set,
it defaults to \"1\" like original code. For SMACX only, there are
two exceptions for \"Battle Ogre MK2\" and \"Battle Ogre MK3\" where
default isn\'t \"1\" but \"2\" and \"3\" respectively. You can still
override the Ogres default.
16. **\[BUG\]** \"Colony Pods\" or \"Sea Colony Pods\" can now be added
to existing bases where fungus has spread to the base\'s square.
Also, ignore restrictions regarding land or ocean squares when
adding pods to existing bases.
17. **\[BUG\]** Due to an incorrect check, a message would fail to
display telling you that a transport with no units has nothing to
disembark when moved into a non-base land square.
18. **~~\[BUG\]~~** ~~Changing start date for Perihelion event to be
2160 from 2190. This is to be consistent with info about Planet and
cycle from readme regarding 80 year cycles (20 years near, 60 years
far).~~
19. **\[CRASH\]** Under extremely rare circumstances, the game would
crash when an AI faction with no bases attempted to upgrade a unit.
20. **\[BUG\]** Abandoning a base after building a \"Colony Pod\" no
longer skips the base production of the next base in line. This was
caused by the upkeep function using incorrect base values after the
abandoned base was destroyed.
21. **\[BUG\]** Non-amphibious units can now move from a transport into
Pact sea base since movement to and from Pact bases should be
identical to your own.
22. **\[BUG\]\[SMACX\]** Interludes \#6 and \#7 would display incorrect
string values specific to either the Caretakers or Usurpers for
non-Progenitor factions.
23. **\[BUG\]** Interlude \#6 would sometimes be triggered by native
life forms causing issues with the display strings and not making
sense. This interlude (and its follow up \#7) are designed only for
actual rival factions.
24. **\[BUG\]** Fixed the rendering of the menu when using the scenario
editor to change the faction id of the former owner of a base.
25. **\[BUG\]** Fixed the CC/BP combat bonus bug.
26. **\[BUG\]\[EXPLOIT\]** Fixed the AI base trading exploit. (credit to
kryub)
27. **\[EXPLOIT\]** Fixed the energy stockpile exploit. (credit to
kyrub)
28. **\[BUG\]** Fixed the parsing of the \"Retool strictness\" value in
alpha/x.txt so \"Never Free\" works correctly. This would only apply
if you wanted to give a retooling penalty when switching to \"Secret
Projects\".
29. **\[BUG\]\[MOD\]** Factions with the FREEPROTO flag (Spartans) will
gain free retooling in their bases as long as the production switch
is within the same category (unit to unit, base facility to base
facility) and they\'ve discovered the necessary tech (\"Advanced
Subatomic Theory\"). This is to resolve the issue with FREEPROTO
factions never being able to gain the undocumented retooling ability
of \"Skunkworks\" when it is fairly clear that they should.
30. **\[EXPLOIT\]** Using the right click \"Save current list to
template\" and \"Load template into list\" features of base queue
can be used to bypass retooling completely. Fixed so these queue
template features only save and load the actual queue and not affect
the item currently in production.
31. **\[BUG\]** When drilling an aquifer, there isn\'t a check whether a
river already exists in the initial square. Now, it checks the the
initial square as well as the eight square around it.
32. **\[BUG\]** Fixed an issue where diplomacy dialog could be
incorrectly displayed due to faction id value being set incorrectly.
This best exhibited where Progenitors switch into \"Human\" dialog
syntax.
## Non-Engine Fixes
1. **\[BUG\]\[MOD\]** Overhaul of all text files correcting spelling,
grammar and various formatting issues by Guv\'ner. See his projects
readme for more details since the changes are too numerous to be
mentioned beyond the highlighted bug fixes below. Also, as part of
this an update fork of GooglyBoogly\'s Datalinks v1.3 is included
for SMACX.
- **\[BUG\]** Enabled the \"Antigrav Struts\" special ability for
air units as stated in the manual. (alpha/x.txt)
- **\[BUG\]** Disabled the \"Clean Reactor\" special ability for
Probe Teams because they already don\'t require any support.
(alpha/x.txt)
- **\[BUG\]** Amended base seizure notifications that would
display incorrect plurality for the faction losing the base.
(scripts.txt)
2. **\[BUG\]** Needlejet \"DATA\" edit window via scenario editor
wouldn\'t render properly making it so you couldn\'t edit the stats.
(scripts.txt)
3. **\[BUG\]** When attempting to build a sea base inside another
faction\'s territorial waters, you were suppose to receive warning
messages that were mislabeled. (scripts.txt)
4. **\[BUG\]** Added a new entry that was missing when you attempted to
use \"B\" or \"b\" shortcuts with a non-combat unit that didn\'t
have a \"Colony Pod\". (scripts.txt)
5. **\[BUG\]** Added new entries that were missing in conjunction with
an engine fix for when \"retool strictness\" in alpha/x.txt is set
to \"never free\". (scripts.txt)
6. **\[BUG\]\[SMACX\]** When attempting to terraform an ocean square
other than shelf, aquatic factions (Nautilus Pirates) were suppose
to receive a warning message that was mislabeled. (scripts.txt)
7. **\[BUG\]** Fixed the display of the base facility quotes inside the
Datalinks caused by incorrect ids. Added the missing quotes for
SMACX specific facilities transcribed from their audio clips.
(blurbs/x.txt)
8. **\[BUG\]\[SMACX\]** Fixed the display of an image used for Fungal
payloads script events by renaming fungalpayld\_sm.pcx.
9. **\[BUG\]\[SMACX\]** Fixed the display of an image used for script
events when Progenitor factions capture a human base by renaming
humref\_sm.pcx.
10. **\[BUG\]\[SMACX\]** Fixed the display of an image used for Spore
Launcher script events by renaming sporelnch\_sm.pcx.
11. **\[BUG\]\[INSTALLER\]** Create a registry entry that is usually
missing to suppress the \"CDNOTFOUND\" warning message on launch.
12. **\[BUG\]\[INSTALLER\]** Register the SMAC \"Alpha Centauri\" font
with Windows so the game credits are displayed correctly.
13. **\[MOD\]** Add new versions of Arial font to SMAC directory that
will be more compatible with more recent monitors. If you notice
graphical issues with the in game text, revert back to original font
found inside backup directory.
14. **\[BUG\]** Add netcr\_sm.pcx that was missing for a script event
when a Network Node crashes. The image was taken from the Planetary
Pack\'s Alternative Art folder with scan lines added by BU.
15. **\[BUG\]** Add rdminldp\_sm.pcx that was missing for a script event
regarding minerals being depleted in conjunction with an engine fix.
The image was taken from the Planetary Pack\'s Alternative Art
folder with scan lines added by BU.
16. **\[BUG\]** Fixed an audio clip for when Network Node is already
linked from repeating itself by adding fractional amount of silence
to end of clip.
17. **\[BUG\]** Fixed an audio clip not playing when Missile Launcher
weapons are used by remixing from stereo to mono (edited by chuft).
18. **\[BUG\]** Fixed an audio clip not playing when Singularity Laser
weapons are used by remixing from stereo to mono (edited by chuft).
## Credits
So far beyond a few, all of the patches to the exe are done by myself (@b-casey).
Thanks goes out to WBird784 for his crash fix and kyrub for his two
fixes. A special thanks goes out to Guv\'ner for his overhaul of all the
text files. I\'d like to thank a few people for their work behind the
scenes. First off, a big thank you should go out to vyeh for the work
he\'s done in overseeing the administrative aspects of project. He has
definitely helped motivate me by keeping in contact and setting up
community at
[CGN](http://www.civgaming.net/forums/forumdisplay.php?f=15) for this
project. Another big thank you goes to buster (the owner of
[CGN](http://www.civgaming.net/forums/forumdisplay.php?f=15)) for
providing dedicated forums for project and being willing to host the
unofficial patch. chuft for helping moderate and organize project forums
on [CGN](http://www.civgaming.net/forums/forumdisplay.php?f=15). Darsnan
for making playtest scenarios used in testing of fixed game mechanics.
GooglyBoogly for his Datalinks update and comprehensive testing of patch
changes. BlackCat, BU, ete, Flygon, Googlie, Illuminatus, Kilkakon, Lord
Avalon, Mart, Nevill, Petek, Psyringe, Rubin, [AC2
forums](http://alphacentauri2.info/index.php), [WPC
forums](http://www.weplayciv.com/forums/forumdisplay.php?f=7) and anyone
else who has reported bugs, given feedback and support to this project.
Qwinn for letting me use the html shell of his readme. And of course to
the developers of SMAC and SMACX for making two great games that are
still being played even to this day!