[Bug 50105] New: New Vegas Heap Replacer requires unimplemented d3d9 function D3DXMatrixMultiply
https://bugs.winehq.org/show_bug.cgi?id=50105 Bug ID: 50105 Summary: New Vegas Heap Replacer requires unimplemented d3d9 function D3DXMatrixMultiply Product: Wine Version: 5.0.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs(a)winehq.org Reporter: katisntgood(a)gmail.com Distribution: --- Created attachment 68596 --> https://bugs.winehq.org/attachment.cgi?id=68596 Crash report New Vegas Heap Replacer, a heap replacement for Fallout: New Vegas in the form of a modified d3d9_38.dll uses D3DXMatrixMultiply which is unimplemented in Wine (the version used by Proton, but this isn't a problem related to that) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #1 from Nikolay Sivov <bunglehead(a)gmail.com> --- It is implemented in Wine. Does modified d3dx9_38.dll export it? Please attach +loaddll log too. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #2 from Kat <katisntgood(a)gmail.com> --- Created attachment 68597 --> https://bugs.winehq.org/attachment.cgi?id=68597 loaddll log Couldn't get fixme errors to go away -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #3 from Kat <katisntgood(a)gmail.com> --- Also I'm not sure what you mean by export it -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12(a)gmail.com --- Comment #4 from Zebediah Figura <z.figura12(a)gmail.com> --- Created attachment 68598 --> https://bugs.winehq.org/attachment.cgi?id=68598 ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary. Wine's d3dx9_38 implements D3DXMatrixMultiply(), so that's not the problem. The actual problem is that Wine fails to resolve a rather creative forwarder export to "C:\Windows\System32\d3dx9_38.D3DXMatrixMultiply" because the name is too long. The attached patch should fix that. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|New Vegas Heap Replacer |New Vegas Heap Replacer |requires unimplemented d3d9 |crashes with "Call from |function D3DXMatrixMultiply |0x7bc91c09 to unimplemented | |function | |d3dx9_38.dll.D3DXMatrixMult | |iply" Component|directx-d3d |ntdll Keywords| |patch -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick(a)piezo-forte.be --- Comment #5 from Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> --- (In reply to Zebediah Figura from comment #4)
Created attachment 68598 [details] ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary.
Hello, Isn't there an issue with unconditionally freeing mod_name? When buffer is large enough the condition on line 616 will be false and mod_name will still point to buffer. I think lines 646 & 669 should read: if (mod_name != buffer) RtlFreeHeap( GetProcessHeap(), 0, mod_name ); Regards. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #6 from Kat <katisntgood(a)gmail.com> --- Took me a while to actually build (building Proton is weird), and I also can't seem to test any other version of wine, but the patch might have worked. It can launch fine and NVHR doesn't seem to crash anymore (it does get loaded) -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #7 from Zebediah Figura <z.figura12(a)gmail.com> --- (In reply to Olivier F. R. Dierick from comment #5)
(In reply to Zebediah Figura from comment #4)
Created attachment 68598 [details] ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary.
Hello,
Isn't there an issue with unconditionally freeing mod_name?
When buffer is large enough the condition on line 616 will be false and mod_name will still point to buffer.
I think lines 646 & 669 should read:
if (mod_name != buffer) RtlFreeHeap( GetProcessHeap(), 0, mod_name );
Regards.
Yes, that was a mistake, thanks for catching it. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 --- Comment #8 from Kat <katisntgood(a)gmail.com> --- Do you mind making a patch with that coding fix? I don't know how to do it myself -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #68598|0 |1 is obsolete| | --- Comment #9 from Olivier F. R. Dierick <o.dierick(a)piezo-forte.be> --- Created attachment 68599 --> https://bugs.winehq.org/attachment.cgi?id=68599 ntdll: Use a dynamically allocated buffer in find_forwarded_export() if necessary. (In reply to Kat from comment #8)
Do you mind making a patch with that coding fix? I don't know how to do it myself
Hello, Here is an updated patch. Regards. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |74ec9773dd3892f34003811cdee | |7da3e47a550c8 Status|UNCONFIRMED |RESOLVED --- Comment #10 from Zebediah Figura <z.figura12(a)gmail.com> --- Fixed by <https://source.winehq.org/git/wine.git/commitdiff/74ec9773dd3892f34003811cdee7da3e47a550c8>. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50105 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #11 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 6.0-rc1. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla