Skip to content
widberg edited this page Feb 16, 2024 · 95 revisions

See the Tron: Evolution Mod Documentation on XLive and the PCGamingWiki Games for Windows - LIVE entry for more information.

The game can also handle updates using GFWL via FuelUpdate.exe.

XLive Exports (Ordinal <-> Symbol Name)

FUEL.exe.cfg

This is a configuration file used by GFWL to retrieve information about the game.

US

<Liveconfig>
    <titleid>434D082F</titleid> 
    <titleversion>10000084</titleversion> 
    <lankey>FEEFF00D01020304506071728a8da99d</lankey> 
    <enableCrossPlatformSystemLink>false</enableCrossPlatformSystemLink> 
  <OriginalXliveTarget>2.0.0673.0</OriginalXliveTarget>
</Liveconfig> 

RU

<Liveconfig>
    <titleid>434D082F</titleid> 
    <titleversion>10000085</titleversion> 
    <lankey>FEEFF00D01020304506071728a8da99d</lankey> 
    <enableCrossPlatformSystemLink>false</enableCrossPlatformSystemLink> 
  <OriginalXliveTarget>2.0.0687.0</OriginalXliveTarget>
</Liveconfig> 

There are two differences between the regions (1) titleversion is 10000084 in US and 10000085 in RU and (2) OriginalXliveTarget is 2.0.0673.0 in US and 2.0.0687.0 in RU. It makes sense that these are higher in RU than US since the Russian release was later.

Exports

FUEL uses the following exported functions from xlive.dll. The "XLiveLessNess Status" column represents the completeness of the XLiveLessNess implementation of the function. ✔️ means that an honest attempt was made to implement the function, not necessarily that the function works as intended. ❌ means that the function is a TODO item, either entirely or in specific cases.

Ordinal Identifier XLiveLessNess Status Priority
3 XSocketCreate ✔️
4 XSocketClose ✔️
5 XSocketShutdown ✔️
6 XSocketIOCTLSocket ✔️
7 XSocketSetSockOpt ✔️
11 XSocketBind ✔️
12 XSocketConnect ✔️
13 XSocketListen ✔️
18 XSocketRecv ✔️
20 XSocketRecvFrom ✔️
22 XSocketSend ✔️
24 XSocketSendTo ✔️
26 XSocketInet_Addr ✔️
37 XSocketHTONL ✔️
38 XSocketNTOHS ✔️
39 XSocketNTOHL ✔️
40 XSocketHTONS ✔️
51 XNetStartup ✔️
52 XNetCleanup ✔️
55 XNetRegisterKey ✔️
56 XNetUnregisterKey ✔️
57 XNetXnAddrToInAddr ✔️
62 XNetInAddrToString ✔️
63 XNetUnregisterInAddr ❌ (UnregisterSecureAddr) High
65 XNetConnect High
66 XNetGetConnectStatus High
651 XNotifyGetNext ✔️
652 XNotifyPositionUI ✔️
1082 XGetOverlappedExtendedError ✔️
1083 XGetOverlappedResult ✔️
5002 XLiveRender ✔️
5003 XLiveUninitialize ✔️
5008 XHVCreateEngine ✔️
5022 XLiveGetUpdateInformation ✔️
5024 XLiveUpdateSystem Low
5030 XLivePreTranslateMessage ✔️
5031 XLiveSetDebugLevel ✔️
5034 XLiveProtectData ✔️
5035 XLiveUnprotectData ✔️
5036 XLiveCreateProtectedDataContext ✔️
5038 XLiveCloseProtectedDataContext ✔️
5215 XShowGuideUI ✔️
5251 XCloseHandle ✔️
5252 XShowGamerCardUI ✔️
5254 XCancelOverlapped Medium
5256 XEnumerate ✔️
5260 XShowSigninUI ✔️
5261 XUserGetXUID ✔️
5262 XUserGetSigninState ✔️
5263 XUserGetName ✔️
5264 XUserAreUsersFriends ✔️
5265 XUserCheckPrivilege ✔️
5270 XNotifyCreateListener ✔️
5276 XUserSetProperty Low
5278 XUserWriteAchievements Low
5280 XUserCreateAchievementEnumerator Low
5284 XUserCreateStatsEnumeratorByRank ✔️
5286 XUserCreateStatsEnumeratorByXuid ✔️
5291 XUserResetStatsViewAllUsers Low
5292 XUserSetContextEx ❌ (dwContextId (0x00008001) X_CONTEXT_PRESENCE not handled) Low
5293 XUserSetPropertyEx Low
5297 XLiveInitializeEx ✔️ (pPii->wLivePortOverride not handled but we do not need it)
5300 XSessionCreate ✔️
5310 XOnlineStartup ✔️
5311 XOnlineCleanup ✔️
5312 XFriendsCreateEnumerator ✔️
5314 XUserMuteListQuery ✔️
5315 XInviteGetAcceptedInfo ✔️
5316 XInviteSend Low
5317 XSessionWriteStats Low
5318 XSessionStart ✔️
5321 XSessionSearch ✔️ (search criteria not handled but we do not need it)
5326 XSessionJoinRemote ✔️ (always says "Not enough slots" but this is likely due to a problem somewhere else)
5327 XSessionJoinLocal ✔️ (always says "Not enough slots" but this is likely due to a problem somewhere else)
5329 XSessionFlushStats Low
5330 XSessionDelete High
5331 XUserReadProfileSettings ✔️
5332 XSessionEnd High
5336 XSessionLeaveRemote High

Originally a DLL replacement for GTA IV, XLiveLess has grown to become a staple in the Games For Windows Live space. Most GFWL games have a modification of this to patch out the GFWL requirement due to the service being awful, and FUEL is no exception (PCGamingWiki Fuel GFWL Fix (XliveLess)). Both the original XLiveLess and the one for FUEL do the bare minimum to stub out the xlive.dll exports meaning that basically none of the original GFWL functionality will work. However, there are projects which aim to maintain online functionality in addition to the expected XLiveLess features.

It is a replacement for Games For Windows / Games For Windows Live (GFWL). That is (for clarity), you cannot use XLiveLessNess and GFWL at the same time. Xliveless is a different project and is not the same thing as XLiveLessNess. Xliveless does not restore any online functionality and has limited support for attempting to replicate GFWL functionality which leads to issues or crashes in the games themselves. XLLN tries to replicate GFWL functionality such that the game itself does not know it is not actually running on the real GFWL. - What is XLiveLessNess / XLLN?

It is not yet possible to play FUEL multiplayer with another person using XLiveLessNess. While you will connect to the hub and the game will display as online, it is not possible to connect to another player in freeride or career races. Even if both players appear as connected to the hub, a session created by one player will never be found by the other. The closed XLiveLessNess issue Add direct IP joining / invitations improved things here, but FUEL multiplayer still does not work. The continuing issues with multiplayer are likely due to the large number of networking-related TODOs. See also: Networking

There is a FUEL module in the XLLN-Modules repository that fixes some crashes. The first crash this fixes is when during startup, the game looks up the achievements and assumes there will always be at least one, but XLiveLessNess returns uninitialized data by default. There is no plan to support achievements in XLiveLessNess. Secondly, the module fixes a crash where attempting to access the leaderboards will also crash the game. Finally, the module fixes a crash when xlive_xhv_engine_enabled is disabled.

This module also contains some quality-of-life improvements such as allowing XLLN base port to work, launching the game without the SecuROM launcher, and multiple instances of the game to run at once.

In terms of the configuration file, for xlive_user_auto_login_p1... to work you also need to enable xlive_auto_login_on_xliveinitialize if you don't want a prompt asking you to log in on startup; however, enabling this seems to break XLLN (the XLLN window stops responding and printing log messages) this may be due to some XOVERLAPPED problems, since FUEL uses the pXOverlapped argument to XUserReadProfileSettings.

XLiveLessNess is the most complete project in the "replace xlive.dll" market and will be the first thing I reach for when I decide to get FUEL working without GFWL, whenever that may be.

Far more incomplete than XLiveLessNess and specific to Age of Empires Online.

Home
FAQ

For FMTK Users and Mod Developers

Read the Docs

For FMTK Developers

Asobo BigFile Format Specification
Asobo Classes
      Animation_Z
      Binary_Z
      Bitmap_Z
      Camera_Z
      CollisionVol_Z
      Fonts_Z
      GameObj_Z
      GenWorld_Z
      GwRoad_Z
      Keyframer*_Z
      Light_Z
      LightData_Z
      Lod_Z
      LodData_Z
      Material_Z
      MaterialAnim_Z
      MaterialObj_Z
      Mesh_Z
      MeshData_Z
      Node_Z
      Omni_Z
      Particles_Z
      ParticlesData_Z
      RotShape_Z
      RotShapeData_Z
      Rtc_Z
      Skel_Z
      Skin_Z
      Sound_Z
      Spline_Z
      SplineGraph_Z
      Surface_Z
      SurfaceDatas_Z
      UserDefine_Z
      Warp_Z
      World_Z
      WorldRef_Z
Asobo File Format Idioms
Asobo CRC32
Asobo LZ Compression
Asobo Arithmetic Coding Compression
Asobo Save Game File Format Specification
Asobo Audio Formats
TotemTech/ToonTech/Zouna/ACE/BSSTech/Opal Timeline
Zouna Modding Resources
Miscellaneous

Clone this wiki locally