Opened 10 years ago

Closed 8 years ago

#4597 closed defect (fixed)

DW2: Doesn't start in WinCE port

Reported by: SF/boyc Owned by: CeRiAl
Priority: normal Component: Engine: Tinsel
Keywords: Cc:
Game: Discworld II

Description

Os: Windows mobile 6.1
Device: Sony Ericsson Xperia X1
Scummvm versions tried: Official 1.0.0rc1 and the daily build from september 08, 2009.

The game is found properly, it even starts, but after ~2 seconds of a black screen exits completely back to windows.
I'm copypasting the two debug outputs below, looks like an out of memory issue - however there's more than 130 megabytes of free memory at the time in the device which should be enough to my knowledge.

SCUMMVM_STDERR.TXT:

SDL: Version $Rev: 44 $ bootstrapping GAPI device
SDL: Device is portrait, OS version 5.2 build 19608
SDL: orientation 0
SDL: GAPI_RealizePalette NOT IMPLEMENTED
SDL: Starting video access detection --->
SDL: System 480x800
SDL: Checking for GAPI
SDL: GAPI OK, 240x320, H=2 V=480, 16bpp, landscape false
SDL: Trying Ozone
SDL: Running on Ozone
SDL: Ozone 480x800
SDL: <----- Detection finished. Running on Ozone driver at 480x800 (real 480, 800), using ARM accelerated blitter
SDL: Opening mode 640x480
SDL: Requested inverse landscape mode
SDL: Setting inverse landscape mode
SDL: GAPI_WinPAINT NOT IMPLEMENTED
SDL: Opening mode 640x480
SDL: Requested inverse landscape mode
SDL: Setting inverse landscape mode
SDL: Opening mode 640x480
SDL: Requested inverse landscape mode
SDL: Setting inverse landscape mode
Assertion failed mem (../../../engines/tinsel/heapmem.cpp, 85)!

SCUMMVM_STDOUT.TXT

Sound opened OK, mixing at 11025 Hz
ONCRPC.dll attached
Remote APIs client DLL attached
Remote APIs server DLL attached
ONCRPC task running.
User picked target 'dw2-gb' (gameid 'tinsel')...
Looking for a plugin supporting this gameid... Tinsel Engine
Starting 'Tinsel engine game'
Skipping sound mixer re-init: samplerate is good

Ticket imported from: #2854687. Ticket imported from: bugs/4597.

Change History (12)

comment:1 by dreammaster, 10 years ago

Summary: Doesn't start in WinCE portDW2: Doesn't start in WinCE port

comment:2 by dreammaster, 10 years ago

I'd concur that the assert means memory allocation failed. A conversation in the IRC channel some days ago was, if I remember correctly, exactly about this issue - apparently the Windows devices wouldn't allow the allocation of 10Mb in one chunk, even if your device does have enough memory to handle it.

One thing that could be done is to reduce the amount of memory preallocated down in megabyte decrements until you find an amount that will work, and then try playing the game all the way through to make sure the reduced memory pool size is still adequate. The '10' megabytes we currently use is slightly arbitrary, so can probably be reduced down somewhat.

comment:3 by SF/boyc, 10 years ago

I googled around a bit - It seems WM6 still has a 32 mb limit for application memory space, which could easily be fragmented enough that there's no 10 mb chunk available in one piece. There was mention of a workaround using virtualalloc, might be worth looking into.

An msdn thread on the topic:
http://social.msdn.microsoft.com/forums/en-US/vssmartdevicesnative/thread/2a49a425-ac3b-4cdc-8fc1-f15bcf825892/

comment:4 by SF/boyc, 10 years ago

This might also help solve these problems, an interesting read:
http://blogs.msdn.com/robtiffany/archive/2009/04/09/memmaker-for-the-net-compact-framework.aspx

comment:5 by digitall, 8 years ago

Owner: set to CeRiAl

comment:6 by digitall, 8 years ago

boyc: A number of fixes have been applied for WinCE backend and Tinsel.
Could you confirm if this is still occuring for you with v1.3.0?
If so, could you also check with a daily development build from:
http://buildbot.scummvm.org/builds.html

comment:7 by SF/boyc, 8 years ago

tdhs: I no longer have my WM device, so I won't be able to verify the fixes, sorry.

comment:8 by SF/lewellyn, 8 years ago

I can confirm that this behavior still exists on Windows Mobile for the 1.3.1 release. I can also confirm that (at least) the demo is fully playable on CE 6.0, so this is likely a WM-specific issue rather than a generic WinCE issue.

comment:9 by CeRiAl, 8 years ago

Could you please test if the problem still occurs in the latest stable release (1.4.0) from http://prdownloads.sourceforge.net/scummvm/scummvm-1.4.0-wince.zip?download ?
This problem should be fixed as I've added a workaround for the 32MB per process memory limit lately (it is already included in 1.4.0). Everything should work correct now even with the "big" executable (scummvm.exe). Thanks!

comment:10 by CeRiAl, 8 years ago

Since this problem seems to be fixed now, and we have no reports that the bug is still present, I will set the state of this bug to "pending" and the bug will be closed in 14 days. Commenting will still be possible.

comment:11 by CeRiAl, 8 years ago

Status: newpending

comment:12 by CeRiAl, 8 years ago

Resolution: fixed
Status: pendingclosed
Note: See TracTickets for help on using tickets.