Difference between revisions of "User:Seb76"

From UFOpaedia
Jump to navigation Jump to search
(→‎Mods: Xusilak is in the house!)
 
(21 intermediate revisions by 9 users not shown)
Line 6: Line 6:
 
Nowaday, most of my occupation with XCom is analysis of its code, and trying to explain the odd behaviors and see how the game can be exploited (with the help of a few patches). I'll try to gather here the most interesting pieces that I can find (most of my findings are scattered across the talk pages for the moment). Feel free to use the talk page if you have questions/suggestions.
 
Nowaday, most of my occupation with XCom is analysis of its code, and trying to explain the odd behaviors and see how the game can be exploited (with the help of a few patches). I'll try to gather here the most interesting pieces that I can find (most of my findings are scattered across the talk pages for the moment). Feel free to use the talk page if you have questions/suggestions.
  
== UFO Extender ==
+
=UPDATED WIKI PAGE: [[UFOextender| See here]]=
This section is about a loader I'm working on that adds functionalities/fixes to the UFO Collector edition of the game. You can grab it here: [[Image:UFOLoader.zip ]]. The loader patches the program in memory, it does '''not''' modify the executable. The advantage is that it won't change the file on disk so there is little risk of destroying your game installation (still, it is wise to do a backup of your game folder before using this). Modifications are seamless: there is no need to restart or wait for a geoscape/tactical transition to see the effect of the patches.
+
Seb has been inactive for quite some time so a new page dedicated to his awesome loader has been created. Please go there for the latest information. - [[User:Morgan525|Tycho]]
  
By default no patch is enabled; you need to activate them in the ini file. To use, just unpack the zip file in your XCOM directory, edit the ini file and start the UFOLoader.exe file. It looks for a file named "UFO Defense.exe" (you can arrange that in the ini file).
+
Seb's original page can be found [[Seb76old| here]].
Of course, if your computer fries while you're using it, I don't take any responsability...
 
 
 
Do not hesitate to report any problem you encounter with it, I'll try to help you fix it. Also feel free to propose any idea that might be worth a mod ;-)
 
 
 
NB: You need the VC2008 runtime to run this program. If you don't already have it installed, you can get it [http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en here].
 
Also if you want to use the mp3 patch, you need to have Windows Media Player installed.
 
 
 
For the curious out there, source is available here: [[Image:UFOExtender-src.zip]]. The code is awful but I'm too lazy to fix that...
 
 
 
Also I noticed on forums that some people try to run this along with et_2005: there is little chance that it's gonna work. I presume et_2005 heavily modifies the binary and trying to patch on top of it is quite hazardous. Some stuff may work, some other may not; you're on your own there.
 
Finally I don't do DAT files modifications because there are already lots of mods based on that. This allows them to keep working with the loader (that is why some xcomutil features should still work, as long as they are only based on resource modifications).
 
 
 
=== Equipment Screen ===
 
This patch changes the equipment screen. It effectively renders [[Statstrings|statstrings]] obsolete ;-)
 
*Before battle, it changes the screen like this (in the final version, the psi stats are only shown when the psi skill has been trained):
 
 
 
[[Image:Equip.png]]
 
 
 
*During a mission, it looks like this:
 
 
 
[[Image:Ingame.png]]
 
 
 
*You can also have the rank shown:
 
 
 
[[Image:Rank.png]]
 
 
 
(The "Weight>" at the bottom is only because I use a modified english.dat with an old patch, you should not see it in your version)
 
 
 
*Show Grenade State: if you select a primed grenade, it'll be indicated in the description
 
*Save Equipment: automatically reequip your team with their last weapon layout ('''HIGHLY EXPERIMENTAL'''). New recruits will be given a gun and some ammo but nothing outstanding. Don't forget to properly equip them
 
*Auto Flares: automatically equip flares (if available in the craft) during night missions (only works with Save Equipment)
 
 
 
=== Music ===
 
==== PSX CD ====
 
If you have the PSX version of the game, you can enjoy the CD music with this patch. The tracks are mapped like that:
 
* 1,2,3,4: geoscape music
 
* 5: gmdefend
 
* 6: gmenbase
 
* 7: gmmars
 
* 8: gminter
 
* 9: gmstory
 
* 10,11: battlescape music
 
* 12: gmnewmar
 
 
 
gmwin and gmlose are not available. Because of similarity, gmlose is replaced with gmstory and gmwin with gminter.
 
 
 
: I'm just wondering if it would be an idea to providing a selectable option that allows you to mix up the tactical music to include some of the other tracks as well, like the Geoscape tracks or gmstory. Breaks up the monotony a bit and can sometimes change the mood of the battle. But leave that until after you've achieved what you're setting out to achieve.
 
 
 
: The intro should stick with the midi music, or you could use the interception music since that is a remix of the intro. On second though, scrap that - it lacks the slow buildup that is a major part of the intro.
 
 
 
: P. S. Oh, and don't forget that the PSX music tracks start from track 02. -[[User:NKF|NKF]]
 
:: Hehe, you should have posted this yesterday. I lost one hour banging my head in a why-the-hell-does-it-play-interception-music-in-the-menu way before I realised that ;-) The intro music does not use the same mecanism as ingame music so it is not impacted by the modification. As for your suggestion, well the patch is written in C and mciSendString is flexible enough to allow stuff like that I think. The most difficult part is to define what we want... I'll however update with the current version and keep that improvement for later.
 
 
 
==== MP3 music ====
 
If you have mp3 music files available for the game, you can use them instead of the default MIDI ones (see default ini file as an example). Note that the intro music will still use the original files.
 
 
 
=== Wreck Analysis ===
 
Until the construction of hyper-wave decoders, it is impossible to know what missions aliens are performing. Even after recovering an alien ship, XCOM intelligence is unable to determine what was its purpose. This is no longer true. Salvaged navigation modules can now be analysed and may reveal what evil intentions the aliens had:
 
 
 
[[Image:Wreck_analysis.png]]
 
 
 
The probability of retrieving the information is based on the difficulty and on the number of UFO navigation items recovered from the mission. UFO mission and geographical zone can be discovered individually too.
 
 
 
=== Roswell mod ===
 
Make scout ships possibly crash during their missions:
 
 
 
[[Image:Roswell.png]]
 
 
 
It can happen to all scouts, either detected or not. Crashed UFOs will be made visible so that you can initiate recovery missions.
 
 
 
=== Base Disjoint Bug ===
 
[[Image:Disjoint.png]]
 
 
 
=== Base Building Stacking ===
 
You can place base stuctures in advance. The construction will start when possible:
 
 
 
[[Image:Queue1.png]] [[Image:Queue2.png]]
 
 
 
Funds are credited when you place an element. No refund is possible. There might be some issues with 2x2 structures, report any problem
 
you encounter.
 
 
 
=== Heavy Laser ===
 
This adds 2 firing modes to the heavy laser (which sucks big time by default :p):
 
*Burst mode: you select 3 target points, and the soldier will shoot a 5 shots burst (on each and between points)
 
[[Image:burst1.png]] [[Image:burst2.png]] [[Image:burst3.png]]
 
 
 
*Full auto: you select 2 points, the soldier will spray the area inbetween with 8 shots
 
[[Image:fullauto1.png]] [[Image:fullauto2.png]] [[Image:fullauto3.png]]
 
 
 
*Firing the weapon will cost 50 energy
 
 
 
=== Range Based Accuracy ===
 
This modifies the accuracy based on the distance from the target. The accuracy decreases linearly (2% per tile) when shooting beyond the limit of the firing mode:
 
* auto shot: 7 tiles
 
* snap shot: 15 tiles
 
* aimed shot: no penalty
 
These values should be considered as a first draft; they are configurable in the ini file so feel free to test other settings and report back if you find good ones.
 
 
 
[[Image:Acc0000.png]] [[Image:Acc0001.png]] [[Image:Acc0002.png]]
 
 
 
=== Stun Fest ===
 
Add the "Stun" command in the menu for most weapons. The TU/Damage is based on the weapon's class:
 
<table {{StdCenterTable}}>
 
<tr {{StdDescTable_Heading}}><th align="left" width="150">Weapon Class</th><th width="90">Stun Damage</th><th width="75">TU %s</th></tr>
 
<tr><th align="left">Pistols</th><td>20</td><td>15</td></tr>
 
<tr><th align="left">Rifles and small launcher</th><td>50</td><td>40</td></tr>
 
<tr><th align="left">"Heavy" weapons and auto-cannon</th><td>65</td><td>50</td></tr>
 
<tr><th align="left">Launchers</th><td>80</td><td>80</td></tr>
 
<tr><th align="left">Stun Rod (unchanged)</th><td>65</td><td>30</td></tr>
 
</table>
 
 
 
=== Bug Fixes ===
 
* Scroll speed in tactical mode is reduced. It is too fast for certain hardware configurations
 
* [[Known_Bugs#Phantom_Radar | Phantom radar bug]] fixed. Radar coverage is updated when facilities are destructed
 
* [[Known_Bugs#Paying_For_Dirt | Pay for dirt]] bug removed. The cause was a funny one ^_^
 
* If you're tired of having to reselect your TU reserve mode at the begining of each turn, then the "Save Reserve Mode" patch is for you :)
 
* [[Known_Bugs#Base_Disjoint_Bug | Base disjoint bug]]
 
* [[Known_Bugs#Base_Facility_Dismantle-Construction_Crash | Base Facility Dismantle-Construction Crash]]
 
* [[Known_Bugs#Radar_Stacking | Radar stacking ]] enabled. Credits go to [[User:Spike#Base_Fixer | Spike]] for I used something close to his formula.
 
* [[Known_Bugs#Collectors_Edition_Blaster_Bomb_Bug | Vertical waypoints blaster bomb bug]]
 
* Garbled video output due to ignored pitch
 
* [[Known_Bugs#Interceptions:_Last_Shot_Always_Misses | Problem with last salvo ]] during dogfights. The ship won't retreat when running out of ammo, allowing the last salvo to hit. Not the perfect solution, but you may still find this useful
 
* [[Known_Bugs#The_trouble_with_Mines_in_General | Armed state issues]] with proximity grenades when reloading a game. Should also fix [[Known_Bugs#What_just_exploded.3F | "What just exploded?"]]
 
* [[Known_Bugs#The_trouble_with_Mines_in_General | Experience issue]] with proximity grenades. The thrower now gets the experience, not the poor alien that blows up...
 
* [[Known_Bugs#Fuel_dump_on_transfer | Refueling issue]] when transfered crafts arrive (enabled by default if you use the "Crafts Always Ready" mod)
 
* [[Known_Bugs#Elerium-fueled_Craft_Bug | Elerium fueled crafts bug]] when fuel level is 50%
 
* [[Base_Facilities#Displayed_Base_Maintenance_Cost_Bug | Displayed Base Maintenance Cost Bug]]
 
* Enable sound effects during the intro
 
* Game freezes a bit when MIDI music change
 
* [[Known_Bugs#Door_jam | Door jam]]
 
* [[ExploitsA#Robotic Manufacturing|Robotic Manufacturing]] / [[ExploitsA#Cybernetic Laboratories|Cybernetic Laboratories]]. You cannot get more than 255 engineers/scientists, buying more will just result in them being lost during transfer...
 
* [[Known_Bugs#Funky_Fire | Funky fire]] fix: Fire/stun damage applied only at the end of the turn. Maximum fire damage increased from 5 to 10 to compensate
 
* [[Why civilians go rogue | Hostile Civilians]] fix. Not really tested, may fix some mind control abuses.
 
* Animations Speed: Reduce the animation speed of cursors and smoke/fire.
 
 
 
=== Shortcuts ===
 
Enable keyboard shortcuts. The keymap is qwerty.
 
 
 
==== Default key mapping in geoscape ====
 
*UpArrow: Rotate Up
 
*DownArrow: Rotate Down
 
*LeftArrow: Rotate Left
 
*RighArrow: Rotate Right
 
*MouseWheelUp: Zoom In
 
*MouseWheelDown: Zoom Out
 
*1: Geo Speed1
 
*2: Geo Speed2
 
*3: Geo Speed3
 
*4: Geo Speed4
 
*5: Geo Speed5
 
*6: Geo Speed6
 
*MouseMiddle: Intercept
 
*B: Bases
 
*G: Graphs
 
*U: Ufopaedia
 
*Escape: Options
 
*F: Fundings
 
 
 
==== Default key mapping in battlescape ====
 
*UpArrow: unit goes up
 
*DownArrow: unit goes down
 
*LeftArrow: left menu
 
*RightArrow: right menu
 
*Return: end of turn
 
*Escape: options menu
 
*BackSpace: go to next unit, remove current from the queue
 
*Tab: go to next unit
 
*Space: go to inventory
 
*PageUp: view goes up one level
 
*PageDown: view goes down one level
 
*1: reserve mode off
 
*2: reserve mode snap
 
*3: reserve mode auto
 
*4: reserve mode aimed
 
 
 
==== Key names ====
 
Standard keys (A, 2, etc) are indicated as-is, the following "special" keynames are available (case insensitive):
 
{|
 
|
 
*Back
 
*BackSpace
 
*Back Space
 
*Tab
 
*Clear
 
*Return
 
*Enter
 
*Shift
 
*Control
 
*Menu
 
|
 
*Pause
 
*Escape
 
*Space
 
*Prior
 
*PageUp
 
*Next
 
*PageDown
 
*End
 
*Home
 
*Left
 
|
 
*Up
 
*Right
 
*Down
 
*Print
 
*Insert
 
*Delete
 
*Num0
 
*Numpad0
 
*Num1
 
*Numpad1
 
|
 
*Num2
 
*Numpad2
 
*Num3
 
*Numpad3
 
*Num4
 
*Numpad4
 
*Num5
 
*Numpad5
 
*Num6
 
*Numpad6
 
|
 
*Num7
 
*Numpad7
 
*Num8
 
*Numpad8
 
*Num9
 
*Numpad9
 
*Multiply
 
*Add
 
*Separator
 
*Subtract
 
|
 
*Decimal
 
*Divide
 
*F1
 
*F2
 
*F3
 
*F4
 
*F5
 
*F6
 
*F7
 
*F8
 
|
 
*F9
 
*F10
 
*F11
 
*F12
 
*MouseMiddle
 
*MouseWheelUp
 
*MouseWheelDown
 
*MouseWheelLeft
 
*MouseWheelRight
 
|}
 
 
 
If you need a key not listed here and you know its VK_* code, you can specify it with it's hex value (e.g. 0x90 for num lock)
 
 
 
The implementation is rather messy, expect side effects and report them...
 
 
 
=== Mods ===
 
* Hot grenades: they do explode even when held...
 
* Alien Inventory: access to mind controlled units' inventory is granted
 
* Crafts Always Ready: allow crafts to take off even when not 100% refueled/rearmed/repaired
 
* Aliens do not seem to care if you assault a landed UFO. You can now have them retaliate as if their ship was shot down. Note that this was not extensively tested so feel free to report any odd thing that may happen when this patch is activated!!
 
* Skippable intro movie
 
* Why can't we use alien weaponry without researching? After all a gun's a gun, you just pull the trigger... A new hack was added for this. When activated, you can use all alien items you recovered. Of course you still do need to research items before you're able to manufacture them!
 
* No Blaster Bomb Drift: disable the randomness applied to blaster bomb trajectories between waypoints. It'll solve drifting issues experimented with the blaster launcher, but also make aliens even more deadly with that weapon since the hard coded accuracy of 55% they have won't affect their shots anymore
 
* Recover All Clips: recover all clips after tactical phase, even those that have been used (does not recover completely depleted ones)
 
* No Alien Psi: no more psi trouble when fighting sectoids/ethereals
 
* Kill stunned units in explosions: usually, unconscious units just disappear when they blow up. Now you can score a kill when you blast stunned units (with the experience, morale and all the stuff that goes with it).
 
[[Image:Blasted1.png]] [[Image:Blasted2.png]]
 
 
 
In case of XCom units destroyed that way, they'll no longer go MIA but KIA
 
* Keep Base Navigation Modules: do not remove navigation controls from recovered items after a successful base assault
 
* More Smoke: set the limit of smoking tiles to 2048 (up from 400). I don't expect this to work perfectly on the first try; smoke is referenced on lots of places and I'm not sure I patched everywhere needed. Report what works and what fails
 
* Force Language: tired of selectin your language every time your start the game? This is for you
 
* [[Making_the_Game_Harder#Funding_Council_Income_Only | Funding Council Income Only]]
 
* [[Making_the_Game_Harder#Base_Defense | Surrender Defence Missions]]
 
* Disable Base Defenses: disable the base defence mecanism. Why delay the inevitable? A battle ship will eventually come through... Useful if you want to use some defence modules for tactical purposes
 
* [[Aliens_Own_Earth | Initial Alien Bases]] without the trouble of setting things up
 
* Show grenades primed status
 
* Faster base defense sequence: remove the wait periods during base defense sequence. The need to press the button can be removed too
 
* Reorder soldiers in craft
 
[[Image:SoldiersPosition.png]]
 
 
 
If you hold the mouse button for more than 200ms when clicking, the soldier will be moved to the top/bottom of the list.
 
Now you can force rookies on the front line... It also enables you to check the soldier's stats by clicking on his name.
 
 
 
* Line of fire restriction for psiamp and mind probe. Of course the aliens are not impacted
 
* Change initial base layout
 
* Change [[Experience#Regarding_Caps | experience caps]]
 
* No Funkers: only guys that went on the last mission are checked for promotion
 
* Bloodthirst: compute the "promotion score" based on killing stats only
 
* [[ Making_the_Game_Harder#Limited_Miltary | Limited Military ]]
 
* De equip crafts
 
[[Image:Deequip.png]]
 
* TFTD Doors: open a facing door by right-clicking. It'll cost you 4 TUs
 
* Assign all personnel (scientists/engineers) on a project by decreasing quantity below zero (à la ET)
 
* HQ4x: raise the resolution of the game and apply some filtering. It is quite CPU intensive though...
 
* D3D: replace DirectDraw calls to Direct3D9. It sets the monitor to its default resolution and uses D3D to stretch the image on screen. It may also fix the speed issues if your video driver is configured properly
 
* D3D Windowed: run the game in a window
 
* Always On Top: force the window in the foreground
 
* Clip Cursor: prevent the cursor from going outside the window. Move/resize the window to unlock it.
 
* Scale Mouse: attempt to fix the cursor running off screen when using HQ4x and/or D3D
 
* Screen Ratio: add black bars to keep aspect ratio on non 16/10 monitors (based on patch from mikawo)
 
* No Auto Wake Up: stunned unit still have their stun level decrease, but they won't wake up on there own
 
* Alien Bleeding: aliens suffer from fatal wounds
 
* No Alien Freak Out Messages: don't show "Alien Commander has panicked" and the like messages
 
* Max FPS: limit the framerate for the ones that cannot get vsync working. Not as smooth as vsync limited, but better than nothing (only works with D3D or Video Pitch enabled)
 
* Craft Ready Message: notify when a craft is ready
 
[[Image:CraftReady.png]]
 
* CPU Mask: force the process on a specific processor (1 is processor 0, 2 is processor 1, 4 is processor 2, etc)
 
* High Priority: run XCOM with "above normal" priority
 
* General Store Capacity: change the capacity of general stores (default is 50). Capped at 187 to prevent integer overflows.
 
* Auto Sell: allows the player to activate an automatic production and automatic selling mode in manufacturing. By pressing the down arrow button to reduce the quantity of desired items below zero, the mode will switch to the autosell mode, represented by three dollar signs ("$$$"). In this mode, production will never cease unless resources become unavailable, and all produced items will be immediately sold. By pressing the down arrow a second time, it will switch to autoproduce mode, represented by three asterisks ("***"). This functions in the same way as autosell, but the results will not be sold, merely stockpiled forever; caution should be used with this mode, as it can drain resources quickly
 
* Show Money: shrinks the clock in the date/time panel on the main geoscape screen, and adds a funds display above it. It is useful for examining remaining funds during manufacturing projects, while waiting for time to pass.
 
 
 
=== OBDATA.DAT patching ===
 
Change the value of some OBDATA.DAT settings on the fly.
 
To change a value, add a line "itemname setting=value" (without the quotes). For example:
 
 
 
High Explosive Damage=200
 
 
 
Available settings:
 
*Damage
 
*Resistance (to explosions)
 
*Weight
 
*Damage Type
 
*Auto accuracy
 
*Snap accuracy
 
*Aimed accuracy
 
*Auto TUs
 
*Snap TUs
 
*Aimed TUs
 
*Size (clip size)
 
 
 
Item names are case insensitive and available at [[OBDATA.DAT]].
 
 
 
=== Hacks ===
 
These hacks heavily alter the gameplay and should only be used for testing purpose.
 
 
 
* Prevent game over when score is really bad at the end of the month
 
* Big brother: all shall be revealed ;-)
 
* Alien pets: Alien turn handed over to the human player
 
* Show All Locations: displays all active locations, detected or not
 
* FPS: show an FPS counter in the geoscape. Mostly used for debugging D3D
 

Latest revision as of 02:53, 20 November 2014

Hi guys, I've been posting here for quite some time now so I guess it's time to make this page. For now it's just a stub, I'll try to update it when time is available.

I was a teenager when the game came out. I had no computer back then but I remember playing it on the computer of a friend's father, it was simply awesome. Years passed, and 3D completely changed the face of videogames. The main focus was turned to polygon counts and frames per second. Duke Nukem, Quake, Unreal, -you name any FPS-; I totally forgot about the "old-era" games. Later my interest in emulation brought me to the dosbox project; a real wayback machine... After all this 3D orgy, I decided to give it a shot and restarted the old X-COM just for fun. But then all memories came back at once; the music, the huge pixels, the tension of the first terror mission... The feeling was still the same after all the years. Still unmatched. IMHO the "best game ever" award it got is really deserved. I since tried the "UFO after-xxx" spinoffs, but I think their pseudo-realtime aspect removes what make X-COM unique to me, this feeling you get when you press the end of turn button. Everything can happen then...

Nowaday, most of my occupation with XCom is analysis of its code, and trying to explain the odd behaviors and see how the game can be exploited (with the help of a few patches). I'll try to gather here the most interesting pieces that I can find (most of my findings are scattered across the talk pages for the moment). Feel free to use the talk page if you have questions/suggestions.

UPDATED WIKI PAGE: See here

Seb has been inactive for quite some time so a new page dedicated to his awesome loader has been created. Please go there for the latest information. - Tycho

Seb's original page can be found here.