https://bugs.winehq.org/show_bug.cgi?id=52171
Bug ID: 52171 Summary: CXBX-R Xbox emulator cannot save game data, error "NtCreateFile alloc_size not supported" Product: Wine Version: 6.23 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: kle@bluewin.ch Distribution: ---
Hi all
Here follows a bug report regarding a missing / not implemented function in Wine. This issue effectively prevents the saving of gaming data (in the emulator) to the locally available storage (SSD, HDD).
Interestingly not all games are affected in the same way. It differs which function the corresponding game is calling when a saving process to the emulated Xbox HDD is performed. For example, "Crash Tag Team Racing" cannot save anything while the game "Baldur's Gate Dark Alliance" is able to save at least partially data to the emulated Xbox HDD.
The full error message at the CLI (during a failed saving process) is:
0184:fixme:file:NtCreateFile alloc_size not supported 0184:fixme:file:NtSetInformationFile Unsupported class (19)
I can confirm this behavior for Wine 6.23 but this seems present also at all older versions. The first by me tested version with that problem was Wine 6.7.
Earlier Wine 6.x builds generally didn't work well with the CXBX-R emulator because the built-in Visual C++ 2019 support was too limited and the native MS Visual C++ 2019 compatibility became flawed.
According to the CXBX-R GitHub webpage (https://github.com/Cxbx-Reloaded/Cxbx-Reloaded) Wine 5.0.3 is described in conjunction with native MS Visual C++ 2019 as "stable". So the here reported "NtCreateFile alloc_size not supported" bug may not be present. However, this is not tested by me, so I cannot confirm this.
Whatever, in summary this issue may have a relation to the built-in Visual C++ 2019 support in Wine. More information can be found at the following CXBX-R bug page: https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/issues/2161
https://bugs.winehq.org/show_bug.cgi?id=52171
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #1 from Stefan Dösinger stefan@codeweavers.com --- Created attachment 71702 --> https://bugs.winehq.org/attachment.cgi?id=71702 Possible hack
My 2c from the cxbx source code is that it just passes through a game request here. That would explain why different games behave differently.
I don't think the NtCreateFile FIXME matters on its own. According to stackoverflow postings the parameter is merely a hint to the file system to reserve a certain amount of space to reduce fragmentation and/or fail early if not enough free space is available.
The error return from NtQueryInformationFile is more likely to cause a failure. This hack simply changes it to return success and a zero size. It might be enough. If not, try to trace the value(s) that the game passes to NtCreateFile and return a similar or larger value in NtQueryInformationFile and see what happens.
https://bugs.winehq.org/show_bug.cgi?id=52171
--- Comment #2 from C. Leu kle@bluewin.ch --- Many thanks Stefan Dösinger for this very informative response!
Will forward that to the CXBX-R devs. They should be able to use this information and hack to fix the problem. :-)
https://bugs.winehq.org/show_bug.cgi?id=52171
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- I(In reply to C. Leu from comment #2)
Many thanks Stefan Dösinger for this very informative response!
Will forward that to the CXBX-R devs. They should be able to use this information and hack to fix the problem. :-)
If it works on windows, there is no reason for them to fix anything - that's on Wine.
I think the idea here was for you to test the hack, and report back if it fixes the issue..
https://bugs.winehq.org/show_bug.cgi?id=52171
--- Comment #4 from C. Leu kle@bluewin.ch --- Yes I really would try this out by myself if I could do it, - absolutely.
But at the moment I am simply still a noob regarding all this code stuff. So my function is more to be a "dev supporter". ;-)
And although this is not as "productive", it can be still helpful. Sometimes it is really just necessary to be at the right moment at the right place or to ping at the right moment the right persons and bring the right people together. And the problem will be solved.
Whatever, the CXBX-R devs will absolutely look into this because it is in their own interest and in the interest of all CXBX-R Linux users like me. :-D
https://bugs.winehq.org/show_bug.cgi?id=52171
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch
https://bugs.winehq.org/show_bug.cgi?id=52171
C. Leu kle@bluewin.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu Component|-unknown |ntdll