Mizutsuki
January 26th, 2008, 01:43 PM
I'm trying to get Diablo 1 to run using Wine. according to appdb it should be mostly possible:
http://appdb.winehq.org/objectManager.php?sClass=version&iId=3498&iTestingId=17792
I tried it using the ubuntu default package 0.9.46, I believe, but after the initial cutscene (sans sound) it would go to a black screen, and no amount of clicking or keypresses would do anything other than dump me back to the desktop. So I upgraded to 0.9.54, and now I don't even get the initial cutscene.
I followed the instructions in the appdb and placed the appropriate ddraw.dll in the diablo directory for 9.46, unfortunately I can't find one for anything newer than 9.52, so I don't know if that's causing a problem. Below is the console output:
stephen@Vervet:~/.wine/drive_c/Diablo$ wine Diablo.exe
fixme:spoolsv:serv_main (0 (nil))
fixme:ntdll:RtlNtStatusToDosErrorNoTeb no mapping for 8000000a
stephen@Vervet:~/.wine/drive_c/Diablo$ fixme:win:EnumDisplayDevicesW ((null),0,0x34f840,0x00000000), stub!
fixme:ddraw:IDirectDrawImpl_SetCooperativeLevel This is a hacked ddraw drawing to the desktop window instead of the window the app requested!
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:msg:pack_message WM_NCPAINT hdc packing not supported yet
fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
stephen@Vervet:~/.wine/drive_c/Diablo$ wine: Unhandled page fault on write access to 0x000001e0 at address 0x7ce3a944 (thread 0011), starting debugger...
Unhandled exception: page fault on write access to 0x000001e0 in 32-bit code (0x7ce3a944).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:7ce3a944 ESP:0034f8a4 EBP:0034f8fc EFLAGS:00010a02( - 00 - ROI1)
EAX:80004002 EBX:7cef98bc ECX:0000000f EDX:000001e0
ESI:0034fa49 EDI:7cef437d
Stack dump:
0x0034f8a4: 04030006 7cefa35c 7ce96d6b 7cef98bc
0x0034f8b4: 00000000 00110000 7ce9803c 7cef98bc
0x0034f8c4: 00132670 0004b000 0034f8fc 7ceabe89
0x0034f8d4: 00132670 00000000 001752e8 7cef438c
0x0034f8e4: 00000000 00110000 0034fa48 7cef98bc
0x0034f8f4: 00134d80 0034fa48 0034f94c 7ce96e27
Backtrace:
=>1 0x7ce3a944 in wined3d (+0x1a944) (0x0034f8fc)
2 0x7ce96e27 IWineD3DBaseSurfaceImpl_GetContainer+0xc7() in wined3d (0x0034f94c)
3 0x7cf14b67 in ddraw (+0x18b67) (0x0034fa9c)
4 0x7cf157a9 in ddraw (+0x197a9) (0x0034fc3c)
5 0x7cf18324 in ddraw (+0x1c324) (0x0034fc7c)
6 0x00415603 in diablo (+0x15603) (0x0034fd00)
7 0x00415479 in diablo (+0x15479) (0x004862f4)
8 0x445c6372 (0x535c3a43)
9 0x00000000 (0x00000000)
0x7ce3a944: movl $0x0,0x0(%edx)
Modules:
Module Address Debug info Name (89 modules)
PE 400000- 6b2000 Export diablo
PE 10000000-1004b000 Deferred diabloui
PE 15000000-15045000 Deferred storm
ELF 7b800000-7b925000 Deferred kernel32<elf>
\-PE 7b820000-7b925000 \ kernel32
ELF 7bc00000-7bca1000 Deferred ntdll<elf>
\-PE 7bc10000-7bca1000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7ce0c000-7cefc000 Export wined3d<elf>
\-PE 7ce20000-7cefc000 \ wined3d
PE 7cefc000-7cf52000 Export ddraw
ELF 7cf52000-7cfa3000 Deferred libgcrypt.so.11
ELF 7cfa3000-7cfb3000 Deferred libtasn1.so.3
ELF 7cfb3000-7cfbb000 Deferred libkrb5support.so.0
ELF 7cfbb000-7cfe9000 Deferred libcrypt.so.1
ELF 7cfe9000-7d059000 Deferred libgnutls.so.13
ELF 7d059000-7d07e000 Deferred libk5crypto.so.3
ELF 7d07e000-7d106000 Deferred libkrb5.so.3
ELF 7d106000-7d12f000 Deferred libgssapi_krb5.so.2
ELF 7d12f000-7d164000 Deferred libcups.so.2
ELF 7d188000-7d19b000 Deferred libresolv.so.2
ELF 7d1aa000-7d1c8000 Deferred iphlpapi<elf>
\-PE 7d1b0000-7d1c8000 \ iphlpapi
ELF 7d1c8000-7d226000 Deferred rpcrt4<elf>
\-PE 7d1d0000-7d226000 \ rpcrt4
ELF 7d226000-7d2c5000 Deferred ole32<elf>
\-PE 7d230000-7d2c5000 \ ole32
ELF 7d56e000-7d572000 Deferred libgpg-error.so.0
ELF 7d592000-7d5c4000 Deferred uxtheme<elf>
\-PE 7d5a0000-7d5c4000 \ uxtheme
ELF 7d5c4000-7d5cd000 Deferred libxcursor.so.1
ELF 7d5cd000-7d5ea000 Deferred imm32<elf>
\-PE 7d5d0000-7d5ea000 \ imm32
ELF 7d5ea000-7d5ef000 Deferred libxfixes.so.3
ELF 7d5ef000-7d5f2000 Deferred libxcomposite.so.1
ELF 7d5f2000-7d5fa000 Deferred libxrender.so.1
ELF 7d604000-7d606000 Deferred libkeyutils.so.1
ELF 7d606000-7d609000 Deferred libcom_err.so.2
ELF 7dba4000-7dba6000 Deferred libnvidia-tls.so.1
ELF 7dba6000-7e53e000 Deferred libglcore.so.1
ELF 7e53e000-7e5d4000 Deferred libgl.so.1
ELF 7e5d4000-7e5d9000 Deferred libxdmcp.so.6
ELF 7e5d9000-7e6ca000 Deferred libx11.so.6
ELF 7e6ca000-7e6d8000 Deferred libxext.so.6
ELF 7e6d8000-7e6dd000 Deferred libxxf86vm.so.1
ELF 7e6dd000-7e6f5000 Deferred libice.so.6
ELF 7e6f5000-7e6fd000 Deferred libsm.so.6
ELF 7e6ff000-7e705000 Deferred libxrandr.so.2
ELF 7e70c000-7e79b000 Deferred winex11<elf>
\-PE 7e720000-7e79b000 \ winex11
ELF 7e7ed000-7e80d000 Deferred libexpat.so.1
ELF 7e80d000-7e838000 Deferred libfontconfig.so.1
ELF 7e847000-7e85c000 Deferred libz.so.1
ELF 7e85c000-7e8cc000 Deferred libfreetype.so.6
ELF 7e8cc000-7e8e0000 Deferred lz32<elf>
\-PE 7e8d0000-7e8e0000 \ lz32
ELF 7e8e0000-7e8f9000 Deferred version<elf>
\-PE 7e8f0000-7e8f9000 \ version
ELF 7e8f9000-7e92e000 Deferred winspool<elf>
\-PE 7e900000-7e92e000 \ winspool
ELF 7e92e000-7e9cd000 Deferred comdlg32<elf>
\-PE 7e930000-7e9cd000 \ comdlg32
ELF 7e9cd000-7ea32000 Deferred msvcrt<elf>
\-PE 7e9e0000-7ea32000 \ msvcrt
ELF 7ea32000-7ea4b000 Deferred crtdll<elf>
\-PE 7ea40000-7ea4b000 \ crtdll
ELF 7ea4b000-7eb0a000 Deferred comctl32<elf>
\-PE 7ea50000-7eb0a000 \ comctl32
ELF 7eb0a000-7eb61000 Deferred shlwapi<elf>
\-PE 7eb20000-7eb61000 \ shlwapi
ELF 7eb61000-7ec65000 Deferred shell32<elf>
\-PE 7eb70000-7ec65000 \ shell32
ELF 7ec65000-7ecaf000 Deferred advapi32<elf>
\-PE 7ec70000-7ecaf000 \ advapi32
ELF 7ecaf000-7ed46000 Deferred gdi32<elf>
\-PE 7ecc0000-7ed46000 \ gdi32
ELF 7ed46000-7ee7d000 Deferred user32<elf>
\-PE 7ed60000-7ee7d000 \ user32
ELF 7ee7d000-7ee95000 Deferred libnsl.so.1
ELF 7ee95000-7ee9e000 Deferred libnss_compat.so.2
ELF 7efcc000-7eff1000 Deferred libm.so.6
ELF 7eff2000-7eff5000 Deferred libxau.so.6
ELF 7eff5000-7f000000 Deferred libnss_files.so.2
ELF b7d33000-b7d3d000 Deferred libnss_nis.so.2
ELF b7d40000-b7d44000 Deferred libdl.so.2
ELF b7d44000-b7e8e000 Deferred libc.so.6
ELF b7e8f000-b7ea7000 Deferred libpthread.so.0
ELF b7eb6000-b7fca000 Deferred libwine.so.1
ELF b7fcc000-b7fe8000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
0000000a
0000000b 0
00000010 (D) C:\Diablo\Diablo.exe
00000011 0 <==
00000012
00000014 0
00000013 0
Backtrace:
=>1 0x7ce3a944 in wined3d (+0x1a944) (0x0034f8fc)
2 0x7ce96e27 IWineD3DBaseSurfaceImpl_GetContainer+0xc7() in wined3d (0x0034f94c)
3 0x7cf14b67 in ddraw (+0x18b67) (0x0034fa9c)
4 0x7cf157a9 in ddraw (+0x197a9) (0x0034fc3c)
5 0x7cf18324 in ddraw (+0x1c324) (0x0034fc7c)
6 0x00415603 in diablo (+0x15603) (0x0034fd00)
7 0x00415479 in diablo (+0x15479) (0x004862f4)
8 0x445c6372 (0x535c3a43)
9 0x00000000 (0x00000000)
err:ddraw:DllMain DDraw 0x131a60 still has 1 surfaces attached
stephen@Vervet:~/.wine/drive_c/Diablo$ fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
fixme:d3d:IWineD3DDeviceImpl_Release (0x134d80) Device released with resources still bound, acceptable but unexpected
fixme:d3d:dumpResources Leftover resource 0x132670 with type 1,WINED3DRTYPE_SURFACE
Thanks so much for your time,
Stephen
http://appdb.winehq.org/objectManager.php?sClass=version&iId=3498&iTestingId=17792
I tried it using the ubuntu default package 0.9.46, I believe, but after the initial cutscene (sans sound) it would go to a black screen, and no amount of clicking or keypresses would do anything other than dump me back to the desktop. So I upgraded to 0.9.54, and now I don't even get the initial cutscene.
I followed the instructions in the appdb and placed the appropriate ddraw.dll in the diablo directory for 9.46, unfortunately I can't find one for anything newer than 9.52, so I don't know if that's causing a problem. Below is the console output:
stephen@Vervet:~/.wine/drive_c/Diablo$ wine Diablo.exe
fixme:spoolsv:serv_main (0 (nil))
fixme:ntdll:RtlNtStatusToDosErrorNoTeb no mapping for 8000000a
stephen@Vervet:~/.wine/drive_c/Diablo$ fixme:win:EnumDisplayDevicesW ((null),0,0x34f840,0x00000000), stub!
fixme:ddraw:IDirectDrawImpl_SetCooperativeLevel This is a hacked ddraw drawing to the desktop window instead of the window the app requested!
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Cannot change screen BPP from 32 to 8
fixme:msg:pack_message WM_NCPAINT hdc packing not supported yet
fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
stephen@Vervet:~/.wine/drive_c/Diablo$ wine: Unhandled page fault on write access to 0x000001e0 at address 0x7ce3a944 (thread 0011), starting debugger...
Unhandled exception: page fault on write access to 0x000001e0 in 32-bit code (0x7ce3a944).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:7ce3a944 ESP:0034f8a4 EBP:0034f8fc EFLAGS:00010a02( - 00 - ROI1)
EAX:80004002 EBX:7cef98bc ECX:0000000f EDX:000001e0
ESI:0034fa49 EDI:7cef437d
Stack dump:
0x0034f8a4: 04030006 7cefa35c 7ce96d6b 7cef98bc
0x0034f8b4: 00000000 00110000 7ce9803c 7cef98bc
0x0034f8c4: 00132670 0004b000 0034f8fc 7ceabe89
0x0034f8d4: 00132670 00000000 001752e8 7cef438c
0x0034f8e4: 00000000 00110000 0034fa48 7cef98bc
0x0034f8f4: 00134d80 0034fa48 0034f94c 7ce96e27
Backtrace:
=>1 0x7ce3a944 in wined3d (+0x1a944) (0x0034f8fc)
2 0x7ce96e27 IWineD3DBaseSurfaceImpl_GetContainer+0xc7() in wined3d (0x0034f94c)
3 0x7cf14b67 in ddraw (+0x18b67) (0x0034fa9c)
4 0x7cf157a9 in ddraw (+0x197a9) (0x0034fc3c)
5 0x7cf18324 in ddraw (+0x1c324) (0x0034fc7c)
6 0x00415603 in diablo (+0x15603) (0x0034fd00)
7 0x00415479 in diablo (+0x15479) (0x004862f4)
8 0x445c6372 (0x535c3a43)
9 0x00000000 (0x00000000)
0x7ce3a944: movl $0x0,0x0(%edx)
Modules:
Module Address Debug info Name (89 modules)
PE 400000- 6b2000 Export diablo
PE 10000000-1004b000 Deferred diabloui
PE 15000000-15045000 Deferred storm
ELF 7b800000-7b925000 Deferred kernel32<elf>
\-PE 7b820000-7b925000 \ kernel32
ELF 7bc00000-7bca1000 Deferred ntdll<elf>
\-PE 7bc10000-7bca1000 \ ntdll
ELF 7bf00000-7bf03000 Deferred <wine-loader>
ELF 7ce0c000-7cefc000 Export wined3d<elf>
\-PE 7ce20000-7cefc000 \ wined3d
PE 7cefc000-7cf52000 Export ddraw
ELF 7cf52000-7cfa3000 Deferred libgcrypt.so.11
ELF 7cfa3000-7cfb3000 Deferred libtasn1.so.3
ELF 7cfb3000-7cfbb000 Deferred libkrb5support.so.0
ELF 7cfbb000-7cfe9000 Deferred libcrypt.so.1
ELF 7cfe9000-7d059000 Deferred libgnutls.so.13
ELF 7d059000-7d07e000 Deferred libk5crypto.so.3
ELF 7d07e000-7d106000 Deferred libkrb5.so.3
ELF 7d106000-7d12f000 Deferred libgssapi_krb5.so.2
ELF 7d12f000-7d164000 Deferred libcups.so.2
ELF 7d188000-7d19b000 Deferred libresolv.so.2
ELF 7d1aa000-7d1c8000 Deferred iphlpapi<elf>
\-PE 7d1b0000-7d1c8000 \ iphlpapi
ELF 7d1c8000-7d226000 Deferred rpcrt4<elf>
\-PE 7d1d0000-7d226000 \ rpcrt4
ELF 7d226000-7d2c5000 Deferred ole32<elf>
\-PE 7d230000-7d2c5000 \ ole32
ELF 7d56e000-7d572000 Deferred libgpg-error.so.0
ELF 7d592000-7d5c4000 Deferred uxtheme<elf>
\-PE 7d5a0000-7d5c4000 \ uxtheme
ELF 7d5c4000-7d5cd000 Deferred libxcursor.so.1
ELF 7d5cd000-7d5ea000 Deferred imm32<elf>
\-PE 7d5d0000-7d5ea000 \ imm32
ELF 7d5ea000-7d5ef000 Deferred libxfixes.so.3
ELF 7d5ef000-7d5f2000 Deferred libxcomposite.so.1
ELF 7d5f2000-7d5fa000 Deferred libxrender.so.1
ELF 7d604000-7d606000 Deferred libkeyutils.so.1
ELF 7d606000-7d609000 Deferred libcom_err.so.2
ELF 7dba4000-7dba6000 Deferred libnvidia-tls.so.1
ELF 7dba6000-7e53e000 Deferred libglcore.so.1
ELF 7e53e000-7e5d4000 Deferred libgl.so.1
ELF 7e5d4000-7e5d9000 Deferred libxdmcp.so.6
ELF 7e5d9000-7e6ca000 Deferred libx11.so.6
ELF 7e6ca000-7e6d8000 Deferred libxext.so.6
ELF 7e6d8000-7e6dd000 Deferred libxxf86vm.so.1
ELF 7e6dd000-7e6f5000 Deferred libice.so.6
ELF 7e6f5000-7e6fd000 Deferred libsm.so.6
ELF 7e6ff000-7e705000 Deferred libxrandr.so.2
ELF 7e70c000-7e79b000 Deferred winex11<elf>
\-PE 7e720000-7e79b000 \ winex11
ELF 7e7ed000-7e80d000 Deferred libexpat.so.1
ELF 7e80d000-7e838000 Deferred libfontconfig.so.1
ELF 7e847000-7e85c000 Deferred libz.so.1
ELF 7e85c000-7e8cc000 Deferred libfreetype.so.6
ELF 7e8cc000-7e8e0000 Deferred lz32<elf>
\-PE 7e8d0000-7e8e0000 \ lz32
ELF 7e8e0000-7e8f9000 Deferred version<elf>
\-PE 7e8f0000-7e8f9000 \ version
ELF 7e8f9000-7e92e000 Deferred winspool<elf>
\-PE 7e900000-7e92e000 \ winspool
ELF 7e92e000-7e9cd000 Deferred comdlg32<elf>
\-PE 7e930000-7e9cd000 \ comdlg32
ELF 7e9cd000-7ea32000 Deferred msvcrt<elf>
\-PE 7e9e0000-7ea32000 \ msvcrt
ELF 7ea32000-7ea4b000 Deferred crtdll<elf>
\-PE 7ea40000-7ea4b000 \ crtdll
ELF 7ea4b000-7eb0a000 Deferred comctl32<elf>
\-PE 7ea50000-7eb0a000 \ comctl32
ELF 7eb0a000-7eb61000 Deferred shlwapi<elf>
\-PE 7eb20000-7eb61000 \ shlwapi
ELF 7eb61000-7ec65000 Deferred shell32<elf>
\-PE 7eb70000-7ec65000 \ shell32
ELF 7ec65000-7ecaf000 Deferred advapi32<elf>
\-PE 7ec70000-7ecaf000 \ advapi32
ELF 7ecaf000-7ed46000 Deferred gdi32<elf>
\-PE 7ecc0000-7ed46000 \ gdi32
ELF 7ed46000-7ee7d000 Deferred user32<elf>
\-PE 7ed60000-7ee7d000 \ user32
ELF 7ee7d000-7ee95000 Deferred libnsl.so.1
ELF 7ee95000-7ee9e000 Deferred libnss_compat.so.2
ELF 7efcc000-7eff1000 Deferred libm.so.6
ELF 7eff2000-7eff5000 Deferred libxau.so.6
ELF 7eff5000-7f000000 Deferred libnss_files.so.2
ELF b7d33000-b7d3d000 Deferred libnss_nis.so.2
ELF b7d40000-b7d44000 Deferred libdl.so.2
ELF b7d44000-b7e8e000 Deferred libc.so.6
ELF b7e8f000-b7ea7000 Deferred libpthread.so.0
ELF b7eb6000-b7fca000 Deferred libwine.so.1
ELF b7fcc000-b7fe8000 Deferred ld-linux.so.2
Threads:
process tid prio (all id:s are in hex)
0000000a
0000000b 0
00000010 (D) C:\Diablo\Diablo.exe
00000011 0 <==
00000012
00000014 0
00000013 0
Backtrace:
=>1 0x7ce3a944 in wined3d (+0x1a944) (0x0034f8fc)
2 0x7ce96e27 IWineD3DBaseSurfaceImpl_GetContainer+0xc7() in wined3d (0x0034f94c)
3 0x7cf14b67 in ddraw (+0x18b67) (0x0034fa9c)
4 0x7cf157a9 in ddraw (+0x197a9) (0x0034fc3c)
5 0x7cf18324 in ddraw (+0x1c324) (0x0034fc7c)
6 0x00415603 in diablo (+0x15603) (0x0034fd00)
7 0x00415479 in diablo (+0x15479) (0x004862f4)
8 0x445c6372 (0x535c3a43)
9 0x00000000 (0x00000000)
err:ddraw:DllMain DDraw 0x131a60 still has 1 surfaces attached
stephen@Vervet:~/.wine/drive_c/Diablo$ fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
fixme:d3d:IWineD3DDeviceImpl_Release (0x134d80) Device released with resources still bound, acceptable but unexpected
fixme:d3d:dumpResources Leftover resource 0x132670 with type 1,WINED3DRTYPE_SURFACE
Thanks so much for your time,
Stephen