I found some time over the holidays to run several game demos under Wine to
see if there was more debugging fodder to be found. All the games come from
Shrapnel Games (www.shrapnelgames.com) - I went through their demos looking
for the magic words "DirectX" and "OpenGL". They're not technically
challenging games, but they're free and available for anyone to download.
I'm running Mandrake 9.2 and a fresh compiled Wine 20031212.
Mike
mike at tashcorp dot net
Dominions II for Windows
--------------------------------
File: http://www.shrapnelgames.com/downloads/dominions2demo_install.exe
Install: wine dominions2demo_install.exe
Run: wine dom2demo.exe (from c:\Program Files\dominions2demo\)
- Game installed but locked up before completing. I do not know if this was
because I was doing other things at the time or because of Wine. When I ran a
second install and didn't stress the computer otherwise, it appeared to pass
without issue.
- Graphics did not go to full-screen correctly and had refresh issues. Mouse
did not work correctly.
Error Output on Install
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
Error Output on Run
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel
(0x4039e108)->(00000000,00000008)
fixme:msvcrt:MSVCRT_signal (2 0x1001ba80):stub
fixme:msvcrt:MSVCRT_signal (2 0xffffffff):stub
fixme:msvcrt:MSVCRT_signal (15 0x1001ba80):stub
fixme:msvcrt:MSVCRT_signal (15 0xffffffff):stub
fixme:msvcrt:MSVCRT_signal (11 0x100185a0):stub
fixme:msvcrt:MSVCRT_signal (11 0xffffffff):stub
fixme:msvcrt:MSVCRT_signal (8 0x100185a0):stub
fixme:msvcrt:MSVCRT_signal (8 0xffffffff):stub
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 800x600)
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY not
fully supported
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=4096 <
primary_done=6696)
... (repeat forever slowly)
fixme:dsound:DSOUND_MixOne problem with underrun detection (mixlen=4096 <
primary_done=6696)
Austerlitz for Windows
--------------------
File: http://www.breakawaygames.com/downloads/austerlitz_demo.exe
Install: wine austerlitz_demo.exe
Run: wine AusterlitzDemo.exe (from unzipped directory)
- Installer was a self-extracting zip file and unzipped without incident
- On run, crash. Had to reboot computer to recover.
Error Output On Install
<none>
Error Output On Run
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel
(0x403fe4d0)->(00010021,00000011)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 800x600)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 800x600)
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORITY not
fully supported
err:mmio:MMIO_ParseExtA + but no . in szFileName: "sounds\\french fanfare +
perc.wav"
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW Animated icons not
correctly implemented
! 0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon entry found!
0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon size ok.
offset=0x4777004c
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW Animated icons not
correctly implemented
! 0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon entry found!
0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon size ok.
offset=0x47770064
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW Animated icons not
correctly implemented
! 0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon entry found!
0x47770000
fixme:cursor:CURSORICON_SimulateLoadingFromResourceW icon size ok.
offset=0x477700a4
wine: Unhandled exception (thread 000e), starting debugger...
WineDbg starting on pid 8
Loaded debug information from ELF 'wine' ((nil))
No debug information in 32bit DLL 'E:\austerlitz\AusterlitzDemo.exe'
(0x400000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\NTDLL.DLL' (0x40200000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\KERNEL32.DLL'
(0x40490000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\ADVAPI32.DLL'
(0x408d0000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\GDI32.DLL' (0x40a40000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\USER32.DLL' (0x40910000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\RPCRT4.DLL' (0x40ac0000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\OLE32.DLL' (0x40860000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\DDRAW.DLL' (0x406e0000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\WINMM.DLL' (0x40b30000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\DPLAYX.DLL' (0x40b00000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\COMCTL32.DLL' (0x40bc00
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\LZ32.DLL' (0x40c70000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\VERSION.DLL' (0x40c5000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\MSVFW32.DLL' (0x40ba000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\X11DRV.DLL' (0x40d40000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\WINEOSS.DRV' (0x4577000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\MSACM32.DLL' (0x457b000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\MSACM.DRV' (0x457a0000)
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\MIDIMAP.DRV' (0x458f000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\DSOUND.DLL' (0x46b50000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\WINSPOOL.DRV' (0x46b800
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\SHLWAPI.DLL' (0x46cc000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\SHELL32.DLL' (0x46c4000
No debug information in 32bit DLL 'C:\WINDOWS\SYSTEM\COMDLG32.DLL' (0x46bb00
No debug information in 32bit DLL 'E:\AUSTERLITZ\BAGSOUND.DLL' (0x469e6000)
No debug information in 32bit DLL 'E:\AUSTERLITZ\BAGLOAD.DLL' (0x47122000)
Unhandled exception: page fault on write access to 0x47950000 in 32-bit code
In 32-bit mode.
0x00511033 (AusterlitzDemo.exe.EntryPoint+0x3ed in AusterlitzDemo.exe):
repe),%es:(%edi)
Wine-dbg>quit
Remote Assult
-------------------
File: http://www.shrapnelgames.com/downloads/rad50.exe
Install: wine rad50.exe
Run: wine ra.exe (from install directory)
- Installation appeared successful
- On run, graphics had refresh errors and the kde kicker bar was visible over
the full-screen view. Mouse worked correctly, but was screwy because of
refresh errors
Error Output On Install:
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:WinMain failed to build menu item for C:\windows\Start
Menu\Programs\Shrapnel Games\Remote Assault\ShrapnelGames Web site.lnk
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:WinMain failed to build menu item for C:\windows\Start
Menu\Programs\Shrapnel Games\Remote Assault\OneGames Web site.lnk
fixme:heap:RtlCompactHeap stub
.. (repeat several times)
Error Output On Run:
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_EXCLUSIVE not
fully supported
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel
(0x45fb95e8)->(00010021,00000011)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 640x480)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 640x480)
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_LINEPATTERN (0000000a) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_MONOENABLE (0000000b) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType D3DRENDERSTATE_ROP2
(0000000c) value : 0000000d !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_PLANEMASK (0000000d) value : ffffffff !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_LASTPIXEL (00000010) value : 00000001 !
err:ddraw:set_render_state Unhandled dwRenderStateType D3DRENDERSTATE_ZVISIBLE
(0000001e) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_EDGEANTIALIAS (00000028) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_RANGEFOGENABLE (00000030) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType D3DRENDERSTATE_EXTENTS
(0000008a) value : 00000000 !
err:ddraw:set_render_state Unhandled dwRenderStateType
D3DRENDERSTATE_VERTEXBLEND (00000097) value : 00000000 !
err:ddraw:set_render_state Unhandled texture mag 6 !
err:ddraw:set_render_state Unhandled texture min 6 !
err:ddraw:GL_IDirect3DTextureImpl_2_1T_Load Trying to load surfaces with
different mip-map counts !
err:ddraw:GL_IDirect3DTextureImpl_2_1T_Load Loading surface with different
mipmap structure !!!
fixme:bitblt:X11DRV_BitBlt potential optimization - client-side DIB copy
err:ddraw:GL_IDirect3DTextureImpl_2_1T_Load Trying to load surfaces with
different mip-map counts !
... (repeat last 4 error/fixme a lot)
err:ddraw:Main_DirectDrawSurface_Lock Invalid values in LPRECT !!!
... (repeat a lot)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS after
resizing display (now 1024x768)
fixme:winmm:MMDRV_Exit Closing while ll-driver open
The War Engine
-------------------
- Installation run without issue
- On run, graphics had refresh errors and the kde kicker bar was visible over
the full-screen view. Mouse did not appear to work correctly.
File: http://www.shrapnelgames.com/downloads/TWEDemo.exe
Install: wine TWEDemo.exe
Run: wine TheWarEngineDemo.exe (from install directory)
Error Output On Install:
fixme:font:WineEngCreateFontInstance just using first face for now
... (repeat a lot)
fixme:seh:check_resource_write Broken app is writing to the resource data,
enabling work-around
fixme:ole:CoCreateInstance no classfactory created for CLSID
{fbf23b40-e3f0-101b-8488-00aa003e56f8}, hres is 0x80040154
fixme:shell:Stream_WriteLocationInfo writing empty location info
err:menubuilder:InvokeShellLinker failed to extract icon.
... (repeat last 2 errors 4 more times)
Error Output On Run:
fixme:commdlg:GetFileName95 Flags 0x00800000 not yet implemented
err:dosfs:DRIVE_GetLabel Invalid or unreadable superblock on /dev/fd
Invalid or unreadable superblock on /dev/fd0 (A:). Maybe not FAT?
fixme:shell:ShellView_OnNotify -- 0x403990b8 WM_COMMAND ffffff98 unh
... (repeat a lot - numbers change slightly)
fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0x40396df8)->(00040
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS (now
800x600)
fixme:xrandr:X11DRV_XRandR_SetCurrentMode Need to update SYSMETRICS (now
800x600)
fixme:ddraw:DIB_DirectDrawSurface_Blt dwFlags DDBLT_WAIT and/or DDBL right
now.
fixme:dsound:IDirectSoundImpl_SetCooperativeLevel level=DSSCL_PRIORI
I know that this is off topic, but I decided to see how the winex cvs compared
to wine cvs. I done a checkout of winex from sourceforge.net and I noticed
that the directories containing the d3d8 and 9 code had been removed from
cvs. This prevented all of my games (gta3) from running under winex.
Does anyone know what happened to these directories and why they were removed?
(for wine-devel readers: this is about the port of Wine DLLs to ReactOS
and the problems we're having since a lot of the DLLs have a separate
version.rc.)
> From: Filip Navara
>
> Not really. The actual problem is that binutils supports only one
> resource file. Previously it linked correctly the version.rc
> file, now
> it links correctly the shres.rc file and the version.rc is missing. A
> workaround would be to create one file (shell32.rc) that
> would #include
> both "shres.rc" and "version.rc". Any better idea?
You're right, but since the wine dlls on your page contained no version
resources either I thought I might get away with it :)
Maybe we can convince the Wine people to #include "version.rc" from
shres.rc? Does anyone have an idea why that's not done already?
Gé van Geldorp.
Hi,
After the automatic glibc detection changes the Wine debugger stopped
loading symbols correctly, making it harder to debug programs. I only
recently noticed this due to lack of disk space and not compiling and
installing the whole tree on a cvs update.
However, I have now spent some time looking at the problem. By applying the
following patch to winedbg, I saw that the address for the ELF debugging
section was not being found properly.
Index: programs/winedbg/stabs.c
===================================================================
RCS file: /home/wine/wine/programs/winedbg/stabs.c,v
retrieving revision 1.11
diff -u -r1.11 stabs.c
--- programs/winedbg/stabs.c 15 Dec 2003 19:53:08 -0000 1.11
+++ programs/winedbg/stabs.c 1 Jan 2004 17:49:02 -0000
@@ -1625,6 +1625,7 @@
do {
if (!DEBUG_READ_MEM_VERBOSE((void*)dyn_addr, &dyn, sizeof(dyn)))
goto leave;
+ WINE_TRACE("dyn.d_tag is %d\n", dyn.d_tag);
dyn_addr += sizeof(dyn);
} while (dyn.d_tag != DT_DEBUG && dyn.d_tag != DT_NULL);
if (dyn.d_tag == DT_NULL) goto leave;
An example from loading "winedbg --debugmsg +winedbg notepad":
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1448084550
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is -997982209
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1457883477
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1455977869
...
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 0
I believe these invalid values are being caused because we are mmap'ing
"wine" and reading in the values from the .dynamic section, but the
".dynamic" section hasn't been intialized by the ELF loader. This previously
wasn't as issue since "wine" would already have been loaded. However, now
"wine" exec's "wine-kthread" or "wine-pthead" as appropriate and then exits
and so is no longer in memory. This appears to have been anticipated with
the check further up in the stabs.c file that examines the "WINELOADER"
environment variable to find the file to mmap. If this is set to
"wine-pthread", for example, then the problem goes away. Hence the attached
patch.
Perhaps the real fix should be made to programs/winedbg/stabs.c. We could
either not use the ".dynamic" section somehow or use the dlsym rather than
mmap so that we properly initialize the ".dynamic" section.
Rob
P.S. above trace with patch applied:
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 1
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 12
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 13
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 4
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 5
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 6
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 10
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 11
trace:winedbg:DEBUG_ReadExecutableDbgInfo dyn.d_tag is 21
"Mike Hearn" <mike(a)theoretic.com> wrote:
> + num = sizeof(PrinterName);
> + if (!GetDefaultPrinterW(PrinterName, &num))
> + WCHAR default_name[255];
> + DWORD default_name_size = sizeof(default_name);
> +
> + if (GetDefaultPrinterW(default_name, &default_name_size) == 0) {
You should pass the size of buffer in characters, not in bytes to
GetDefaultPrinter.
--
Dmitry.
Rein Klazes <rklazes(a)xs4all.nl> writes:
> Changelog:
> windows : painting.c
> If RedrawWindow is called with the RDW_INVALIDATE flag, if the
> UpdateRgn parameter is a NULLREGION and the Window has no update
> region yet, ignore the call.
This should be integrated with the update region calculations, we
shouldn't add such special cases outside of the main code.
--
Alexandre Julliard
julliard(a)winehq.com
A happy new year to everybody!
As a lot of wine-bugs are reworked(mostly thanks to Markus), I get a lot of
mails from wine-bugs. However it is hard to follow the threads by only
getting information about the last status update. At least the information
of the name of the originator of bug should be resent, perhaps even the last
two or three status updates.
Bye
--
Uwe Bonnes bon(a)elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
wiml(a)underhill.hhhh.org (Wim Lewis) writes:
> Use the GCC attribute((constructor)) syntax for DLL initializer hooks
> if possible, instead of the inline-asm syntax.
The dll init routine needs to be in the .init section in order to be
called first, attribute((constructor)) is not good enough. Why doesn't
it work on OpenBSD? Is the section name different?
--
Alexandre Julliard
julliard(a)winehq.com
Christian Costa wrote:
> Hi,
>
> This patch fixes a compilation issue with ALSA 0.5 (reported by Carl
> Sopchak)
> that appears when adding WaveIn support.
>
> Bye.
>
> Changelog :
> Fix compilation issue with ALSA 0.5.
>
> Christian Costa titan.costa(a)wanadoo.fr
>
>
>
BTW:
Happy new year to all!
Bye,
Christian
On Thu, Jan 01, 2004 at 08:23:20PM +0000, Mike Hearn wrote:
> ChangeLog:
> - Write out default printer name in the order used by WinME
> - Support PRINTER_ENUM_DEFAULT
> - Add FIXME for enumerating print providers
>
> I'd appreciate somebody with a CUPs and lpr setup ensuring the order
> change doesn't cause regressions. It appears correct to me, but as the
> code worked before even though it looked like it shouldn't I might be
> wrong.
Actually I don't see why we need a different name and devname we
should just use devname for both entries instead. I think it's a
hangover from some old code
Your patch however looks wrong, you're adding a default printer with
port LPR:LPT1, the spooler will try to print with the command
lpr -PLPT1 which won't work. You really want to set the port to LPT1:
Huw.