Skip to content
widberg edited this page Nov 3, 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. For information about FUEL's achievements, see the Achievements entry. The SPAFILE entry contains information about FUEL's SPAFILE. A cool table of the state of all the GFWL games can be found in the "I compiled a full guide on GFWL" /r/GFWLive post by /u/crvyln. A complete list of XLive Exports (Ordinal <-> Symbol Name).

The title ID for FUEL on GFWL is 434d082f and on Xbox 360 it is 434d080d; since we are modding the PC game, we only care about the former.

A cool archive of GFWL data can be found at https://dbox.tools/.

Original XLive

The original GFWL installer can be downloaded from the PCGamingWiki Microsoft Games for Windows - LIVE software page. You can still sign in to and use the original GFWL by signing in via the Xbox app (Xbox App Microsoft Store page) before launching the game. Trying to sign in through the in-game HUD will not work if you are not already signed in via Xbox. The Games for Windows Marketplace program no longer allows you to log in and is functionally useless so you will need to acquire the game files from somewhere else.

If you want more information or resources about the original xlive.dll, please don't hesitate to reach out. Also, I found an old project, GFWL Protect Disabler, which lets you run the original xlive.dll but with a lot of the protections disabled. It can be used with Ultimate ASI Loader.

Xbox Website Content

You can still access some game-related content outside of the game/marketplace using the Xbox website at the URL printf("https://account.xbox.com/en-us/GameInfoHub?titleid=%d", dwTitleId) where dwTitleId is 1129121839 (while the title ID is normally formated as an unprefixed hexadecimal number, 434d082f, this URL expects it formated in decimal) for FUEL; https://account.xbox.com/en-us/GameInfoHub?titleid=1129121839. Despite being "NOT AVAILABLE SEPARATELY" there is still a store page for FUEL on the Xbox website which contains a neat bit of copy as the "sell text" (XSTRINGID_SELL_TEXT) also present in the SPAFILE:

In an alternate present, vast swathes of America have become no-go areas as the devastating effects of global warming ravage the continent. Floods, storms, bush-fires, tornados and hurricanes have driven people from towns and cities into safe zones as extreme weather wreaks havoc, creating thousands of square miles of dangerous uninhabitable areas. People turn to renewable energy in the face of the destruction caused by global warming. But these danger zones become a playground for a new breed of racer. With a stockpile of fuel to be burned, adrenaline junkies head into the wilderness to compete against each other in spectacular races against themselves and the elements.

This page also claims "Playable on: Xbox One, Xbox Series X|S" and "Capabilities: Online multiplayer (2-16), Xbox Live".

FUEL.exe.cfg

This is a configuration file used by GFWL to retrieve information about the game. It is also referenced in FUEL.exe.cat and FUEL.exe.cdf.

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 ✔️ (Does not implicitly bind unbound sockets)
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 ✔️
5278 XUserWriteAchievements Low
5280 XUserCreateAchievementEnumerator ✔️ (Close to serving real achievement data)
5284 XUserCreateStatsEnumeratorByRank ✔️
5286 XUserCreateStatsEnumeratorByXuid ✔️
5291 XUserResetStatsViewAllUsers ✔️
5292 XUserSetContextEx ✔️
5293 XUserSetPropertyEx ✔️
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 Medium
5331 XUserReadProfileSettings ✔️
5332 XSessionEnd Medium
5336 XSessionLeaveRemote Medium

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 possible to play FUEL multiplayer with another person using XLiveLessNess. Lobby search works and direct IP connect allows you to mimic invitations.

A FUEL module in the XLLN-Modules repository fixes a crash and adds quality-of-life improvements. The module fixes a crash when xlive_xhv_engine_enabled is disabled and contains some quality-of-life improvements such as allowing you to launch the game without the SecuROM launcher and allowing multiple instances of the game to run at once. Right now, it also patches over some achievements and leaderboard code in the game to prevent a crash, but I am working to implement those properly.

XLiveLessNess is the most complete project in the "replace xlive.dll" market and I am working to improve it in areas that benefit FUEL.

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