Xfire Technical Notes

(Release Notes also available)

Due to popular demand, we are trying to do a better job communicating technical changes to Xfire skinners, modders, etc. who are interested in what we do. This page will contain relevent technical changes each update. We hope that this will be helpful! Please give us feedback in the skins forum to let us know how we're doing.

Technical Notes for Release 1.113

You can now login to MSN Messenger using Xfire. This is a first release so there are several known issues, but we will be improving this in upcoming releases.

--- Chris Kirmse
General Manager, Xfire

Technical Notes for Release 1.101

We're starting an alpha test of a web browser in Xfire In-Game. For this release it is only available in Guild Wars, and you must go to the options display in-game to enable it each time you want to use it. The browser is a heavily tweaked interface to Internet Explorer. Feedback is appreciated.

--- Chris Kirmse
General Manager, Xfire

Technical Notes for Release 1.96

There will be an alpha test of a new feature to broadcast your live gaming experience to your friends or all Xfire users. It will begin on 2008-08-14. At that time, go to Tools | Options | Broadcast to enable it, run a game, then press Scroll Lock + B. Keep in mind that this is an ALPHA-quality test, and there are relatively low caps on the amount of people broadcasting video or watching the videos.

Parts of this broadcast feature are powered by dyyno, and some of their technology includes GPL-licensed applications. The applicable source code may be downloaded here.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.95

Flashback video capture stores the following number of frames in memory to record when you start a video capture. Depending on your frame rate, this could be only a couple seconds all the way up to a dozen or more:

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.93

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.91

Even though Xfire is a 32-bit process, on 64-bit operating systems (Windows XP 64 and Windows Vista 64) we run a second process as well, xfire64.exe, which detects 64-bit games. At this time, Xfire In-Game does not work with 64-bit games.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.89

Xfire now uses an accessory program for converting videos from AVI to MP4 format. This accessory program, called xfencoder.exe, is released under the terms of the GPL and the source code may be downloaded here.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.88

There were architectural changes to support the new vertical buttons and make it easier to create skins. There is a new skin class, XfireView, which can be used to display all of the list views for the application. A skin which uses the XfireView class should NOT include a BuddyListView, ServerView or DownloadView class. Backwards compatibility is guaranteed for old skins but the chat rooms, screenshots and videos will be located under their old locations (inside of ServerView and DownloadView).

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.86

Video capture can now be done using Xfire, in a beta state. No third-party software is required. We capture using our own proprietary codec, called xfcodec (creative, I know). This is automatically installed with Xfire, and is needed to view our captured videos (which are stored in the .avi container format) in various media players. Our codec was designed to compress well enough to not make files too big, while at the same time not using too much CPU time as to ruin the game experience. We will continue to improve this codec and the rest of the video capture system in coming releases.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.83

Video capture can now be done using Xfire. This is in a pre-alpha state. To try it out:

Please give us feedback in the forums if this works well for you!

In infoview templates, you can now use %game_shortname% to get the short name of the game.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.82

Although Xfire In-Game 2.0 has only been implemented in our own skins (Xfire, Standard, and Shadow), all skins can add support for it! Please look at the Shadow.zip or Standard.zip in your Xfire installation's skins\ subdirectory to see how it is done. Keep in mind that only skins based on XML files can support Xfire In-Game 2.0.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.79

Injecting Xfire In-Game on Windows Vista with UAC is a real pain; ideally Xfire would not non-elevated, so that you would not be prompted to elevate it each time it runs. However, some games run elevated, and to inject Xfire In-Game into these games, Xfire must be elevated. Additionally, programs marked to run elevated don't properly start upon login if they are set to do so.

To solve this, we run Xfire non-elevated on Windows Vista. If you have a game installed that we know runs elevated, we then launch a second copy of Xfire, elevated, which you must allow. The two copies of Xfire communicate with each other, and the elevated one injects Xfire In-Game into games; it does nothing else.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.77
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.75
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.74
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.72
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.70
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.69
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.67
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.66
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.65
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.63

There are some changes to how infoview files are loaded. Specifically, any time the Xfire client is looking for a file using %include, we look in the following directories:

If it's a game-specific infoview:

  1. templates/custom_infoview/game_shortname/
  2. templates/infoview/game_shortname/
  3. templates/custom_infoview/
  4. templates/infoview
  5. templates/
  6. (not found)

If it's not a game-specific infoview:

  1. templates/custom_infoview/
  2. templates/infoview/
  3. templates/
  4. (not found)

By doing this, we ensure that any infoview customizations that you make will not be overridden by future Xfire updates, and at the same time any custom infoviews can include built-in infoview files easily.

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.62
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.60/1.61
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.59
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.58
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.57
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.56
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.55
Two things this update:

--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.54
--- Chris Kirmse
VP of Engineering, Xfire

Technical Notes for Release 1.53

We are in the process of building a new skins file format based on XML, which will hopefully make it easier to build and debug skins. I'll post more information when it's available.

--- Chris Kirmse
VP of Engineering, Xfire