With the sound fix, the demo version works great.
The real version (which I just bought) doesn't work at all (blank screen) as shipped or with patches from the distributor.
Attached is a trace of dplay and virtual, and below is the code snippit which I believe to be causing the problem.
FreeBSD 4.8-RELEASE using 20030408 Wine sources ('official port')
Any suggestions?
Interesting lines from trace: trace:dplay:DPLAYX_ConstructData Through wait trace:dplay:DPLAYX_ConstructData File mapped 0x5c created trace:virtual:NtMapViewOfSection handle=0x5c addr=0x50000000 off=000000000 size=0 access=4 err:dplay:DPLAYX_ConstructData : unable to map static data into process memory space (487) trace:virtual:NtAllocateVirtualMemory 0x0 00110000 2000 00000040
The source of the error (487) seems to be line 466 in ntdll/virtual.c:
static NTSTATUS anon_mmap_aligned( void **addr, unsigned int size, int prot, int flags ) { void *ptr, *base = *addr; unsigned int view_size = size + (base ? 0 : granularity_mask + 1);
if ((ptr = wine_anon_mmap( base, view_size, prot, flags )) == (void *)-1) { if (errno == ENOMEM) return STATUS_NO_MEMORY; return STATUS_INVALID_PARAMETER; }
if (!base) { /* Release the extra memory while keeping the range * starting on the granularity boundary. */ if ((unsigned int)ptr & granularity_mask) { unsigned int extra = granularity_mask + 1 - ((unsigned int)ptr & granularity_mask); munmap( ptr, extra ); ptr = (char *)ptr + extra; view_size -= extra; } if (view_size > size) munmap( (char *)ptr + size, view_size - size ); } else if (ptr != base) { /* We couldn't get the address we wanted */ munmap( ptr, view_size ); return STATUS_CONFLICTING_ADDRESSES; /* !! HERE !! */ }