Difference between revisions of "User:Seb76"

From UFOpaedia
Jump to navigation Jump to search
(→‎Bug Fixes: Crash On First Move. Xusilak at it again :))
Line 359: Line 359:
 
* Show All Locations: displays all active locations, detected or not
 
* Show All Locations: displays all active locations, detected or not
 
* FPS: show an FPS counter in the geoscape. Mostly used for debugging D3D
 
* FPS: show an FPS counter in the geoscape. Mostly used for debugging D3D
  +
  +
== Accuracy bug ==
  +
Hello Seb, I'm new here and could not find any other way to reach you about UFO extender. If somebody knows how to properly edit this passage please do so.
  +
  +
The problem (bug?) is that while using extender, I noticed crouching does not affect accuracy (or it was not shown on the cursor %). And having something on both hands doesn't affect accuracy (or, again, it was not shown on the cursor accuracy %).

Revision as of 06:08, 1 May 2011

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.

UFO Extender

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: File: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.

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). 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 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: File: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 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):

Equip.png

  • During a mission, it looks like this:

Ingame.png

  • You can also have the rank shown:

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. -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:

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:

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

Disjoint.png

Base Building Stacking

You can place base stuctures in advance. The construction will start when possible:

Queue1.png 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)

Burst1.png Burst2.png Burst3.png

  • Full auto: you select 2 points, the soldier will spray the area inbetween with 8 shots

Fullauto1.png Fullauto2.png 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.

Acc0000.png Acc0001.png Acc0002.png

Stun Fest

Add the "Stun" command in the menu for most weapons. The TU/Damage is based on the weapon's class:

Weapon ClassStun DamageTU %s
Pistols2015
Rifles and small launcher5040
"Heavy" weapons and auto-cannon6550
Launchers8080
Stun Rod (unchanged)6530

Bug Fixes

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).

Blasted1.png 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
  • Funding Council Income Only
  • 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
  • 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

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 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
  • Limited Military
  • De equip crafts

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

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: shrink 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.
  • Doubleclick Movement: change the requirement for moving a unit in the battlescape from clicking a tile once, to doubleclicking it (within 500ms). Failing to doubleclick will result in no action being taken. This allows for a considerable safety margin with movement, as the default movement controls are easy to accidentally trigger on the wrong tiles.

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

Accuracy bug

Hello Seb, I'm new here and could not find any other way to reach you about UFO extender. If somebody knows how to properly edit this passage please do so.

The problem (bug?) is that while using extender, I noticed crouching does not affect accuracy (or it was not shown on the cursor %). And having something on both hands doesn't affect accuracy (or, again, it was not shown on the cursor accuracy %).