I've been trying to run TPW under Wine for a long time.
So far here's what I've managed to do under Wine 1.5.23 running on ArchLinux x86_64.
Starting with a vanilla Wine installation:
1/ Installing the game from disk.
2/ Partching the game to v2.0 using the official patch (TPPatchTwoEUROAMER20000324a.exe md5: b76683ac0fb047fddbab63debe919988)
3/ Replacing TP.EXE by a NoCD crack (md5: e4c2a8979d1a5d7e705976c1d4d511be)
N.B.: It is impossible to run the game without cracking it.
4/ Before running TP.EXE, I do by hand what the file safemode.bat is doing:
Code: Select all
mkdir save
cp safemode.tcf save/config.tcf
5/ VERY IMPORTANT: Eject the CD before launching TP.EXE, otherwise the intro videos will play but the menu will never display.
Then at launch, The Bullfrog logo shows, the game skip the intro videos as it can't find them and goes in the menu.
For now everything is normal.
I enter or choose my name, I select the first park and then… the game crashes when loading the park.
Here is the output after crashing ([...] means the line before and after has been repeated over and over):
Code: Select all
fixme:win:EnumDisplayDevicesW ((null),0,0x32f228,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x32f4f8,0x00000000), stub!
fixme:ddraw:ddraw7_Initialize Ignoring guid {00000000-0000-0000-0000-000000000000}.
fixme:x11drv:X11DRV_desktop_SetCurrentMode Cannot change screen BPP from 32 to 16
err:ole:CoGetClassObject class {92fa2c24-253c-11d2-90fb-006008a1f441} not registered
err:ole:CoGetClassObject no class object {92fa2c24-253c-11d2-90fb-006008a1f441} could be created for context 0x1
err:ole:CoGetClassObject class {4ff53b81-1ce0-11d3-aab8-00a0c95949d5} not registered
err:ole:CoGetClassObject no class object {4ff53b81-1ce0-11d3-aab8-00a0c95949d5} could be created for context 0x1
fixme:win:EnumDisplayDevicesW ((null),0,0x32f5a8,0x00000000), stub!
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
[...]
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
fixme:ras:RasEnumEntriesA ((nil),(null),0x32f9f8,0x32f8f0,0x32f8e8),stub!
fixme:ras:RasEnumEntriesA ((nil),(null),0x3291220,0x32f8f0,0x32f8e8),stub!
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
[...]
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
fixme:d3d_surface:wined3d_surface_flip Ignoring flags 0x1.
fixme:imm:ImmReleaseContext (0x20022, 0x6550e20): stub
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
[...]
fixme:d3d_surface:surface_cpu_blt Unsupported flags: 0x1.
wine: Unhandled page fault on read access to 0x0000002d at address 0x5ebba8 (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x0000002d in 32-bit code (0x005ebba8).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:005ebba8 ESP:0032a788 EBP:00000000 EFLAGS:00010202( R- -- I - - - )
EAX:00000000 EBX:0795f02c ECX:0000002c EDX:00000000
ESI:0032b278 EDI:0794e5b3
Stack dump:
0x0032a788: 0032b2a4 0032b278 0032af48 0032b2c4
0x0032a798: 3f21da2c 3e1b268a 069508c8 00000000
0x0032a7a8: 0032a838 0067adf5 00000003 3ebc7949
0x0032a7b8: 3ec32b9a 3f5919ae 0790e593 0000007b
0x0032a7c8: 3f599999 3f1fd5b7 3f25838a 3ee0722f
0x0032a7d8: 0032b2a4 0032b278 0032b2c4 00000010
Backtrace:
=>0 0x005ebba8 in tp (+0x1ebba8) (0x00000000)
0x005ebba8: movb 0x1(%ecx,%ebp,1),%dl
Modules:
Module Address Debug info Name (103 modules)
PE 330000- 34b000 Deferred weachatr
PE 350000- 364000 Deferred weaauthr
PE 370000- 383000 Deferred weanewsr
PE 390000- 3ab000 Deferred weacityr
PE 3b0000- 3c6000 Deferred weauploadr
PE 3d0000- 3e3000 Deferred wearasr
PE 400000- fc6000 Export tp
PE fd0000- fe2000 Deferred weamailr
PE 10000000-10015000 Deferred weavoter
PE 18000000-1804d000 Deferred qmixer
ELF 7a19f000-7b800000 Deferred r600_dri.so
ELF 7b800000-7ba45000 Deferred kernel32<elf>
\-PE 7b810000-7ba45000 \ kernel32
ELF 7bc00000-7bcd9000 Deferred ntdll<elf>
\-PE 7bc10000-7bcd9000 \ ntdll
ELF 7bf00000-7bf04000 Deferred <wine-loader>
ELF 7c8c5000-7c9ba000 Deferred libasound.so.2
ELF 7c9df000-7ca10000 Deferred winealsa<elf>
\-PE 7c9f0000-7ca10000 \ winealsa
ELF 7ca10000-7cb4f000 Deferred oleaut32<elf>
\-PE 7ca30000-7cb4f000 \ oleaut32
ELF 7cb4f000-7cb71000 Deferred mmdevapi<elf>
\-PE 7cb50000-7cb71000 \ mmdevapi
ELF 7cce5000-7cd01000 Deferred rasapi32<elf>
\-PE 7ccf0000-7cd01000 \ rasapi32
ELF 7da6e000-7da89000 Deferred libgcc_s.so.1
ELF 7db72000-7db7e000 Deferred libdrm_radeon.so.1
ELF 7db7e000-7db97000 Deferred libxcb-glx.so.0
ELF 7db97000-7db9b000 Deferred libxdamage.so.1
ELF 7db9b000-7dbb2000 Deferred libglapi.so.0
ELF 7dd38000-7dd46000 Deferred libdrm.so.2
ELF 7dd46000-7dda4000 Deferred libgl.so.1
ELF 7dda9000-7ddb2000 Deferred librt.so.1
ELF 7dde0000-7de17000 Deferred uxtheme<elf>
\-PE 7ddf0000-7de17000 \ uxtheme
ELF 7de17000-7de1d000 Deferred libxfixes.so.3
ELF 7de1d000-7de28000 Deferred libxcursor.so.1
ELF 7de28000-7de38000 Deferred libxi.so.6
ELF 7de38000-7de43000 Deferred libxrandr.so.2
ELF 7de43000-7de4d000 Deferred libxrender.so.1
ELF 7de4d000-7de53000 Deferred libxxf86vm.so.1
ELF 7de53000-7de75000 Deferred libxcb.so.1
ELF 7de75000-7de7b000 Deferred libuuid.so.1
ELF 7de7b000-7de95000 Deferred libice.so.6
ELF 7de95000-7dfcc000 Deferred libx11.so.6
ELF 7dfcc000-7dfde000 Deferred libxext.so.6
ELF 7dfde000-7dfe7000 Deferred libsm.so.6
ELF 7e00c000-7e0a2000 Deferred winex11<elf>
\-PE 7e020000-7e0a2000 \ winex11
ELF 7e13e000-7e167000 Deferred libexpat.so.1
ELF 7e167000-7e1a0000 Deferred libfontconfig.so.1
ELF 7e1a0000-7e1b0000 Deferred libbz2.so.1.0
ELF 7e1b0000-7e1c7000 Deferred libz.so.1
ELF 7e1c7000-7e264000 Deferred libfreetype.so.6
ELF 7e268000-7e26f000 Deferred libxdmcp.so.6
ELF 7e289000-7e2d4000 Deferred dsound<elf>
\-PE 7e290000-7e2d4000 \ dsound
ELF 7e2d4000-7e2f9000 Deferred imm32<elf>
\-PE 7e2e0000-7e2f9000 \ imm32
ELF 7e2f9000-7e404000 Deferred comctl32<elf>
\-PE 7e300000-7e404000 \ comctl32
ELF 7e404000-7e44f000 Deferred dinput<elf>
\-PE 7e410000-7e44f000 \ dinput
ELF 7e44f000-7e47a000 Deferred msacm32<elf>
\-PE 7e450000-7e47a000 \ msacm32
ELF 7e47a000-7e4ff000 Deferred rpcrt4<elf>
\-PE 7e490000-7e4ff000 \ rpcrt4
ELF 7e4ff000-7e641000 Deferred ole32<elf>
\-PE 7e520000-7e641000 \ ole32
ELF 7e641000-7e6f8000 Deferred winmm<elf>
\-PE 7e650000-7e6f8000 \ winmm
ELF 7e6f8000-7e801000 Deferred opengl32<elf>
\-PE 7e710000-7e801000 \ opengl32
ELF 7e801000-7e943000 Deferred wined3d<elf>
\-PE 7e810000-7e943000 \ wined3d
ELF 7e943000-7e9ba000 Deferred ddraw<elf>
\-PE 7e950000-7e9ba000 \ ddraw
ELF 7e9ba000-7e9e0000 Deferred iphlpapi<elf>
\-PE 7e9c0000-7e9e0000 \ iphlpapi
ELF 7e9e0000-7ea16000 Deferred ws2_32<elf>
\-PE 7e9f0000-7ea16000 \ ws2_32
ELF 7ea16000-7ea32000 Deferred wsock32<elf>
\-PE 7ea20000-7ea32000 \ wsock32
ELF 7ea32000-7eb4f000 Deferred gdi32<elf>
\-PE 7ea40000-7eb4f000 \ gdi32
ELF 7eb4f000-7ecb0000 Deferred user32<elf>
\-PE 7eb60000-7ecb0000 \ user32
ELF 7ecb0000-7ed21000 Deferred advapi32<elf>
\-PE 7ecc0000-7ed21000 \ advapi32
ELF 7ed21000-7ed65000 Deferred usp10<elf>
\-PE 7ed30000-7ed65000 \ usp10
ELF 7ef8b000-7ef98000 Deferred libnss_files.so.2
ELF 7ef98000-7efdb000 Deferred libm.so.6
ELF 7efe6000-7f000000 Deferred version<elf>
\-PE 7eff0000-7f000000 \ version
ELF f73d4000-f73d9000 Deferred libdl.so.2
ELF f73d9000-f73dc000 Deferred libx11-xcb.so.1
ELF f73dc000-f73e0000 Deferred libxau.so.6
ELF f73fe000-f75af000 Deferred libc.so.6
ELF f75af000-f75ca000 Deferred libpthread.so.0
ELF f75ca000-f770d000 Dwarf libwine.so.1
ELF f770e000-f7730000 Deferred ld-linux.so.2
ELF f7730000-f7731000 Deferred [vdso].so
Threads:
process tid prio (all id:s are in hex)
00000008 (D) C:\Program Files (x86)\Bullfrog\Theme Park World\TP.EXE
0000002f 0
0000002e 0
0000002d 0
0000002b 0
0000002a -1
00000029 15
00000028 15
00000027 0
00000025 0
00000024 0
00000023 0
00000009 0 <==
0000000e services.exe
0000001f 0
0000001e 0
00000018 0
00000017 0
00000015 0
00000010 0
0000000f 0
00000012 winedevice.exe
0000001c 0
00000019 0
00000014 0
00000013 0
0000001a plugplay.exe
00000020 0
0000001d 0
0000001b 0
00000021 explorer.exe
00000022 0
Wine is a wonderful piece of software that helps me sticking to GNU/Linux every day.