protonscr

Forza Motorsport

protonopen appid 2440510Game compatibility - Unofficial
ValveSoftware/Proton#7151 · opened 2023-10-05 by galacticaledge · updated 2026-08-27 · 143 comments · github · game page · search this game
Ggalacticaledge 2023-10-05 github

Compatibility Report

  • Name of the game with compatibility issues: Forza Motorsport
  • Steam AppID of the game: 2440510

System Information

  • GPU: RX 6600 XT
  • Video driver version: Mesa 23.1.3
  • Kernel version: 6.5.1
  • Link to full system information report as Gist:
  • Proton version: Experimental

I confirm:

[ ] that I haven't found an existing compatibility report for this game.
[ ] that I have checked whether there are updates for my system available.

Symptoms

Game crashes on launch, supposedly due to this in the Proton log

19625.840:00e8:01b0:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
19625.859:0030:01b4:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
19625.859:0030:01b8:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
19625.859:0030:01bc:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
19625.860:0030:01c0:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
19625.860:0030:01c4:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
pid 69674 != 69673, skipping destruction (fork without exec?)

I've noticed many warnings related to NtSetInformationThread throughout the log and a couple fixme errors like 19619.029:0064:0070:fixme:hid:handle_IRP_MN_QUERY_ID and 19619.971:0110:0114:fixme:uiautomation:msaa_provider_GetPropertyValue.

Here is the full Proton log

https://drive.google.com/file/d/1UWI7cHhhP9cLCMnP7rqm1btflvKbjRh_/view?usp=sharing

Reproduction

Launch the game and observe it show the splash screen and then crash

Nnyannyankas 2023-10-05 github

The same issue seems to occur on Steam Deck. Edit: Also happens on my Desktop using an nvidia card.

Here's my Proton log: steam-2440510.log

AAhmetTumis 2023-10-05 github

Seems as if there is something wrong with a specific DLL file provided by the game. Gotta check it out in my spare time

Dder-eismann 2023-10-05 github

Don't think it'll add something new, but crashes for me as well.

System Information

steam-2440510-proton-experimental.log
steam-2440510-proton-8.log

Ggalacticaledge 2023-10-05 github

Seems as if there is something wrong with a specific DLL file provided by the game. Gotta check it out in my spare time

Could you tell us more on what makes you suspect that and what specific DLL?

LLeonardoWL037 2023-10-05 github

This error happens on Windows too.
It Happens because of when you first launch the game, it tries to install xbox gaming services(exclusive to windows from what i know) through an .exe on game folder;
gamingrepair.exe, located on Forza Motorsport\gamingservices\gamingrepair.
I think we would not be able to play on proton, unless Turn 10 removes this requirement and do just like Playground games does on Forza Horizon 4 and 5.

Some links:
https://steamcommunity.com/app/2440510/discussions/0/3881597531957253090/

and

https://support.xbox.com/en-US/help/games-apps/troubleshooting/gaming-services-repair-tool

Ggalacticaledge 2023-10-05 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1749580185

When I get home, I'll see if I can somehow force it to run and install

For now, best bet is to let your voice be heard and let the Turn 10 developers know of this issue on the Steam discussion in the quote.

Aanliec 2023-10-05 github

This thread was created by turn 10 (notice the T10 in the username), it's under their radar, but that don't mean they will solve it for us

Ggalacticaledge 2023-10-05 github

I ran gamingrepair.exe via Proton and I got this log:

https://drive.google.com/file/d/1SPPtF_U7F64Vsh478rwwc2tSdU_gdgUG/view?usp=sharing

I think this will narrow down the problem since we already knew that gamingrepair.exe was the culprit. Now we just need to see what's going on in gamingrepair.exe. These are likely lines of interest.

171.970:0130:0134:err:module:import_dll Library drvstore.dll (which is needed by L"Z:\\home\\user\\Drive2\\SteamLibrary\\steamapps\\common\\Forza Motorsport\\gamingservices\\gamingrepair\\gamingrepair.exe") not found
171.972:0130:0134:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\setupapi.dll" at 000000036D860000: builtin
171.972:0130:0134:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\newdev.dll" at 0000000202880000: builtin
171.972:0130:0134:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\user\\Drive2\\SteamLibrary\\steamapps\\common\\Forza Motorsport\\gamingservices\\gamingrepair\\gamingrepair.exe" failed, status c0000135
Llogos128 2023-10-06 github

The game seems to need WINEDLLOVERRIDES="amd_ags_x64=b", since it loads the native version of that dll. Try the following command prompt:
WINEDLLOVERRIDES="amd_ags_x64=b" %command%
At least that should help go further and hopefully reach the graphical screen.

Dder-eismann 2023-10-06 github

Try the following command prompt: WINEDLLOVERRIDES="amd_ags_x64=b" %command%

Unfortunately this didn't help in my case, I guess this gamingrepair.exe issue needs solving first.

Llogos128 2023-10-06 github

Unfortunately this didn't help in my case, I guess this gamingrepair.exe issue needs solving first.

Thanks. Can you post a new log with WINEDLLOVERRIDES included. The initial logs don't seem to show anything related to gaming services.
PROTON_LOG=1 WINEDLLOVERRIDES="amd_ags_x64=b" %command%

Ggalacticaledge 2023-10-06 github

Unfortunately this didn't help in my case, I guess this gamingrepair.exe issue needs solving first.

Thanks. Can you post a new log with WINEDLLOVERRIDES included. The initial logs don't seem to show anything related to gaming services. PROTON_LOG=1 WINEDLLOVERRIDES="amd_ags_x64=b" %command%

To note, I did notice some of the warnings/errors/fixmes being shared between both Forza Motorsport and gamingrepair.exe

Mmohamadaljaf 2023-10-06 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1749761401

I added a stub drvstore dll and it got to the next step, but as expected it failed to fix anything:

0174:fixme:combase:RoGetActivationFactory (L"Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager", {00000035-0000-0000-c000-000000000046}, 0000000000C8FCA8): semi-stub
0174:err:combase:RoGetActivationFactory Failed to find library for L"Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager"
0150:fixme:eventlog:ControlTraceW (0, L"GamingRepair_979701AE", 00000000006B9E70, 3) stub
0150:fixme:eventlog:ControlTraceW (0, L"GamingRepair_979701AE", 00000000006B9E70, 1) stub
0150:err:module:DelayLoadFailureHook failed to delay load ext-ms-win-wer-reporting-l1-1-0.dll.WerReportCreate
wine: Call from 0000000174013C17 to unimplemented function ext-ms-win-wer-reporting-l1-1-0.dll.WerReportCreate, aborting
wine: Unimplemented function ext-ms-win-wer-reporting-l1-1-0.dll.WerReportCreate called at address 0000000174013C17 (thread 0150), starting debugger...

It looks like it needs Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager. The native drvstore wasn't any different.

LLeonardoWL037 2023-10-06 github

Yeah, did this just now too, came to say the same thing, as expected, gamingrepair is trying to open microsoft store and download xbox game services, just as xbox app on windows do. I think we are done, unless they really remove this thing. Hope they do because of a lot of people on windows is having the same problem too

Ggalacticaledge 2023-10-07 github

Well, it was worth a try.

Until Turn 10/Microsoft accommodates for Proton players (or for everyone's best, removes this requirement all togehter), just play another racing game like Assetto Corsa (which requires some tweaking and is a bit buggy, but looks better [with mods] and has modding).

With that said, should we close this issue since there's nothing we can really do on our end? Our best bet is to try to let Turn 10/Microsoft hear our voices.

Also, I think the Steam Deck verification should (obviously) be marked as "unsupported," but with a unique reason detailing about gaming services not available on Steam Deck/Proton.

SSPL0T 2023-10-07 github

Game doesn't crash for me anymore but doesn't go further than it did while still crashing so I let it run for about 10min to see if it would start. It didn't.

System Information

GPU: AMD RX 6900 XT
Video driver version: Mesa-git 23.3.0_devel.178631.0c10cbff558.d41d8cd-1
Kernel version: 6.5.5
Link to full system information report as Gist: https://gist.github.com/SPL0T/e3ab0d76b9297e1168a0f8db75295896
Proton version: Experimental [bleeding-edge]

https://drive.google.com/file/d/1LVoFVHSBJq5lRmcu065G6vPkOmjES0Cy/view?usp=drive_link

Ggalacticaledge 2023-10-07 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1751642504

As previously stated, the game needs to open the Microsoft Store and download some Xbox services, which is, unfortunately, impossible under Proton since we don't have any sort of access to Microsoft Store APIs.

Llogos128 2023-10-07 github

I've just installed successfully the gamingrepairtool.exe on a Windows 10 LTSC (21H2) VM. This is an enterprise edition without the Microsoft Store and a few other components, which makes it closer to a wineprefix. The tool installed Gaming Services, Microsoft GameInput and Microsoft Edge WebView2 Runtime. The Gaming Services settings screen functioned properly as well. Also the tool didn't install Microsoft Store during the update.

I don't have the game, so can't test if it works. But if it doesn't require Microsoft Store, then running on Wine seems more possible. It'll likely require a lot of development work, though.

Anyway, let's hope Turn 10 will rethink this and use the Steam Cloud to store the online profiles, since that's the right way to do on Steam (as Playground Games did).

Ggalacticaledge 2023-10-07 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1751762086

If you do happen to get the game, could you copy over the installed files over into the game's Wine prefix and see what happens?

Llogos128 2023-10-08 github

If you do happen to get the game, could you copy over the installed files over into the game's Wine prefix and see what happens?

They are not simple dlls. There are assemblies and other executables, that need to be properly registered with the system. The Gaming Services looks like a UWP app. It also seems to require Win 10 version 19041 (21H2), as it failed to install on Win 10 LTSC (2019).

The good news is that the needed components are installed directly by this tool, outside of the Microsoft Store.
I'll get the game, when the things start moving here, and will try to contribute of course.

EeVen-gits 2023-10-10 github

Trying today on launch day. Seems to get to the splash screen, but no further.
image

Using Proton Experimental, I get the splash screen, using GE-Proton, I crash after splash. Using EndeavourOS (arch) with kernel 6.5.6.zen2-1

I'll repurchase once it's at least known to be runnable. Looking forward to it.

System info:
Computer Information:
Manufacturer: ASUSTeK COMPUTER INC.
Model: TUF GAMING X570-PLUS (WI-FI)
Form Factor: Desktop
No Touch Input Detected
Processor Information:
CPU Vendor: AuthenticAMD
CPU Brand: AMD Ryzen 7 3700X 8-Core Processor
CPU Family: 0x17
CPU Model: 0x71
CPU Stepping: 0x0
CPU Type: 0x0
Speed: 4050 MHz
16 logical processors
8 physical processors
Hyper-threading: Supported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Supported
SSE41: Supported
SSE42: Supported
AES: Supported
AVX: Supported
AVX2: Supported
AVX512F: Unsupported
AVX512PF: Unsupported
AVX512ER: Unsupported
AVX512CD: Unsupported
AVX512VNNI: Unsupported
SHA: Supported
CMPXCHG16B: Supported
LAHF/SAHF: Supported
PrefetchW: Unsupported
Operating System Version:
"EndeavourOS Linux" (64 bit)
Kernel Name: Linux
Kernel Version: 6.5.6-arch2-1
X Server Vendor: The X.Org Foundation
X Server Release: 12101008
X Window Manager: KWin
Steam Runtime Version: steam-runtime_0.20230919.60656
Video Card:
Driver: AMD AMD Radeon RX 5700 XT (navi10, LLVM 16.0.6, DRM 3.54, 6.5.6-arch2-1)
Driver Version: 4.6 (Compatibility Profile) Mesa 23.2.1-arch1.2
OpenGL Version: 4.6
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 164 Hz
VendorID: 0x1002
DeviceID: 0x731f
Revision Not Detected
Number of Monitors: 2
Number of Logical Video Cards: 1
Primary Display Resolution: 2560 x 1440
Desktop Resolution: 5120 x 1440
Primary Display Size: 23.50" x 13.23" (26.97" diag), 59.7cm x 33.6cm (68.5cm diag)
Primary VRAM: 8192 MB
Sound card:
Audio device: ATI R6xx HDMI
Memory:
RAM: 32002 Mb
VR Hardware:
VR Headset: None detected
Miscellaneous:
UI Language: English
LANG: en_US.UTF-8
Total Hard Disk Space Available: 466924 MB
Largest Free Hard Disk Block: 106624 MB
Storage:
Number of SSDs: 4
SSD sizes: 1000G,500G,500G,256G
Number of HDDs: 0
Number of removable drives: 0
Ffastoslinux 2023-10-10 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1755431757

the same with FH5 in today's update

Nnebadon2025 2023-10-11 github

Replying to [#7151 (comment)](https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1755431757)

the same with FH5 in today's update

I can confirm that Forza Horizon 5 no longer runs in Linux or Steam Deck same as above just a splash screen and immediate exit back to steam.

MMario-119 2023-10-11 github

Might be old news to some here, but it seems like Valve is aware and is looking to push a fix eventually for Forza Motorsport (and FH5 as well I imagine)

Ggalacticaledge 2023-10-11 github

Now, until Microsoft either brings them over to Linux or accommodates for us, I'll be playing Assetto Corsa (which I highly recommend due to the modding and it looks better than Forza games with CSP as well)

BbastiHST90 2023-10-13 github

I've heard (or more like read in the steam forums) with proton experimental bleeding edge Forza horizon 5 works again. Anyone tried that? maybe Forza motorsport will work too now..?

Edit: Ok, just tested Forza Horizon 5 myself. Works again with Proton Experimental Bleeding Edge!

LLeonardoWL037 2023-10-13 github

Just tested both, FH5 and FM
FH5: Really works again
FM: Hangs on splash screen now, just like those with problems on windows. Seems to have something to do with admnistrator rights, cant remember correctly

Ggalacticaledge 2023-10-13 github

Just tested both, FH5 and FM FH5: Really works again FM: Hangs on splash screen now, just like those with problems on windows. Seems to have something to do with admnistrator rights, cant remember correctly

Could you give us a Proton log for Forza Motorsport?

LLeonardoWL037 2023-10-13 github
Ggalacticaledge 2023-10-13 github

Sure, here it is:

Log: https://drive.google.com/file/d/1W-Xp1z2H28RwlI_AFl3aPFavF0il48aH/view?usp=drive_link

Had to force close it.

Also, is there a way to confirm if the game isn't attempting to install gamingservices?

LLeonardoWL037 2023-10-13 github

I dont think it is trying anymore. I am testing on steam deck.
Before, i launched the game, it appeared to me in the bottom of screen, "executing steps of instalattion ("\gamingservices.exe") the splash screen appeared over it and then closed.

Now it passes from the installing proccess, just hangs on the splash alone

SSLI0095 2023-10-14 github

I tried launching using Proton Experimental and can confirm that it hangs on the splash screen without crashing. When launching the game on Windows 11, I get this warning every time (using RX 7900 XTX). It needs to be closed or I have to click "Ignore Warning" to boot into the game. Is it possible that it hangs due to this warning that is somehow not visible when launching through Proton?

Screenshot 2023-10-14 100333

LLeonardoWL037 2023-10-14 github

I will try on desktop mode, I have windows on my steam deck too, it really gives me this error

LLeonardoWL037 2023-10-14 github

It really just hangs, no error.

Kkadardar 2023-10-14 github

I don't own Forze Motorsport. But i do have FH5 and it works on proton hotfix. Forza Motorsport maybe works aswell. Can someone give it a try and report the outcome?

Iam looking to buy this game, but protondb and this github issue holds me back.

Kkadardar 2023-10-14 github

Got impatient and decided if it didn't work i will just play on Windows.

Proton Hotfix also hangs on splash screen. Whatever makes FH5 work with hotfix doesn't do so for FM.

Ffastoslinux 2023-10-15 github

TKG-proton-experimental.bleeding.edge.8.0.59260.20231013 worked for FH5 successfully, can you confirm if it works for Motorsport? (I used ProtonUp-qt to install TKG..)

LLeonardoWL037 2023-10-15 github

TKG-proton-experimental.bleeding.edge.8.0.59260.20231013 worked for FH5 successfully, can you confirm if it works for Motorsport? (I used ProtonUp-qt to install TKG..)

Tested with Ge 8-18 and TKG TKG-proton-experimental.bleeding.edge.8.0.59260.20231013

GE : Same as experimental, loop on splash screen, let for 3 hours, had to force stop
TKG: Crashes instantly and returns to Steam library

LLeonardoWL037 2023-10-17 github

Just tested the new update with GE, Experimental Bleeding edge and TKG, still the same as before

MMario-119 2023-11-09 github

Any updates on this out of curiosity?

Ggalacticaledge 2023-11-09 github

Any updates on this out of curiosity?

Not from what I've heard.

It seems to be an issue that, unfortunately, Microsoft would only be able to fix, since this game requires a service that cannot be installed or run through WINE.

Aanliec 2023-11-09 github

In addition to that there seems to have some memory allocation issue, they are using undocumented flag in VirtualAlloc

Ggalacticaledge 2023-11-10 github

In addition to that there seems to have some memory allocation issue, they are using undocumented flag in VirtualAlloc

Could you give us a log and give us an excerpt showing us the unimplemented flag?

Aanliec 2023-11-10 github

The game call VirtualAlloc with flags 0x00002000 (MEM_RESERVE), 0x20000000 (MEM_LARGE_PAGES) and 0x00400000 (MEM_PHYSICAL). Ignoring the two last flags let the call succeed, but encounter a memory error later down the line. I'm not into memory allocation enough to understand what is needed here...

Ggalacticaledge 2023-12-24 github

Is there any news on whether the apparent memory allocation bug has been fixed?

Sure, this game is a dumpster fire, but it wouldn't hurt to solve a bug like this since it may as well have the domino effect of fixing other games.

Could we also consider the possibility that while the game does install Gaming Services on first run, it might not be actually working?

Ggalacticaledge 2023-12-27 github

UPDATE: The undocumented flags seem to actually be documented. Perhaps we can work on implementing those?

https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters

Llilmike 2023-12-27 github

Has anyone gotten motorsport working?

-Michael.

LLeonardoWL037 2023-12-27 github

I still have not managed to get it working, but i found it after anliec said. Still didnt test as it will "manipulate" the game and can result on ban or something.

https://gist.github.com/Allavaz/23bb92ec4a69fa74f01088cb846b3029

Ggalacticaledge 2023-12-27 github

I still have not managed to get it working, but i found it after anliec said. Still didnt test as it will "manipulate" the game and can result on ban or something.

https://gist.github.com/Allavaz/23bb92ec4a69fa74f01088cb846b3029

In that case, could we just use what the vague documentation tells us to create the flags and hope they work? Also, I'm not sure if the game would even detect the debugger at this point if it can't even get past the splash screen.

NNTMan 2024-01-01 github

After launching the game I see only splash screen and hear howl of CPU fan which did not disappear until I stop the game.
Screenshot from 2024-01-02 02-21-22

Nothing happened within half an hour.

Proton logs:
steam-2440510.zip
steam-2440510-with-WINEDLLOVERRIDES="amd_ags_x64=b".zip

In proton log I see cycling messages:

12233.494:012c:0130:warn:seh:dispatch_exception backtrace: --- Exception 0xc000001d.
12233.494:012c:0130:trace:seh:dispatch_exception code=c000001d flags=0 addr=00000001414B2614 ip=1414b2614
12233.494:012c:0130:warn:seh:dispatch_exception EXCEPTION_ILLEGAL_INSTRUCTION exception (code=c000001d) raised
12233.494:012c:0130:trace:seh:dispatch_exception  rax=0000000002990001 rbx=000000000011e840 rcx=0000000002f97b89 rdx=0000000000000354
12233.494:012c:0130:trace:seh:dispatch_exception  rsi=0000000002356880 rdi=00000000023508f0 rbp=000000000011e0e9 rsp=000000000011e038
12233.494:012c:0130:trace:seh:dispatch_exception   r8=0000000000000012  r9=000000000011e0d8 r10=000000000011e840 r11=000000000011e090
12233.494:012c:0130:trace:seh:dispatch_exception  r12=0000000000000000 r13=00000000023508f8 r14=0000000000000000 r15=ffffffffffffffff
12233.494:012c:0130:trace:seh:call_vectored_handlers calling handler at 000000014144637C code=c000001d flags=0
12233.494:012c:0130:trace:seh:sigsys_handler SIGSYS, rax 0x73, rip 0x1415afad1.
12233.494:012c:0130:trace:seh:call_vectored_handlers handler at 000000014144637C returned ffffffff
12233.494:012c:0130:warn:seh:dispatch_exception backtrace: --- Exception 0xc000001d.
12233.494:012c:0130:trace:seh:dispatch_exception code=c000001d flags=0 addr=00000001414B26B7 ip=1414b26b7
12233.494:012c:0130:warn:seh:dispatch_exception EXCEPTION_ILLEGAL_INSTRUCTION exception (code=c000001d) raised
12233.494:012c:0130:trace:seh:dispatch_exception  rax=0000000000000001 rbx=000000000011e840 rcx=0000000000000000 rdx=000000017006e6f0
12233.494:012c:0130:trace:seh:dispatch_exception  rsi=0000000002356880 rdi=00000000023508f0 rbp=000000000011e0e9 rsp=000000000011e038
12233.494:012c:0130:trace:seh:dispatch_exception   r8=0000000000000092  r9=000000017006d940 r10=00000000036f9955 r11=0000000000000000
12233.494:012c:0130:trace:seh:dispatch_exception  r12=0000000000000000 r13=00000000023508f8 r14=0000000000000000 r15=ffffffffffffffff
12233.494:012c:0130:trace:seh:call_vectored_handlers calling handler at 000000014144637C code=c000001d flags=0
12233.494:012c:0130:trace:seh:call_vectored_handlers handler at 000000014144637C returned ffffffff
12233.494:012c:0130:warn:seh:dispatch_exception backtrace: --- Exception 0xc000001d.
12233.494:012c:0130:trace:seh:dispatch_exception code=c000001d flags=0 addr=00000001414B2428 ip=1414b2428
12233.494:012c:0130:warn:seh:dispatch_exception EXCEPTION_ILLEGAL_INSTRUCTION exception (code=c000001d) raised
12233.494:012c:0130:trace:seh:dispatch_exception  rax=0000000002990001 rbx=000000000011e840 rcx=0000000002f9831f rdx=0000000000002d90
12233.494:012c:0130:trace:seh:dispatch_exception  rsi=0000000002356880 rdi=00000000023508f0 rbp=000000000011e0e9 rsp=000000000011e038
12233.494:012c:0130:trace:seh:dispatch_exception   r8=0000000000000018  r9=000000000011e0e0 r10=000000000011e840 r11=000000000011e098
12233.494:012c:0130:trace:seh:dispatch_exception  r12=0000000000000000 r13=00000000023508f8 r14=0000000000000000 r15=ffffffffffffffff
12233.494:012c:0130:trace:seh:call_vectored_handlers calling handler at 000000014144637C code=c000001d flags=0
12233.494:012c:0130:trace:seh:sigsys_handler SIGSYS, rax 0x73, rip 0x1415afad1.
12233.494:012c:0130:trace:seh:call_vectored_handlers handler at 000000014144637C returned ffffffff
12233.494:012c:0130:warn:seh:dispatch_exception backtrace: --- Exception 0xc000001d.
12233.494:012c:0130:trace:seh:dispatch_exception code=c000001d flags=0 addr=00000001414B24CB ip=1414b24cb
12233.494:012c:0130:warn:seh:dispatch_exception EXCEPTION_ILLEGAL_INSTRUCTION exception (code=c000001d) raised
12233.494:012c:0130:trace:seh:dispatch_exception  rax=0000000000000001 rbx=000000000011e840 rcx=0000000000000000 rdx=000000017006dd60
12233.494:012c:0130:trace:seh:dispatch_exception  rsi=0000000002356880 rdi=00000000023508f0 rbp=000000000011e0e9 rsp=000000000011e038
12233.494:012c:0130:trace:seh:dispatch_exception   r8=000000000000002c  r9=000000017006d940 r10=00000000036fc711 r11=0000000000000000
12233.494:012c:0130:trace:seh:dispatch_exception  r12=0000000000000000 r13=00000000023508f8 r14=0000000000000000 r15=ffffffffffffffff
12233.494:012c:0130:trace:seh:call_vectored_handlers calling handler at 000000014144637C code=c000001d flags=0
12233.494:012c:0130:trace:seh:call_vectored_handlers handler at 000000014144637C returned ffffffff

Adding parameter WINEDLLOVERRIDES="amd_ags_x64=b" nothing change.

Link to full system information report as gist

Ggalacticaledge 2024-01-02 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-1873504313

Can you trace what causes the exception? From what has been stated previously, it is likely due to unimplemented flags in the VirtualAlloc function.

Ggalacticaledge 2024-02-12 github

Anything new? The memory issue fixed? Is Gaming Services still a problem?

Aanliec 2024-02-13 github

Gaming Services is still the main blocking point. For the memory error, ignoring MEM_LARGE_PAGES & MEM_PHYSICAL seams to be the way to go, but until Xbox make a Gaming Services that works with wine that's not helping much.

LLunaRosalie 2024-02-17 github

i wonder if valve could actually submit some request to microsoft to help with making gaming services work through a layer or proton or wine for Deck

Ggalacticaledge 2024-02-17 github

i wonder if valve could actually submit some request to microsoft to help with making gaming services work through a layer or proton or wine for Deck

Well considering that Forza's Steam Deck support page mentions Forza Motorsport, it seems they are aware of the issue, but their hands-off language implies it's unlikely they'll do anything.

UPDATE: I contacted Forza support and told them about what's stopping this game from running on Linux and asked if there were plans to support it. They didn't answer my question and just redirected me to their Steam Deck support page.

AAsciiWolf 2024-04-11 github

Was there any progress in making Forza Motorsport running in Wine/Proton? I know that there was some upstream work in progress, but that was months ago.

LLeonardoWL037 2024-04-11 github

If you use the new proton (9.0 beta), after the splash screen, is shown an info popup that gaming services needs to be installed. With OK and Cancel options, OK leads to Microsoft support link where it teaches how to install it. All the steps are for windows 10+.
Tried installing with proton launcher on the Motorsport prefix, no Success.

I think we really depend on Turn 10 for this, unless someone discover a way to circunvent this.

Ggalacticaledge 2024-04-15 github

If you use the new proton (9.0 beta), after the splash screen, is shown an info popup that gaming services needs to be installed. With OK and Cancel options, OK leads to Microsoft support link where it teaches how to install it. All the steps are for windows 10+. Tried installing with proton launcher on the Motorsport prefix, no Success.

I think we really depend on Turn 10 for this, unless someone discover a way to circunvent this.

Just curious to see, but could you send a screenshot?

Also, someone said they were able to install Gaming Services on Windows LTSC (which does not come with the Microsoft Store). How does it work there if (presumably) there is no way of installing UWP apps, while it fails on Proton?

Ggalacticaledge 2024-04-15 github

So here is something odd. @logos128 said he was able to install a version of Windows 10 that doesn't come with the Microsoft Store and was able to install Gaming Services successfully (with the script Microsoft provides on their website).

Yet, on Proton, it fails to run it.

From our observations, gamingrepair.exe tries to open the Microsoft Store to install Gaming Services. Why was it working on @logos128's Windows 10 install that didn't come with the Microsoft Store, but not on Proton, which also lacks the Microsoft Store.

LLeonardoWL037 2024-04-15 github

No clue, i tried here to install via get-appxpackage Microsoft.GamingServices without microsoft store, it seems to work, but when i launch the game, it wont connect to server and just let me play offline, i have do manually open xbox app so i can play

LLeonardoWL037 2024-04-15 github

No clue, i tried here to install via get-appxpackage Microsoft.GamingServices without microsoft store, it seems to work, but when i launch the game, it wont connect to server and just let me play offline, i have do manually open xbox app so i can play

Wait, you're saying the game actually launches?

If so, then we're one step closer at least.

Forgot to tell that i tested on a Windows laptop and uninstalled microsoft store and dependencies, my bad

Ggalacticaledge 2024-04-15 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2054675342

Could you try copying over the Gaming Services stuff to Motorsport's prefix and see if it does anything?

LLeonardoWL037 2024-04-15 github

Tried it before, no advance.
At least on my knowledge, its installed here for me:
C:\Program Files\WindowsApps\Microsoft.GamingServices_20.88.5001.0_x64__8wekyb3d8bbwe

But there a lot of registers to every executable of it on my windows installation

Llogos128 2024-04-15 github

@GalacticalEdge, initially I thought the Microsoft Store is a separate app that includes all of the store functionality itself. Appeared it is just a frontend providing convenient access to the store for end users. All functionality is actually part of the Universal Windows Platform (Windows.ApplicationModel.Store, Windows.Services.Store, etc.) and as such is part of the OS.

Back then I did a lot of testing , incl. implementing dozens of api stub calls and even "noname" ordered functions, to try to mix Wine with some native Windows components, but it always ended up asking for more AppModel related stuff in ntdll or kernel32/kernelbase.

So the ApplicationModel will need to be implemented more thoroughly in Wine first (with the store stuff just stub-ed, etc.), for this to progress further. It is part of Win10/11 now, so more apps will need it in the future anyway.

Ggalacticaledge 2024-04-16 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2057488457

So you're saying it's possible, but would need to essentially implement UWP on Wine?

Also, to add, I believe Forza Horizon 4's Steam release forced Wine to implement some UWP functions anyway, so at least we got a foundation.

Llogos128 2024-04-16 github

So you're saying it's possible, but would need to essentially implement UWP on Wine?

It depends on how the FM uses GamingServices and whether that involves using any store api from the OS. Implementing any api that would require authentication or exchange of credentials with the MS Store won't be possible, as this is proprietary MS service.

I believe however, that FM does online authentication/communication the same way as FH5, through the XboxLive dll. It could be using GamingServices just for the cloud support. There is also a strong possibility that GamingServices includes all the authentication code itself, and doesn't rely on any system apis for that.
Anyway, GamingServices is an app package service, that will need at least basic support for such apps in Wine (through Windows.ApplicationModel and the related apis in ntdll, etc.).

I was able to run one of the executables in the package - gamingservices.exe I think - as a regular service in a wineprefix. IIRC it mostly needed implementation of app package related apis from ntdll and kernel32/kernelbase. Didn't require any of the store stuff. It returned an error while starting the service, but at least didn't crash. There are few other services in the package, though.

Ggalacticaledge 2024-04-24 github

Since there are ways of downloading UWP apps through unofficial sources, could they be used as building blocks for UWP support in Wine (since Gaming Services needs UWP support)?

Llogos128 2024-04-25 github

UWP interfaces are already being worked on - look in dlls/windows.xxxx.., etc. For example windows.gaming.input provides support for force feedback wheels in FH5. There is even an initial implementation of windows.applicationmodel with some app package support.

There are two sets of problems to get GamingServices running on Wine, IMO.

The first problem is to make installation procedure complete successfully. This one involves implementing the MS Store stuff - downloading, installing, etc.
I think though, that if GamingServices and other required components are already installed on the wine prefix, the GamingRepair installer won't attempt to re-download them from the store. So, if for example Valve distributes those components as part of the SteamWorks package, and then Proton manually installs them as part of the FM prefix creation, it would theoretically be possible to skip the MS store downloading. This still involves implementing support for app package services and possibly windows.applicationmodel.store stubs, etc.

The second problem is getting the various GamingServices components to function properly. This one involves implementing a lot of app package related interfaces and possibly other UWP interfaces and ntdll/kernel32 apis. From my testing with one of the executables - gamingservices.exe - it didn't import MS Store related apis IIRC. Also depends on what GamingServices functionality is actually used by FM. It is possible that only a small set of apis really need implementation and others just need to be stub-ed, etc.

As for the unofficial MS Store downloading, I don't think it can be legally supported by Valve.

Ggalacticaledge 2024-04-25 github

if for example Valve distributes those components as part of the SteamWorks package, and then Proton manually installs them as part of the FM prefix creation, it would theoretically be possible to skip the MS store downloading.

In that case, Valve would need to convince Microsoft to make Gaming Services itself part of the SteamWorks package (which I highly doubt they'd do)

Llogos128 2024-04-26 github

In that case, Valve would need to convince Microsoft to make Gaming Services itself part of the SteamWorks package (which I highly doubt they'd do)

Yep, in my opinion without MS support this cannot be resolved in an official way.
T10 can even distribute the required components as part of the FM download - somewhere in the folder structure, etc.

Ggalacticaledge 2024-05-25 github

By any chance, do the other Forza games rely on anything from Xbox Gaming Services? I know Forza Horizon 4 requires Xbox Game Bar and that stuff for inviting friends and joining clubs (trying on Proton will just throw a "There is no Windows program configured to open this file" error and causes FH4 to show an error saying there was an issue communicating with the server, but continues to run fine), but does not crash on launch.

Mmohamadaljaf 2024-05-26 github

UWP and WinRT are not intertwined and many regular applications are already using WinRT modules. For Forza Horizon 4, it seems to only require windows.gaming.ui.gamebar.dll and in the Wine implementation all this does is return values saying the gamebar is not visible.

WinRT modules are increasingly being used and most applications won't run without them. Wine does not have any dedicated WinRT developers nor do they seem interested in developing it. I applied to CodeWeavers to work on Wine and specifically WinRT modules but they rejected me despite meeting the listed job requirements and having fixed several WinRT bugs.

If Valve is hiring Proton/Wine developers I'd be more than happy to work on this issue and add more support for WinRT modules.

Ggalacticaledge 2024-05-27 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2132044433

So do we know what Gaming Services is used for in the game aside from DRM (I think)?

Also, for the Deck Verified evaluation, it should be changed to "This game is unsupported on Steam Deck due to use of an unsupported anti-cheat or multiplayer service"

Ggalacticaledge 2024-08-21 github

This is a dead horse already, so I'm not sure if anyone will notice, but a Wine developer told me stubbing Gaming Services might get the game to at least launch, but in a very limited state. Any thoughts?

Mmohamadaljaf 2024-08-21 github

It's likely to get the game running, but without online functionality. For the latter, that likely needs a thorough implementation of not only GamingServices but also any dependencies or related services like Xbox Live, which AFAIK is not possible to implement in Wine at the moment.

A person in this thread tried copying GamingServices to the prefix and it didn't work. Error 0x89240101 is E_GAMERUNTIME_DLL_NOT_FOUND or "The game runtime DLL was not found.". In this case, it might be querying the registry first. GamingServices has at least two registry keys:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\GamingServices]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\GamingServicesNet]

What you can try is installing GamingServices on a Windows OS, export those keys, and import them into the Wine registry.

Moreover, if the game is using Win32 API to check if GamingServices is running, like QueryServiceStatus for instance, then you could add a hack into Proton that returns SERVICE_RUNNING.

Ggalacticaledge 2024-08-21 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2301210172

The game likely communicates to online services using XboxLive.dll, which is probably similar to Forza Horizon 5 and other Xbox titles. So who knows what Gaming Services is for.

Also, I don't have the time to try your suggested workaround since I am extremely busy.

Ggalacticaledge 2024-08-21 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2301210172

Also, could you tell me the location of the Gaming Services files so I can copy them over when I got the time? I will also see if importing the registry keys does anything.

Mmohamadaljaf 2024-08-22 github

It should be in C:\Program Files\WindowsApps.

RRiskRunner0 2024-10-02 github

I have GamingServicesNet running, but for some reason I can't get Gaming Services service to start:

$ ps aux | grep GamingService
matt      123774  0.0  0.0 263384 21352 ?        Ssl  19:40   0:00 C:\Program Files\WindowsApps\Microsoft.GamingServices_23.92.22001.0_x64__8wekyb3d8bbwe\GamingServicesNet.exe
$ WINEPREFIX=/media/games/SteamLibrary/steamapps/compatdata/2440510/pfx wine net start GamingServicesNet
The Gaming Services service is starting.
Service already running.
$ WINEPREFIX=/media/games/SteamLibrary/steamapps/compatdata/2440510/pfx wine net start GamingServices
The Gaming Services service is starting.
02e4:fixme:heap:RtlSetHeapInformation HEAP_INFORMATION_CLASS 1 not implemented!
02e4:fixme:ole:CoInitializeSecurity 00007FFFFE229710, -1, 0000000000000000, 0000000000000000, 0, 2, 0000000000000000, 0, 0000000000000000 stub
02e4:fixme:ole:global_options_Set 00007FFFFE7B0CA0, 1, 2.
02e4:fixme:ole:global_options_Set 00007FFFFE7B0CA0, 5, 1.
02f4:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 00006FFFFE0F8952, 47) stub
02f4:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 00006FFFFDFEB6AA, 37) stub
02f4:fixme:ntdll:RtlGetDeviceFamilyInfoEnum 0000000000000000 00007FFFFEDDF900 0000000000000000: stub
02f4:err:ole:com_get_class_object class {0000034e-0000-0000-c000-000000000046} not registered
02f4:err:ole:com_get_class_object no class object {0000034e-0000-0000-c000-000000000046} could be created for context 0x1
Service request timeout.
02e4:fixme:combase:RoGetActivationFactory (L"Windows.Internal.System.Profile.RegionPolicyEvaluator", {00000035-0000-0000-c000-000000000046}, 00007FFFFE1FF920): semi-stub
02e4:err:combase:RoGetActivationFactory Failed to find library for L"Windows.Internal.System.Profile.RegionPolicyEvaluator"

It feels really close tbh

RRiskRunner0 2024-10-02 github

Got past the "failed to find library", now I'm getting this:

$ system32 WINEPREFIX=/media/games/SteamLibrary/steamapps/compatdata/2440510/pfx wine net start GamingServices
The Gaming Services service is starting.
0624:fixme:heap:RtlSetHeapInformation HEAP_INFORMATION_CLASS 1 not implemented!
0624:fixme:ole:CoInitializeSecurity 00007FFFFE229710, -1, 0000000000000000, 0000000000000000, 0, 2, 0000000000000000, 0, 0000000000000000 stub
0624:fixme:ole:global_options_Set 00007FFFFE7B0CA0, 1, 2.
0624:fixme:ole:global_options_Set 00007FFFFE7B0CA0, 5, 1.
0630:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 00006FFFFE0F8952, 47) stub
0630:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 00006FFFFDFEB6AA, 37) stub
0630:fixme:ntdll:RtlGetDeviceFamilyInfoEnum 0000000000000000 00007FFFFEDDF900 0000000000000000: stub
0630:err:ole:com_get_class_object class {0000034e-0000-0000-c000-000000000046} not registered
0630:err:ole:com_get_class_object no class object {0000034e-0000-0000-c000-000000000046} could be created for context 0x1
Service request timeout.
0624:fixme:combase:RoGetActivationFactory (L"Windows.Internal.System.Profile.RegionPolicyEvaluator", {00000035-0000-0000-c000-000000000046}, 00007FFFFE1FF920): semi-stub

I have no idea what service request is timing out. I can see on wireshark that when I start up the GamingServices service, it pings 40.65.111.94, which looks like title.mgt.xboxlive.com:

$ nslookup title.mgt.xboxlive.com
Server:         100.100.100.100
Address:        100.100.100.100#53

Non-authoritative answer:
title.mgt.xboxlive.com  canonical name = title.mgt.xboxlive.com.akadns.net.
Name:   title.mgt.xboxlive.com.akadns.net
Address: 40.65.111.94

I can't see it trying to make that request through wine though

Llogos128 2024-10-04 github

@RiskRunner0
That's very interesting indeed! Are these services installed automatically by FM or did you install them manually?

If FM can install and register them during game installation now, then that's a great improvement over a year ago. I follow Wine development closely and don't recall any significant work being done on the apis necessary for the GamingRepair installer to function properly. So it must have been more of a T10/MS effort. :slightly_smiling_face:

A year ago GamingServices was an app package service, and as there is no support for such services in Wine, it needed manual registration/installation of the various service components (gamingservices.exe, gamingservicesnet.exe, etc.) in the prefix.

Anyway, great progress so far!

Ggalacticaledge 2024-10-04 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2387528717

Did you copy over Gaming Services from a Windows install or did the game install them itself?

Also, since you have it partially running, could you see what happens when you launch the game at this point?

RRiskRunner0 2024-10-04 github

I manually installed GamingServices and StateRepository and all the keys needed for them, FM didn't provide them and launching the game is the same since GamingServices doesn't seem to fully run

Ggalacticaledge 2024-10-04 github

I manually installed GamingServices and StateRepository and all the keys needed for them, FM didn't provide them and launching the game is the same since GamingServices doesn't seem to fully run

So have you figured why Gaming Services times out during startup yet?

Also, did the game still give the same kind of error while starting up? (The one where it says Gaming Services needs to be installed)

RRiskRunner0 2024-10-05 github

So have you figured why Gaming Services times out during startup yet?

I think I can't get StateRepository started, and since that's a dependency of GamingServices, it barfs. StateRepository is trying to start a group appmode, and I couldn't really find anything about it - it's trying to run svchost.exe -k appmodel -p

Ggalacticaledge 2025-01-16 github

I know it's probably nothing new and won't get us closer to fixing anything, but I noticed that Indiana Jones and the Great Circle bundles gamingrepair.exe (https://steamdb.info/depot/2677662/), but it works.

I don't own that game, so could anyone tell me if the game works as it does on Windows without any missing functionality (including Xbox Cloud Saves)? If so, what's so special about this case?

EDIT: I looked and it seems they're not using the same gamingrepair.exe since Indiana Jones has one larger in size and bundles a DLL with the same name, while FM uses a smaller standalone one.

UPDATE: Avowed is also using Gaming Services, but in the same fashion as Indiana Jones, which concerns me about how future games using MS Store dependencies will be handled under Proton.

MMicHaeL-MonStaR 2025-07-08 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-2594572489

Since Microsoft/Xbox have since made claims that they want to make Windows "the leading gaming platform", I suspect they've been making efforts to block out Linux for gaming specifically, however "small" the threat is, it has been gaining momentum because of things like the Steam Deck with SteamOS and other distros popping up/off.

While a bit off-topic: Something else that stood out to me is that the Minecraft-spinoff-games "Dungeons" (2020) and "Legends" (2023) are explicitly stated to not be available or not supported in the Linux-native Minecraft-launcher. Although, the Steam-versions will run through Proton of course and I believe there's a relatively easy way to hook up the standalones (Microsoft Store licenses through the Minecraft-launcher) to Steam and thus Proton. Still, they kinda seem to not want to bother with Linux-support despite the launcher being Linux-native. Perhaps it's also because of different engines and the like, but I don't know.

All that said, this is about 'Forza Motorsport', and I think all of us got the news that the studio (Turn 10) has been dissolved, with remaining developers moved to Playground for "Horizon", and it's unlikely that any updates are coming anymore (unless they're putting the "Motorsport"-series or the current title on the newly combined studio as well).

"Microsoft Gaming Services" is clearly DRM for their own published games since like 2023 and this whole "Microsoft Gaming" effort has probably been quietly in effect since then. - Then again, they didn't shove it into "Horizon 5", but that had already been out for a few years, so I guess they didn't want to cause any potential issues.

Unwelcome back, Games for Windows Live!

Ggalacticaledge 2025-07-09 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-3049341705

I'd say Microsoft isn't actively trying to sabatoge the Steam Deck or Linux gaming. They just take a hands-off approach. Because if they did, Gears of War: Reloaded wouldn't be working on Steam Deck. Instead, they put in the effort to have it working there.

But yeah, with Turn 10 Studios in hot water, there's no reason to hope at this point.

CCCF100 2025-11-05 github

But yeah, with Turn 10 Studios in hot water, there's no reason to hope at this point.

What do you mean by this?

Aanliec 2025-11-05 github

As @MicHaeL-MonStaR said, in early July, Microsoft layoff most of the development team of Forza Motorsport, basically stopping any ongoing work on current or future Forza Motorsport.

So it would be foolish to expect any update to the game coming from Turn 10 now, even for something as small as an updated "Microsoft Gaming Services" DRM.

Ggalacticaledge 2025-11-21 github

https://github.com/Weather-OS/GDK-Proton

Minecraft for Windows is able to run on a Proton build that adds GDK support. Can we test if it works for Forza Motorsport?

CCCF100 2025-12-10 github

https://github.com/Weather-OS/GDK-Proton

Minecraft for Windows is able to run on a Proton build that adds GDK support. Can we test if it works for Forza Motorsport?

I tried it, it gets a little further, but crashes a few seconds after displaying this dialog box:
Image

RRiskRunner0 2025-12-10 github

What's your repro just using the GDK-Proton version?

CCCF100 2025-12-10 github

What's your repro just using the GDK-Proton version?

Yep, I'm just using the tarball the developer provided on GitHub.

RRiskRunner0 2025-12-10 github

Hmm I don't get that far, do you have a different command in the config? Are you using Wayland?

RRiskRunner0 2025-12-10 github

Wait I get it now but I get that with proton-experimental.

MMicHaeL-MonStaR 2025-12-12 github

I'm still rather annoyed that this is happening, so I keep "spamming" (or requesting) them to sort this out on about every Steam-post they make.

Here's the thing: I'm really curious about how they (and other developers) will respond to the Steam Machine. - Is everyone going to scramble to at least make/let it run through Proton (basically like a lot of developers try to take care of Deck-compatibility already), or are a bunch of them still going to pretend Linux (gaming) isn't a thing and just not bother to do anything?
And I know this is a Microsoft-product and they "should" only care about Windows, but then most of their other Microsoft/Xbox-titles simply run on Linux/Proton, including the "Horizon"-games by the sister-studio, even other games WITH the Microsoft Gaming Service, so it doesn't seem like they actively try to prevent it. - This just seems more of an issue with how 'Forza Motorsport' tries to execute it and they either won't bother to change it or can't change it.

Sorry for the non-contribution, but I really wonder how things will stand 6-12 months from now. - It's just a waiting-game for me. I mean, unless I try to run some custom Windows as a Virtual Machine (which is probably awful for performance), I don't see myself running a machine with Windows anymore, other than the "on the side" Windows-installation I have on a basic laptop.
I paid like 30 Euros for this game, which is a lot for me, and Valve couldn't even cut me some slack for a refund with minutes on the clock. - Disappointed in both parties.

Ggalacticaledge 2025-12-12 github

https://github.com/Weather-OS/GDK-Proton
Minecraft for Windows is able to run on a Proton build that adds GDK support. Can we test if it works for Forza Motorsport?

I tried it, it gets a little further, but crashes a few seconds after displaying this dialog box: Image

I believe this relies on AMD AGS, which is set to use the builtin version for Forza Horizon 4 and 5. See if doing that with Forza Motorsport does it in the Proton prefix's winecfg? In my experience, FH4 and FH5 will not even get to the splash screen if you use the native AMD AGS.

This may be especially important if you're on AMD.

RRiskRunner0 2025-12-12 github

I'm on AMD so this is a good callout, can try tonight

Ggalacticaledge 2025-12-12 github

I'm on AMD so this is a good callout, can try tonight

Also, see if copying gaming services from a Windows install into the game's prefix helps. Chances are it should work since it implements GDK.

Ggalacticaledge 2025-12-13 github

Replying to https://github.com/ValveSoftware/Proton/issues/7151#issuecomment-3645257367

The thing with most other games that use Gaming Services is most of them are single player games (i.e. Indiana Jones and the Great Circle, Avowed. the Outer Worlds 2, etc.) that only need it to use Xbox cloud saves. In those games, trying to use Xbox cloud saves just results in an error, but doesn't stop you from playing it otherwise.

But some multiplayer games like Gears of War and Grounded 2 do rely on Gaming Services for logging into Microsoft. But the former already implements a separate method for Steam Deck that doesn't rely on Gaming Services. And the latter is planning to do something similar. Since Forza Motorsport is an always-online game that insists of cross-play and cross-progression across all available platforms, it would make sense Gaming Services is a hard requirement.

Ggalacticaledge 2025-12-13 github

I'm on AMD so this is a good callout, can try tonight

Any update?

Ggalacticaledge 2025-12-19 github

Well with this game's end of life, there's now zero reason to hope they will ever fix this.

The most we can try now is to get around the issues preventing the game launching now that Gaming Services can basically be bypassed.

MMicHaeL-MonStaR 2025-12-19 github

Well with this game's end of life, there's now zero reason to hope they will ever fix this.

The most we can try now is to get around the issues preventing the game launching now that Gaming Services can basically be bypassed.

It's not really "end of life", it's just not going to get content-updates. It also doesn't mean they can never touch it again. - Surely they will have to update some surface-level QoL-things to maintain it as a product. - If they don't, they better de-list it.

Aanliec 2025-12-19 github

From https://forza.net/news/forza-year-in-review-2025 :
we do not plan to introduce new cars, tracks, features, or regular bug fixes for Forza Motorsport

They will not delist it, as it can still bring them money, but they won't change the executable. It's not end of life in the sense that they keep the server running and recycle events:

However, we will continue supporting the game by keeping online servers active, hosting special events and competitions, and reintroducing previously released Featured Tours and reward cars on a monthly basis, until all content is available for you to enjoy anytime.

But will try to find some time to try Proton-GDK on my side!

LLaitinlok 2026-02-04 github

Does anyone knows it would work with this version of the proton.

MMicHaeL-MonStaR 2026-02-05 github

Does anyone knows it would work with this version of the proton.

It's unlikely. - I haven't tried it yet (I'm not at home with my regular computer right now), which I tend to do (out of desperation) every time there is a new version, but if they don't resolve the whole "Microsoft Gaming Service"-requirement, from one side or the other (if not both), it just won't be able to launch through to the actual game itself. - Still one of the lamest problems I've encountered in years... I just can't get over how asinine it is. But I'm still playing the waiting-game.

RRiskRunner0 2026-02-05 github

AFAIK getting all of that working from the wine side is very non-trivial, too.

LLaitinlok 2026-02-05 github

https://github.com/Rosentti/wine-uwp/blob/master/README-uwp.md

I found this wine branch that supports the Xbox app which may allow the game to run with Microsoft gaming services

AAllanVester 2026-07-26 github

I managed to get the game running, but sadly I am unable to login and progress further.

The problem was that the game need some DLL stubs/proxies to get it working, namely xgameruntime.dll that proxies to the genuine Microsoft runtime, a gsstub.dll with some COM/WinRT stubs, and a gameplatformservices.dll stub that only has to exist.

I believe the real issue now is getting the Game Services to interact with the game.

Image Image Image Image Image Image Image Image Image Image Image Image Image
AAsciiWolf 2026-07-26 github

Nice! What about the "Free play offline" mode?

AAllanVester 2026-07-26 github

Nice! What about the "Free play offline" mode?

Yeah, I tried that. It just goes back to loading forever - I believe the problem I am facing is something to do with some Persistent Local Storage I haven't looked into yet.

UPDATE:
Nevermind, it is not Persistent Local Storage. I added <PersistentLocalStorage> to microsoftgame.config the way FH6 has it.

Clicking the "Free play offline" doesn't even produce a single call into the game runtime, so whatever it checks, it already knows the answer before it asks.

I believe, what it wants next is FM's own backend, gameservices.fm.forzamotorsport.net/Services/o.xtsw or B228E.playfabapi.com/Client/LoginWithCustomID. I managed to capture a Forza Horizon 6 session for comparison since that one works, and it authenticates with a PlayFab entity token in an X-Authorization header, and not an Xbox token. Getting one means PlayFab LoginWithXbox, which needs an XSTS token with title claims, which needs a TitleToken.

That is where it dies. sisu/authorize returns 401 for FM's AppId 000000004CC9D265. Forza Horizon 6's AppId gets 200 on my machine.

I also tried minting a TitleToken myself. Made my own device identity (device.auth returns 200, so the request signing is correct) and then asked title.auth.xboxlive.com using a real RPS ticket under FM's own AppId. That gives 403. A junk ticket gives 401, so the 403 means it accepted who I am and refused the operation.

So from what I could gather on Windows the game never presents that AppId at all, meaning the token exchange happens
inside gamingservices.exe and the game is handed a finished context.

RRiskRunner0 2026-07-26 github

What were the stubs you needed to fill out and how'd you figure out what they were? I can't remember what exactly I tried for this but I'd like to pick it back up too

AAllanVester 2026-07-26 github

What were the stubs you needed to fill out and how'd you figure out what they were? I can't remember what exactly I tried for this but I'd like to pick it back up too

Currently, I am trying to get it to work with: https://github.com/Weather-OS/WineGDK and https://github.com/xodus-gaming/xodus

AAllanVester 2026-08-01 github

Well, I got signed in, but it crashes right after getting signed in:

Image
RRiskRunner0 2026-08-01 github

How'd you sign in, with a link and code? I think because it doesn't have the service hosts it's upset

AAllanVester 2026-08-01 github

How'd you sign in, with a link and code? I think because it doesn't have the service hosts it's upset

Well, it was a lot of trail-and-error, but basically you have to use xodus-service, which is a background service that handles it.

You also have to use a specific Wine branch: https://github.com/Sightem/WineGDK/tree/pr-33-xuser with a lot of specific fixes and implementations.

AAllanVester 2026-08-01 github

I finally got in :D

Image Image Image
AAllanVester 2026-08-04 github

If anyone is interested in getting the game running, then here is a guide (tested on RTX 3080 Ti (Ampere), nvidia-open-dkms 610.43.03, kernel 7.1.5):

1. Proton

Download GE-Proton11-3-FM.tar.gz from
https://github.com/AllanVester/proton-ge-custom-forza-motorsport/releases/tag/GE-Proton11-3-FM

mkdir -p ~/.steam/root/compatibilitytools.d
tar -xf GE-Proton11-3-FM.tar.gz -C ~/.steam/root/compatibilitytools.d/

Restart Steam, then set Forza Motorsport's compatibility tool to GE-Proton11-3-FM.

This is GE-Proton11-3 with the wine submodule replaced by wine-forza-motorsport@forza-online

2. The Xodus service

Forza asks the GDK for Xbox Live tokens carrying a title claim. Those can only be minted by something holding the device identity, which is what this service does.

git clone -b forza-online https://github.com/AllanVester/xodus.git
cd xodus
cargo build --release --workspace

Needs Rust (edition 2024) and protoc.

Sign in to your Xbox account. This opens a login window, once:

cargo run --release --bin xodus-cli -- login

If that doesn't work, run this instead:

WEBKIT_DISABLE_DMABUF_RENDERER=1 cargo run --release --bin xodus-cli -- login

Then start the service and leave it running while you play:

./target/release/xodus-service

It takes no configuration. On first run it generates the key it signs with, keeps it in your keychain, and hands it to the game over the socket - so the two sides cannot end up disagreeing about which key a token is bound to.

3. Steam launch options

PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/xodus.sock WINEDLLOVERRIDES=xgameruntime=b PROTON_VKD3D_HEAP=1 VKD3D_CONFIG=skip_application_workarounds,descriptor_heap,avoid_image_buffer_aliasing %command%

That is the entire configuration. PRESSURE_VESSEL_FILESYSTEMS_RW is required because the Steam Linux Runtime container cannot otherwise see the service's socket, and without it the game reports "Failed to log on to Forza Game Servers". Replace 1000 with your uid if it differs (id -u).

4. Microsoft's XThreading binary

The GDK runtime in this build implements most of what Forza asks for, but for XThreading it uses Microsoft's own implementation.

Copy xgameruntime.dll from a Windows machine and put it in either of these, renamed:

<Forza Motorsport install dir>/xgameruntime.dll.threading

or

steamapps/compatdata/2440510/pfx/drive_c/windows/system32/xgameruntime.dll.threading

Note the name: it is the original xgameruntime.dll with .threading appended, not a replacement for anything the Proton build ships.

I will not distribute this file - it is Microsoft's, so it has to come from your own Windows installation.

If xgameruntime.dll.threading is missing, the game will not launch.

Checking it worked

Start xodus-service with XODUS_LOG=debug and you should see:

proof key requested, serving x=...
XSTS issued for http://xboxlive.com
XSTS issued for http://sisu.xboxlive.com/
XSTS issued for http://playfab.xboxlive.com/
XSTS issued for http://xboxliveauth.forzamotorsport.net/

All four relying parties means sign-in succeeded.

RRiskRunner0 2026-08-04 github

First off: god-tier work, I can't thank you enough for working on this!

Great instructions, I only had one problem while doing this - I had a popup that read something like this:

Attention Required!
The game has requested XThreading. It's recommended that you use Microsoft's native binary for this instead.

To do so, copy xgameruntime.dll from a Windows machine and place it under the name "xgameruntime.dll.threading" within either the game's binaries or within your prefix's system32 folder.

I had a copy of xgameruntime.dll from when I was trying this work earlier, I ran this, and everything worked:

$ cp /path/to/genuine/xgameruntime.dll \
         ~/<library>/steamapps/compatdata/2440510/pfx/drive_c/windows/system32/xgameruntime.dll.threading

Here's some of my system info for reference, since you're running nvidia I'm happy to report this works on AMD as well:

OS: CachyOS x86_64
Kernel: Linux 7.1.5-1-cachyos
CPU: AMD Ryzen 7 3800X (16) @ 4.56 GHz
GPU: AMD Radeon RX 7900 XTX [Discrete]
Display: 3440x1440 @ 144Hz, HDR (34GP950G)
DE/WM: KDE Plasma 6.7.3, KWin (Wayland)

See ya on the track!

Image
AAllanVester 2026-08-04 github

Oh yeah, totally forgot about that. I will add it to the guide :D Thank you!

RRiskRunner0 2026-08-04 github

Can also confirm it works with gamescope and Steam Controller - but doesn't help me stay on the road!

Here's my gamescope config:

PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/xodus.sock env -u LD_PRELOAD gamescope -W 3440 -H 1440 -w 3440 -h 1440 -f --mangoapp --hdr-enabled -- env LD_PRELOAD="$LD_PRELOAD" RADV_PERFTEST=sam PROTON_VKD3D_HEAP=1 VKD3D_CONFIG=nodxr,descriptor_heap,avoid_image_buffer_aliasing %command%
Image
RRiskRunner0 2026-08-05 github

I also submitted a new report on protondb.com pointing to your comment, so hopefully people can start using if they're still interested!

Ffro0st21 2026-08-08 · hidden on GitHub github

am i the only who has this pop-up, the game starts and freezes instantly?
Also do i have to have both xgameruntime.dll and xgameruntime.dll.threading in the system32?

Image
RRiskRunner0 2026-08-08 · hidden on GitHub github

No, I get that too - just click Ignore Warning and it should proceed. Basically I think Wine doesn't translate the type of disk correctly, so you get that warning, but if you click Ignore it should go through.

As for the xgameruntime.dll, I'm confident I destroyed my wine prefix and rebuilt it from scratch when trying this, but I'm not positive. If I were you, I'd delete the folder if you had it previously.

Ffro0st21 2026-08-08 · hidden on GitHub github

Operating System: CachyOS Linux
KDE Plasma Version: 6.7.4
Kernel Version: 7.1.6-1-cachyos (64-bit)
Processors: 12 × AMD Ryzen 5 9600X 6-Core Processor
Graphics Processor 1: AMD Radeon RX 7900 XT

unfortunately, it freezes and crashes after ignoring

RRiskRunner0 2026-08-08 · hidden on GitHub github

Can you add PROTON_LOG=1 to the beginning of the command? The log should dump to your home directory as steam-2440510.log

Ffro0st21 2026-08-08 · hidden on GitHub github
RRiskRunner0 2026-08-08 · hidden on GitHub github

Did you be sure to set up everything for Xodus? I think when I initially tried, I had the same problem and it was because something within xodus wasn't set up right on my part.

When you run xodus-service, can you set XODUS_LOG=debug and see what it outputs?

AAllanVester 2026-08-08 · hidden on GitHub github

Can you try adding WINEGDK_FORZA_QUIRKS=0 to the command?

Ffro0st21 2026-08-08 · hidden on GitHub github

Did you be sure to set up everything for Xodus? I think when I initially tried, I had the same problem and it was because something within xodus wasn't set up right on my part.

When you run xodus-service, can you set XODUS_LOG=debug and see what it outputs?

Xodus works fine on my end, tested it with logs.

Image

also, when i delete XGameRuntime.dll and leave only XGameRuntime.dll.threading, i get xbox error.

AAllanVester 2026-08-08 · hidden on GitHub github

Yeah, you have to have both XGameRuntime.dll and XGameRuntime.dll.threading - I have XGameRuntime.dll.threading in the game directory

Ffro0st21 2026-08-08 · hidden on GitHub github

ok, i found the issue, i made a silly mistake, thanks for trying to help!

RRiskRunner0 2026-08-08 · hidden on GitHub github

silly mistake

ONE OF US!!

Ffro0st21 2026-08-08 github

now i wonder how to make my XSX controller work there 😆

RRiskRunner0 2026-08-08 github

Yeah I did see that in your logs that it was upset about listing a joystick

Ffro0st21 2026-08-08 github
Image

works with steam input

Nneeseius 2026-08-14 · hidden on GitHub github

I cannot get any controller to work :( I have tried everything.
tried:

  • PROTON_PREFER_SDL=1
  • wired and bluetooth
  • ds4, dualsense, and xbox controllers
  • steam input enabled and disabled

steam-2440510.log

Image Image Image
Nneeseius 2026-08-16 github

fixed gamepad issue, PROTON_DISABLE_HIDRAW=1 was the setting that was needed to get it working.

Pprometheus-ex 2026-08-27 github

Stellar work by all, looking forward to playing without having to go through Windows.
I'm having issues compiling Xodus with Bazzite. Which way would make the most sense to go about this?
Or would rebasing to the DX branch be the most straightforward...

Nnico359 2026-08-27 github

On SteamOS I compiled xodus inside a distrobox and only ran it on the host later. I think you still have to layer the webkitgtk package though because thats whats needed to launch the login windows iirc.

Nneeseius 2026-08-27 github

I am using bazzite-deck on my htpc so I tweaked it a bit. I have attached mine in a zip file along with a systemd service that starts automatically with my user so that I can just launch FM without needing to start anything. I think bazzite comes with webkit so those binaries should be compatible.

xodus.zip

unzip xodus.zip
cd xodus
sudo cp -v xodus-cli xodus-service /usr/local/bin/
cp -v xodus.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now xodus

My xodus-service is slightly tweaked. By default Xodus depends on a desktop keyring which prevented it from running while I am in Game Mode on bazzite. I noticed recently Xodus added a no-key-chain-file compilation option: https://github.com/xodus-gaming/xodus/blob/main/crates/xodus/src/secrets.rs#L14
So I ported this into AllenVester's forked code and then compiled and it's been working great.