[Bug 22039] LEGO Island (Mindscape) fails to start (Direct3DRMViewport::SetAppData() and IDirect3DRMViewport::GetAppData() are stubs)

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Oct 17 06:11:01 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=22039

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
          Component|-unknown                    |directx-d3d
            Summary|Lego Island: failed to      |LEGO Island (Mindscape)
                   |start.                      |fails to start
                   |                            |(Direct3DRMViewport::SetApp
                   |                            |Data() and
                   |                            |IDirect3DRMViewport::GetApp
                   |                            |Data() are stubs)
     Ever confirmed|0                           |1

--- Comment #11 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming.
Thanks to people still seeding this ancient stuff I got a copy for
investigation.

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/LEGO Island

$ WINEDEBUG=+tid,+seh,+relay,+d3d,+d3drm wine ./LEGOIsle.exe >>log.txt 2>&1
...
0028:Call KERNEL32.CreateProcessW(0033f4b4 L"isle.exe",00421438 L"isle.exe
/diskstream /script
\\lego\\scripts\\isle\\isle.si",00000000,00000000,00000001,00000400,00000000,00000000,0033f6cc,0033f6bc)
ret=7e5366c8
...
002a:Call KERNEL32.__wine_kernel_init() ret=7bc6c8df
0028:Ret  KERNEL32.CreateProcessW() retval=00000001 ret=7e5366c8
...
002a:Call d3drm.Direct3DRMCreate(0033f4f8) ret=100a1671 
...
002a:Ret  d3drm.Direct3DRMCreate() retval=00000000 ret=100a1671
002a:trace:d3drm:d3drm1_QueryInterface iface 0x1c8d50, riid
{4516ecc8-8f20-11d0-9b6d-0000c0781bc3}, out 0x1010103c. 
...
002a:trace:d3drm:d3drm2_CreateFrame iface 0x1c8d54, parent_frame (nil), frame
0x3739b4.
002a:trace:d3drm:Direct3DRMFrame_create riid
{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}, parent (nil), out 0x3739b4. 
...
002a:trace:d3drm:d3drm_frame3_QueryInterface iface 0x1c9bdc, riid
{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}, out 0x3739b4.
002a:trace:d3drm:d3drm_frame2_AddRef iface 0x1c9bd8.
002a:trace:d3drm:d3drm_frame3_AddRef 0x1c9bdc increasing refcount to 2.
002a:trace:d3drm:d3drm_frame3_Release 0x1c9bdc decreasing refcount to 1.
002a:trace:d3drm:d3drm2_CreateFrame iface 0x1c8d54, parent_frame (nil), frame
0x3739c4.
002a:trace:d3drm:Direct3DRMFrame_create riid
{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}, parent (nil), out 0x3739c4. 
...
002a:fixme:d3drm:d3drm2_SetDefaultTextureShades iface 0x1c8d54, shade_count 32
stub!
002a:fixme:d3drm:d3drm2_SetDefaultTextureColors iface 0x1c8d54, color_count 256
stub!
002a:trace:d3drm:d3drm_device2_SetQuality iface 0x1ca164, quality 137.
002a:trace:d3drm:d3drm_device3_SetQuality iface 0x1ca168, quality 137.
002a:trace:d3drm:d3drm_device2_SetShades iface 0x1ca164, count 32.
002a:fixme:d3drm:d3drm_device3_SetShades iface 0x1ca168, count 32 stub!
002a:trace:d3drm:d3drm_device2_SetDither iface 0x1ca164, enabled 0.
002a:trace:d3drm:d3drm_device3_SetDither iface 0x1ca168, enable 0.
002a:trace:d3drm:d3drm_device2_GetWidth iface 0x1ca164.
002a:trace:d3drm:d3drm_device3_GetWidth iface 0x1ca168.
002a:trace:d3drm:d3drm_device2_GetHeight iface 0x1ca164.
002a:trace:d3drm:d3drm_device3_GetHeight iface 0x1ca168.
002a:fixme:d3drm:d3drm2_CreateViewport iface 0x1c8d54, device 0x1ca164, camera
0x1c9c58, x 0, y 0, width 0, height 0, viewport 0x3739e4 partial stub!
002a:trace:d3drm:Direct3DRMViewport_create riid
{eb16cb02-d271-11ce-ac48-0000c03825a1}, out 0x3739e4
...
002a:trace:d3drm:d3drm2_CreateFrame iface 0x1c8d54, parent_frame (nil), frame
0x3739f0.
002a:trace:d3drm:Direct3DRMFrame_create riid
{c3dfbd60-3988-11d0-9ec2-0000c0291ac3}, parent (nil), out 0x3739f0. 
...
002a:fixme:d3drm:d3drm_viewport1_SetAppData iface 0x1c9cd8, data 0x3739f0 stub!
002a:trace:d3drm:d3drm_frame2_GetChildren iface 0x1ca1a8, children 0x33f2cc.
002a:trace:d3drm:d3drm_frame3_GetChildren iface 0x1ca1ac, children 0x33f2cc. 
...
002a:fixme:d3drm:d3drm_viewport1_SetAppData iface 0x1c9cd8, data 0 stub!
002a:trace:d3drm:d3drm_viewport1_Release 0x1c9cd8 decreasing refcount to 0.
...
002a:trace:d3drm:d3drm_device2_Release iface 0x1ca164.
002a:trace:d3drm:d3drm_device3_Release 0x1ca168 decreasing refcount to 0.
002a:trace:d3drm:d3drm_device_destroy Releasing attached ddraw interfaces.
002a:trace:d3drm:d3drm1_Release 0x1c8d50 decreasing refcount to 1. 
...
002a:Call user32.MessageBoxA(00000000,004100c8 "\"LEGO\xae Island\" failed to
start.  Please quit all other applications and try again.",0041011c "LEGO\xae
Island Error",00000000) ret=004016eb 
--- snip ---

The problem results from 'IDirect3DRMViewport::SetAppData()' and
'IDirect3DRMViewport::GetAppData()' being stubs.
The viewport/device gets destroyed due to 'SetAppData' stub.

With 'SetAppData' semi-stubbed it crashes a bit later due to 'GetAppData' stub
(tries to access NULL data).

Source:

https://source.winehq.org/git/wine.git/blob/175e68fe053fa7c74c8cf8b35ed1de49f13af6d5:/dlls/d3drm/viewport.c#l126

https://source.winehq.org/git/wine.git/blob/175e68fe053fa7c74c8cf8b35ed1de49f13af6d5:/dlls/d3drm/viewport.c#l133

Refining summary to target these.

ProtectionID scan for documentation purpose:

--- snip ---
-=[ ProtectionID v0.6.6.7 DECEMBER]=-
(c) 2003-2015 CDKiLLER & TippeX
Build 24/12/14-22:48:13
Ready...
Scanning -> C:\Program Files\LEGO Island\ISLE.EXE
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 86528 (015200h)
Byte(s)
Compilation TimeStamp : 0x34145858 -> Mon 08th Sep 1997 19:56:08 (GMT)
[TimeStamp] 0x34145858 -> Mon 08th Sep 1997 19:56:08 (GMT) | PE Header | - |
Offset: 0x00000088 | VA: 0x00400088 | -
[File Heuristics] -> Flag #1 : 00000000000001001100000000000000 (0x0004C000)
[Entrypoint Section Entropy] : 6.39 (section #0) ".text   " | Size : 0xD5D6
(54742) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 6 (0x6) | ImageSize 0x1A000 (106496) byte(s)
[VersionInfo] Company Name : Mindscape
[VersionInfo] Product Name : Adventures on LEGO Island
[VersionInfo] Product Version : 1. 1. 0. 0
[VersionInfo] File Description : isle
[VersionInfo] File Version : 1. 1. 0. 0
[VersionInfo] Original FileName : isle.exe
[VersionInfo] Internal Name : isle
[VersionInfo] Version Comments : DG JB AG RC EE
[VersionInfo] Legal Copyrights : Copyright © 1997
[CompilerDetect] -> Visual C++ 4.2
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.328 Second(s) [000000148h (328) tick(s)] [499 of 573 scan(s)
done]

Scanning -> C:\Program Files\LEGO Island\LEGO1.DLL
File Type : 32-Bit Dll (Subsystem : Win GUI / 2), Size : 1135616 (0115400h)
Byte(s)
Compilation TimeStamp : 0x34107E9B -> Fri 05th Sep 1997 21:50:19 (GMT)
[TimeStamp] 0x34107E9B -> Fri 05th Sep 1997 21:50:19 (GMT) | PE Header | - |
Offset: 0x00000088 | VA: 0x10000088 | -
[TimeStamp] 0x34107E9B -> Fri 05th Sep 1997 21:50:19 (GMT) | Export | - |
Offset: 0x000ECE44 | VA: 0x100EDE44 | -
[File Heuristics] -> Flag #1 : 00000000000001001100000100000000 (0x0004C100)
[Entrypoint Section Entropy] : 6.47 (section #0) ".text   " | Size : 0xD2A66
(862822) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 6 (0x6) | ImageSize 0x121000 (1183744) byte(s)
[Export] 100% of function(s) (130 of 130) are in file | 0 are forwarded | 130
code | 0 data | 0 uninit data | 0 unknown | 
[VersionInfo] Company Name : Mindscape. Inc.
[VersionInfo] Product Name : LegoOmni Library
[VersionInfo] Product Version : 1. 1. 0. 0
[VersionInfo] File Description : LegoOmni Library
[VersionInfo] File Version : 1. 1. 0. 0
[VersionInfo] Original FileName : LegoOmni Library
[VersionInfo] Internal Name : LegoOmni Library
[VersionInfo] Legal Copyrights : Copyright © 1997
[CompilerDetect] -> Visual C++ 4.2
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.563 Second(s) [000000233h (563) tick(s)] [244 of 573 scan(s)
done]

Scanning -> C:\Program Files\LEGO Island\LEGOIsle.exe
File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 95744 (017600h)
Byte(s)
Compilation TimeStamp : 0x341455A1 -> Mon 08th Sep 1997 19:44:33 (GMT)
[TimeStamp] 0x341455A1 -> Mon 08th Sep 1997 19:44:33 (GMT) | PE Header | - |
Offset: 0x00000088 | VA: 0x00400088 | -
[File Heuristics] -> Flag #1 : 00000000000001001100000000000000 (0x0004C000)
[Entrypoint Section Entropy] : 5.99 (section #0) ".text   " | Size : 0x427E
(17022) byte(s)
[DllCharacteristics] -> Flag : (0x0000) -> NONE
[SectionCount] 6 (0x6) | ImageSize 0x1A000 (106496) byte(s)
[VersionInfo] Company Name : Mindscape. Inc.
[VersionInfo] Product Name : LEGO Island
[VersionInfo] Product Version : 1. 1. 0. 0
[VersionInfo] File Description : LEGOIsland & Configuration application
[VersionInfo] File Version : 1. 1. 0. 0
[VersionInfo] Original FileName : CONFIG.EXE
[VersionInfo] Internal Name : LEGOISLE.EXE
[VersionInfo] Legal Copyrights : Copyright © 1997
[CompilerDetect] -> Visual C++ 4.2
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.314 Second(s) [00000013Ah (314) tick(s)] [499 of 573 scan(s)
done]
--- snip ---

$ wine --version
wine-1.7.53

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.


More information about the wine-bugs mailing list