3D Studio 4 notes
Peter Bortas
peter at idonex.se
Wed Nov 14 09:43:32 CST 2001
I took a quick look at running 3DS Max v4 in Wine. It pretty quickly
chokes when when feeding RegSetValueExA with a null pointer as the
data for the key "NullFile". The appended hack will go around
that. Unfortunately the executable dies later on:
danae% wine 3dsmax.exe
Line 193: Unrecognized input 'read=0x378-0x37a'
Line 194: Unrecognized input 'write=0x378-0x37a'
fixme:win32:PE_CreateModule Security directory ignored
fixme:reg:RegSetValueExA (188,"NullFile" ...) data is null pointer (3ds4 hack)
FIXME:pthread_rwlock_rdlock
FIXME:pthread_rwlock_unlock
FIXME:pthread_rwlock_rdlock
FIXME:pthread_rwlock_unlock
FIXME:pthread_rwlock_rdlock
FIXME:pthread_rwlock_unlock
FIXME:pthread_rwlock_rdlock
FIXME:pthread_rwlock_unlock
fixme:winsock:_get_sock_fd handle -1 is not a socket (GLE 6)
MSG .0 fatal: getsockopt(SO_OPENTYPE) failed - Invalid handle
wine: Unhandled exception, starting debugger...
zsh: terminated wine 3dsmax.exe
I doubt this helps anyone fix the problem, but it might save someone
10min if trying to get 3ds working later on. When I get some time I'll
do a real report with the nessesary traces.
--
Peter Bortas http://peter.bortas.org
----8<-----------------------------------------
Index: dlls/advapi32/registry.c
===================================================================
RCS file: /home/wine/wine/dlls/advapi32/registry.c,v
retrieving revision 1.26
diff -u -u -r1.26 registry.c
--- dlls/advapi32/registry.c 2001/07/19 00:39:09 1.26
+++ dlls/advapi32/registry.c 2001/11/14 14:10:04
@@ -667,6 +667,17 @@
WCHAR *dataW = NULL;
NTSTATUS status;
+ if(!data)
+ {
+ FIXME("(%x,%s ...) data is null pointer (3ds4 hack)\n",
+ hkey,debugstr_a(name));
+ /* No idea what it really should return or do . I found this one
+ in winerror.h, and it seemed apropriate. 3ds4 seems to ignore
+ it anyway. Just setting data to "" might be what the author
+ expected. */
+ return ERROR_INVALID_DATA;
+ }
+
if (GetVersion() & 0x80000000) /* win95 */
{
if (type == REG_SZ) count = strlen(data) + 1;
---8<----------------------------
More information about the wine-devel
mailing list