isledecomp/LEGOIslandRebuilder

(WINE) LEGO Island Rebuilder just closes when trying to change an option

Closed this issue · 3 comments

Unhandled exception: unimplemented function MFC42.DLL.6880 called in 32-bit code (0x7bc2f970).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:7bc2f970 ESP:0053f6c4 EBP:0053f728 EFLAGS:00000206( - -- I - -P- )
EAX:00001ae0 EBX:0053f6d0 ECX:0041431f EDX:00419082
ESI:007f0178 EDI:00000000
Stack dump:
0x0053f6c4: 00000000 006920dc 00000000 80000100
0x0053f6d4: 00000001 00000000 7bc2f970 00000002
0x0053f6e4: 00419082 00001ae0 6ed987ee 00010078
0x0053f6f4: 00000003 0053f760 00000000 007f0178
0x0053f704: 00410922 006921ac 007f01b8 0053f734
0x0053f714: 004107d9 00417860 007f0178 0053f734
Backtrace:
=>0 0x7bc2f970 A_SHAFinal+0xff60() in ntdll (0x0053f728)
1 0x001200c3 (0x0053f770)
2 0x5f401c4a 1109+0x3e9() in mfc42 (0x0053f7f0)
3 0x5f401959 1109+0xf8() in mfc42 (0x0053f814)
4 0x5f4018d3 1109+0x72() in mfc42 (0x0053f880)
5 0x5f40185d 1168+0x7da() in mfc42 (0x0053f89c)
6 0x5f401807 1168+0x784() in mfc42 (0x0053f8c8)
7 0x6eda008c AdjustWindowRect+0x3283c() in user32 (0x0053f8f8)
8 0x6eda0853 AdjustWindowRect+0x33003() in user32 (0x0053f958)
9 0x6eda2ed6 AdjustWindowRect+0x35686() in user32 (0x0053f9a8)
10 0x6ed5e47a AppendMenuA+0x5f5a() in user32 (0x0053fa18)
11 0x6ed63ea8 AppendMenuA+0xb988() in user32 (0x0053fa98)
12 0x6ed64159 AppendMenuA+0xbc39() in user32 (0x0053fad4)
13 0x0040a740 in rebuilder (+0xa740) (0x0053faf0)
14 0x00407962 in rebuilder (+0x7962) (0x0053fb4c)
15 0x5f41cf84 EntryPoint+0x279a() in mfc42 (0x0053fbd0)
16 0x5f401959 1109+0xf8() in mfc42 (0x0053fbf4)
17 0x5f4018d3 1109+0x72() in mfc42 (0x0053fc60)
18 0x5f40185d 1168+0x7da() in mfc42 (0x0053fc7c)
19 0x5f401807 1168+0x784() in mfc42 (0x0053fca8)
20 0x6eda008c AdjustWindowRect+0x3283c() in user32 (0x0053fcd8)
21 0x6eda0853 AdjustWindowRect+0x33003() in user32 (0x0053fd38)
22 0x6eda2ed6 AdjustWindowRect+0x35686() in user32 (0x0053fd88)
23 0x6ed67851 AppendMenuA+0xf331() in user32 (0x0053fe38)
24 0x5f401414 1168+0x391() in mfc42 (0x0041c068)
25 0x00000001 (0x004174d8)
26 0x0040e2d0 in rebuilder (+0xe2d0) (0x00415be8)
27 0x25ff0041 (0x642425ff)
0x7bc2f970 ntdll+0x2f970: subl $4,%esp
Modules:
Module Address Debug info Name (31 modules)
PE 00400000-00439000 Export rebuilder
PE 00a70000-013cf000 Deferred shell32
PE 10000000-100e2000 Deferred ddraw
PE 5f400000-5f4fd000 Export mfc42
PE 61740000-61783000 Deferred advapi32
PE 62fc0000-6304d000 Deferred rpcrt4
PE 63480000-6348c000 Deferred version
PE 63bc0000-63bda000 Deferred shcore
PE 64a40000-64a94000 Deferred shlwapi
PE 64ec0000-64fee000 Deferred oleaut32
PE 663c0000-66474000 Deferred winspool
PE 66b00000-66b3e000 Deferred win32u
PE 682c0000-682eb000 Deferred winevulkan
PE 68500000-6855b000 Deferred combase
PE 68700000-68730000 Deferred uxtheme
PE 68e00000-68e11000 Deferred aclui
PE 68fc0000-690a4000 Deferred msvcp60
PE 6a280000-6a2c6000 Deferred msvcrt
PE 6a400000-6a534000 Deferred ole32
PE 6bc00000-6bc2c000 Deferred sechost
PE 6bcc0000-6bd41000 Deferred setupapi
PE 6c9c0000-6ca46000 Deferred gdi32
PE 6cc40000-6cd9c000 Deferred comctl32
PE 6ed00000-6ef40000 Dwarf user32
PE 70b40000-70c18000 Deferred ucrtbase
PE 70d00000-70e08000 Deferred comdlg32
PE 71200000-7121c000 Deferred imm32
PE 7b000000-7b0ec000 Deferred kernelbase
PE 7b600000-7b81e000 Deferred kernel32
PE 7bc00000-7bcab000 Dwarf ntdll
PE 7e0f0000-7e0f4000 Deferred winex11
Threads:
process tid prio (all id:s are in hex)
00000020 start.exe
["C:\windows\system32\start.exe" /exec "/home/dennis/Spiele/LEGO/drive_c/Program Files/LEGO Island/Rebuilder.exe"]
00000024 0
00000038 services.exe
["C:\windows\system32\services.exe"]
0000003c 0
00000040 0
0000004c 0
00000050 0
00000064 0
00000070 0
00000084 0
00000090 0
000000a8 0
000000bc 0
000000e4 0
000000e8 0
00000044 svchost.exe
[C:\windows\system32\svchost.exe -k LocalServiceNetworkRestricted]
00000048 0
00000054 0
00000058 0
0000005c winedevice.exe
[C:\windows\system32\winedevice.exe]
00000060 0
00000068 0
0000006c 0
00000074 0
00000078 0
000000b8 0
0000007c winedevice.exe
[C:\windows\system32\winedevice.exe]
00000080 0
00000088 0
0000008c 0
00000094 0
00000098 0
0000009c 0
000000a0 plugplay.exe
[C:\windows\system32\plugplay.exe]
000000a4 0
000000ac 0
000000b0 0
000000b4 0
000000c8 explorer.exe
[C:\windows\system32\explorer.exe /desktop]
000000cc 0
000000d0 0
000000d4 0
000000dc rpcss.exe
[C:\windows\system32\rpcss.exe]
000000e0 0
000000ec 0
000000f0 0
000000f4 0
000000f8 0
000000fc 0
00000100 0
00000104 conhost.exe
["C:\windows\system32\conhost.exe" --unix --width 0 --height 0 --server 0x34]
00000108 0
0000010c (D) C:\Program Files\LEGO Island\Rebuilder.exe
["C:\Program Files\LEGO Island\Rebuilder.exe" ]
00000110 0 <==
00000118 0
0000014c 0
System information:
Wine build: wine-7.2-1-g2b48f296545 (Staging)
Platform: i386
Version: Windows Server 2003
Host system: Linux
Host version: 5.17.1-arch1-1
Monitored process exited.
Initial process has exited (return code: 256)
Exit with return code 256
2022-04-08 01:58:10,489: Game still running (state: running)
2022-04-08 01:58:10,489: Stopping LEGO Island (wine)

mfc42 is installed.

EDIT: The "Final .NET Release" version works just fine. The Lutris script propably downloaded the newest version (Continuous build) which doesn't work.

Check the comment here for a fix with the continuous build. Otherwise, you'll have to wait for the Lutris admins to approve the script.

It looks like LEGO Island's own version of MFC, which pre-dates the version of MFC that Rebuilder currently targets, is being loaded. For now, you'll either have to run Rebuilder in a separate directory from the game installation or delete MFC42.dll from LEGO Island's install directory.

We now statically link MFC which means it no longer needs or tries to use LEGO Island's older version of MFC42.DLL. This issue is now solved.