[Bug 19569] theHunter (wild animals hunting game) silently exits (game engine expects contiguous mipchain allocation)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Jun 22 14:00:19 CDT 2014


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                URL|http://www.thehunter.com/pu |https://static.thehunter.co
                   |b/client.php                |m/static/download/launcher/
                   |                            |theHunterLauncherSetup.exe
                 CC|                            |focht at gmx.net
         Resolution|---                         |DUPLICATE
            Summary|Game "The Hunter" not       |theHunter (wild animals
                   |loading                     |hunting game) silently
                   |                            |exits (game engine expects
                   |                            |contiguous mipchain
                   |                            |allocation)

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

confirming.

The launcher updates itself after download and then proceeds to download the
full game (1.7 GB).

The game executable gets some parameters from the launcher which are
dynamic/time-limited (online play).

You need to pre-run the launcher with '+process' debug channel to get valid
parameter set:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/theHunter/launcher

$ WINEDEBUG=+process wine ./launcher.exe
...
<steal parameters>
--- snip ---

Armed with that info you can run the game standalone:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/theHunter/game

$ wine ./thehunter.exe
/connect:hunt://gameserver.thehunter.com/<guid>/lang/en_US/access_token/<guid>//refresh_token/<guid>/
/param:41 
--- snip ---

The game doesn't like +relay but I managed to extract the necessary info with a
few other debug channels:

--- snip ---
$
WINEDEBUG=+tid,+seh,+loaddll,+process,+debugstr,+msvcrt,+d3d,+d3d9,+d3d_surface
bash game_start_wrapper.sh >>log2.txt 2>&1
...
0023:trace:d3d9:d3d9_device_TestCooperativeLevel iface 0x1493a8.
0023:trace:msvcrt:pf_printf_a Format is: "%.2f MB free memory (Physical)\n%.2f
MB peek memory usage\n%.2f allocated memory\n%.2f MB free memory"
0023:trace:msvcrt:MSVCRT_operator_new (112) returning 0x14dfe960
0023:trace:msvcrt:MSVCRT_memcpy_s (0x14dfe960 111 0x33f680 0)
0023:trace:msvcrt:MSVCRT_memcpy_s (0x14dfe960 111 0x33f698 106)
0023:trace:msvcrt:MSVCRT_operator_delete (0x14dfe960)
0023:trace:msvcrt:pf_printf_a Format is: "diffuseatlas_%i_DIF.dds"
0023:trace:d3d9:d3d9_texture_2d_GetLevelDesc iface 0x7156a2f8, level 0, desc
0x33f6b8.
0023:trace:d3d9:d3d9_texture_2d_LockRect iface 0x7156a2f8, level 0, locked_rect
0x33f6b0, rect (nil), flags 0.
0023:trace:d3d9:d3d9_surface_LockRect iface 0x7156a5c8, locked_rect 0x33f6b0,
rect (null), flags 0.
0023:trace:d3d_surface:wined3d_surface_map surface 0x7156a4a8, map_desc
0x33f5f4, rect (null), flags 0.
0023:trace:d3d_surface:surface_prepare_system_memory surface 0x7156a4a8.
0023:trace:d3d_surface:surface_load_location surface 0x7156a4a8, location
WINED3D_LOCATION_SYSMEM.
0023:trace:d3d_surface:surface_load_location Location already up to date.
0023:fixme:d3d:wined3d_debug_location Unrecognized location flag(s) 0xfffffc00.
0023:trace:d3d_surface:surface_invalidate_location surface 0x7156a4a8, location
WINED3D_LOCATION_DISCARDED | WINED3D_LOCATION_USER_MEMORY |
WINED3D_LOCATION_DIB | WINED3D_LOCATION_BUFFER | WINED3D_LOCATION_TEXTURE_RGB |
WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_DRAWABLE |.
0023:trace:d3d_surface:wined3d_surface_get_pitch surface 0x7156a4a8.
0023:trace:d3d_surface:wined3d_surface_get_pitch Returning 8192.
0023:trace:d3d_surface:wined3d_surface_map Locked rect (0,0)-(4096,2048).
0023:trace:d3d_surface:wined3d_surface_map Returning memory 0x1b094030, pitch
8192.
0023:trace:seh:raise_exception code=c0000005 flags=0 addr=0xf75703e7
ip=f75703e7 tid=0023
0023:trace:seh:raise_exception  info[0]=00000001
0023:trace:seh:raise_exception  info[1]=1b495000
0023:trace:seh:raise_exception  eax=039a68a0 ebx=f75df000 ecx=001544c8
edx=1b494fd0 esi=038a5800 edi=0000000d
0023:trace:seh:raise_exception  ebp=0033f6e4 esp=0033f6c8 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00010202
0023:trace:seh:call_stack_handlers calling handler at 0x91b1d1 code=c0000005
flags=0
0023:trace:seh:_except_handler4_common exception c0000005 flags=0 at 0xf75703e7
handler=0x91b1d1 0x33f3a4 0x33f22c cookie=96c93ac9 scope table=0xd715e0
cookies=832/0,-188/0
0023:trace:seh:_except_handler4_common level 0 prev -2 filter 0x4026f8 
...
0023:trace:process:create_process_impl app (null) cmdline L"C:\\Program
Files\\theHunter\\game\\FtpDump.exe C:\\Program
Files\\theHunter\\game\\hunter_hunter_v20140622_t203404_1_34_35.dmp#Build_version_1633310" 
--- snip ---

The crash is caught by builtin crash handler which sends the minidump "home".

The cause is bug 34480 (the entire mipchain need to be allocated contiguously).

Applying the workaround for bug 34480 lets the game successfully run.

Tidbit: Almost everything is rendered properly, except some shadow-like things
on the ground (looks like a camouflage net that moves with the player).

$ sha1sum theHunterLauncherSetup.exe 
187c8ba4f26ec2f54501ba48baaa49d64a92ab7f  theHunterLauncherSetup.exe

$ du -sh theHunterLauncherSetup.exe 
20M    theHunterLauncherSetup.exe

$ wine --version
wine-1.7.20-103-g9e4d942

Regards

*** This bug has been marked as a duplicate of bug 34480 ***

-- 
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