Roblox Studio hangs on Wine due to unimplemented VirtualProtectFromApp func

though I know this is more like of a Wine issue that this func is not implemented on their side, but I have no idea how to report it on their helpdesk/forum. so I am asking you to fix this on your side guys.

I think the title tells you everything already.

I suggest you make a detection if the current env is Wine, and stop using the unimplemented “VirtualProtectFromApp” func, and fallback to the standart VirtualProtect instead.

logs from wine if needed:
fsync: up and running.
002c:fixme:winediag:loader_init wine-staging 10.0 is a testing version containing experimental patches.
002c:fixme:winediag:loader_init Please mention your exact version when filing bug reports on winehq.org.
0158:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 028BFF18
014c:fixme:oleacc:find_class_data unhandled window class: L"#32769"
014c:fixme:uiautomation:uia_get_providers_for_hwnd Override provider callback currently unimplemented.
014c:fixme:uiautomation:default_uia_provider_callback Default ProviderType_NonClientArea provider unimplemented.
014c:fixme:oleacc:find_class_data unhandled window class: L"#32769"
014c:fixme:uiautomation:base_hwnd_fragment_get_FragmentRoot 0000000000815BE8, 000000000021F9D0: stub!
014c:fixme:uiautomation:base_hwnd_fragment_GetEmbeddedFragmentRoots 0000000000815BE8, 000000000021F9E0: stub!
0024:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0164:fixme:uiautomation:msaa_provider_GetPatternProvider Unimplemented patternId 10002
0164:fixme:uiautomation:base_hwnd_provider_GetPatternProvider 000000000082DE80, 10002, 000000000182F8A0: stub
0178:fixme:oleacc:LresultFromObject unsupported wParam = ffffffff
0178:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {6d5140c1-7436-11ce-8034-00aa006009fa} with error 0x80004002
0178:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {e89f726e-c4f4-4c19-bb19-b647d7fa8478} with error 0x80004002
0178:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {6d5140c1-7436-11ce-8034-00aa006009fa} with error 0x80004002
0178:err:ole:marshal_object Failed to create an IRpcStubBuffer from IPSFactory for {e89f726e-c4f4-4c19-bb19-b647d7fa8478} with error 0x80004002
0178:fixme:syslink:Accessible_get_accFocus 02D97FF8
0164:fixme:oleacc:find_class_data unhandled window class: L"Button"
0164:fixme:uiautomation:msaa_provider_GetPatternProvider Unimplemented patternId 10002
0164:fixme:uiautomation:base_hwnd_provider_GetPatternProvider 000000000086D940, 10002, 000000000182F8A0: stub
0164:fixme:oleacc:find_class_data unhandled window class: L"#32770"
0164:fixme:oleacc:find_class_data unhandled window class: L"Button"
0164:fixme:oleacc:find_class_data unhandled window class: L"Button"
0164:fixme:uiautomation:msaa_provider_GetPatternProvider Unimplemented patternId 10002
0164:fixme:uiautomation:base_hwnd_provider_GetPatternProvider 000000000086D940, 10002, 000000000182F8A0: stub
0164:fixme:oleacc:find_class_data unhandled window class: L"Button"
0164:fixme:uiautomation:msaa_provider_GetPatternProvider Unimplemented patternId 10002
0164:fixme:uiautomation:base_hwnd_provider_GetPatternProvider 0000000000836B10, 10002, 000000000182F8A0: stub
0164:fixme:oleacc:find_class_data unhandled window class: L"Button"
0164:fixme:uiautomation:msaa_provider_GetPatternProvider Unimplemented patternId 10002
0164:fixme:uiautomation:base_hwnd_provider_GetPatternProvider 000000000086B120, 10002, 000000000182F8A0: stub
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting
wine: Call from 7BF924E8 to unimplemented function api-ms-win-core-memory-l1-1-3.dll.VirtualProtectFromApp, aborting

This happens both in RobloxStudioInstaller.exe and in RobloxStudioBeta.exe.

Expected behavior

To install Roblox Studio normally without any issues under Wine.

8 Likes

I don’t think Roblox cares about Wine support, but at this point just use Vinegar or if you don’t want to do that for any reason, get Studio version version-c98e1b5b4dd94b96, it doesn’t use that function

2 Likes

you are being off-topic, not relevant to this bug report at all.

what if they do? you can’t read the minds of people who work at Roblox.

I don’t like Vinegar. Why? (Do I really need to explain this?) Because I don’t like GO lang, and also I don’t like GTK (bloat). This is the most red flags to me, not including small things like detecting versions that you put yourself into the folder. Also, vinegar only allows you to have one wine prefix, and only one studio version installed. It doesn’t allow you to install studio from a custom source (built-in). You have zero customizability (UI, built-in). The list goes on infinitely… I’m making my own Roblox Studio wrapper right now, it would be a lot better.

This is a “temporary workaround”. Soon enough you won’t be able to use this version without patching studio yourself to not get updates, and then what would you do? the best solution from this is to just get a little support from the Roblox team.

1 Like

This bug was already reported here. This shouldn’t be something Roblox fixes as it is an issue caused by Wine (and running studio under wine isn’t supported for obvious reasons).

2 Likes

To my knowledge and some testing, I don’t believe there is a Wine and Proton fork which implements the function as of now.
As Stan said, it has already been reported to the WineHQ which has gotten some attention, it will probably get looked into and sorted within the next few months, unless a Wine fork does it first as a temporary fix.

I’m unsure if posting a bug report here will draw any attention from engineering team as this is a Wine-related issue which is out of control of Roblox, the only thing they could do is to not use the function, but considering it’s been in the Windows API since 2022 and Windows 7, 8/8.1 support is no longer a thing, Roblox doesn’t believe there is any issues with using newer API calls.

1 Like

I suggest you re-read the post again, and stop being off-topic :crazy_face:

Why should Roblox add a detection to fix Wine’s unimplemented issues? Even when implemented, Linux users are still reporting crashing when launching Studio. The best resort is for Wine to fix it, and if they can’t, you can always switch to Windows (there hasn’t been a bug report on a Windows function being unimplemented on Windows🤔)

I just did? I don’t get why I would be re-reading your post and I am also not sure why you are stating that my comments were “off-topic”, please tell me the offending text and I’ll make it clearer for you.

1 Like

I disagree with the bug report—it misplaces responsibility. This is clearly a Wine issue, not a Roblox one. Expecting Roblox to add specific workarounds for unofficial, unsupported environments like Wine is unreasonable, especially when the function in question (VirtualProtectFromApp) is part of the standard Windows API and has been for years. If Wine doesn’t support it, that’s something for the Wine developers to fix, and it already seems to be on their radar. Posting this as a Roblox bug report just clutters the tracker with issues outside Roblox’s control and sets a bad precedent for expecting official support on platforms that Roblox doesn’t target.

You’re embarassing yourself :pray: relax

2 Likes

most enjoyable to talk to touhou fan award

6 Likes

Closed to avoid spam, ENG team shall re-open whenever there’s any update.

Hey everyone, just closing the loop, not a Roblox issue. Thx for the report!

2 Likes