[Bug 1129] bitmaps are not drawn in "Dink Smallwood"
Wine Bugs
wine-bugs at winehq.com
Sat Jun 28 07:53:55 CDT 2003
http://bugs.winehq.com/show_bug.cgi?id=1129
------- Additional Comments From z_god at wanadoo.nl 2003-28-06 07:53 -------
Bug comments restored from Gmane.org:
There is this (freeware) game called Dink Smallwood, which I would like to play
and it almost works but not quite:
You walk around in this game in a view from above (like in the old zeldas or
ultimas), but wine does not draw the floor tiles, which is quite annoying.
The link to the game is:
http://www.rtsoft.com/dink/download.htm
There are two function calls, which I believe to have identified as the
culprits:
DIB_DirectDraw_Blt
or
DIB_DirectDraw_BltFast
The first function call complains saying that DBLT_ASYNC|DBLT_WAIT is not
supported, but as far as I understand the source code, still everything should
be rendered.
The second function is also called a lot and here I am not so sure, what
happens. Is this function completely implemented?
I think it is strange that the last argument is zero, whenever the game calls
it. I read the specification on the ms-homepage and it does not say that you
can call it with a zero parameter.
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-06
12:59 -------
You can discount the warning about async/wait as this does not apply to the way
wine deals with ddraw. The other function BltFast might be the culprit but you
did not include the exact fixme/error message. I will try to get a look at this
program if time permits. I have also CC:d Lionel who is the REAL DDraw expert.
------- Additional Comments From lionel.ulmer <at> free.fr 2002-11-10 06:07 -------
Out of curiosity with which Wine version was that tested ? With latest CVS, I do
not have anything displayed at all... Just a white square on the screen.
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-10
09:20 -------
I installed it with a very recent version of CVS (a couple of days ago) I have a
wine with windows (95) setup. Maybe thats the difference? I have a problem with
the mouse at the startup screen (I cannot see it). By guess and a liitle luck I
was able to get a game started. I get a 3rd person view of Dink and have no
problem moving around with the keyboard. The floor/ground tiles are white just
like reported. I have not had much of a chance to play(debug) it.
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-11-11 07:37
-------
Sorry, when I posted the bug report, I forgot to tell this:
I also get the white screen at the beginning, but after some time (maybe
pressing the mousebuttons or something), I reach the start menu, where the
mouse pointer does not work. Continuing here requires a bit of patience: Moving
the mouse around until a sign appears at the menu entry (this depends a lot on
luck, sometimes I'm able to do this within 3 seconds, sometimes it takes me
more than 1 or 2 minutes).
Anyway, it is possible to start the game, just a bit difficult...
To the question, what the exact error message is: There is no error message
(apart from the ASYNC-stuff). I ran with "wine -debugmsg +relay..." and looked
through the messages displayed and I thought that DIB_DirectDraw_BltFast might
be the problem, but I have no clue at all.
Thanks for your work on this.
Klaus
------- Additional Comments From lionel.ulmer <at> free.fr 2002-11-11 10:37 -------
As I still have no luck managing to get the game to run (I have crashes due to
WinMM and sound stuff), could you attach to this bug report a +ddraw trace (wine
--debugmsg +ddraw).
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-11-11 18:13
-------
I never had a crash I think (I first tried the game 18 month ago). I'm using kde, i.e.
artsd.Otherwise I don't know.I found out a way to start the game more reliably: Press
at the
menu-screen "alt-d" to enter debug mode.Now move the invisible cursor with the
cursor keys
to the coordinates x=112 y=45. The mark should appear next to the start entry.Press
"ctrl"
to start the game.Lionel, I produced the trace, you requested, but it is over 50MB in
size. I include
below some lines, which may be helpful.They start at a SurfaceBlit of size 640, so I
hope this is
were the floor tile is drawn, but I don't know:Thanks again for your
help. Klausfixme:ddraw:DIB_DirectDrawSurface_BltFast
(0x403af948)->(0,0,0x403e14a0,0x406d2070,00000000)fixme:ddraw:DIB_DirectDrawSurface_BltFast
trans:fixme:ddraw:DIB_DirectDrawSurface_BltFast srcrect:
0x0-640x480trace:ddraw:Main_DirectDrawSurface_Lock
(0x403e14a0)->Lock((nil),0x406d1efc,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock!
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS2_HINTDYNAMIC
DDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX DDSCAPS2_CUBEMAP_NEGATIVEY
DDSCAPS2_D3DTEXTUREMANAGE DDSCAPS2_DONOTPERSIST -
DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 - DDSD_PITCH :
640 - DDSD_LPSURFACE : 0x42ad0000 - DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8,
R 00 G 00B 00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1f78,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DDSD_LPSURFACE :
0x41690000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEX!
ED8 DDPF_RGB , RGB bits: 8, R 00 G 00B
00)trace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:Main_DirectDrawSurface_Unlock
(0x403e14a0)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1fa4,0x4581c1a8,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x4581c1a8)->Lock((nil),0x406d1e44,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 136 -
DDSD_WIDTH : 26 - DDSD_PITCH : 32 - DDSD_LPSURFACE : 0x463a0000 -
DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G 00B
00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked sur!
face returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DDSD_LPSURFACE :
0x41690000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB ,
RGB bits: 8, R 00 G 00B
00)trace:ddraw:DIB_DirectDrawSurface_Blt destrect
:27x0-53x50trace:ddraw:DIB_DirectDrawSurface_Blt
srcrect :0x86-26x136trace:ddraw:DIB_DirectDrawSurface_Blt flags:
DDBLT_KEYSRCtrace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:Main_DirectDrawSurface_Unlock
(0x4581c1a8)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1fa4,0x4582f1c0,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x4582f1c0)->Lock((nil),0x406d1e44,00000010!
,00000000)trace:ddraw:Main_DirectDrawSurface_Lock locked surface returning
description : - DDSD_CAPS
: DDSCAPS_OFFSCREENPLAIN DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX DDSCAPS2_CUBEMAP_NEGATIVEY
DDSCAPS2_D3DTEXTUREMANAGE DDSCAPS2_DONOTPERSIST
- DDSD_HEIGHT : 45 - DDSD_WIDTH : 65 - DDSD_PITCH : 72 - DDSD_LPSURFACE
: 0x465f0000 -
DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00
G 00B
00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DD!
SD_LPSURFACE : 0x41690000 - DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G
00B 00)trace:ddraw:DIB_DirectDrawSurface_Blt destrect
:160x30-225x75trace:ddraw:DIB_DirectDrawSurface_Blt srcrect
:0x0-65x45trace:ddraw:DIB_DirectDrawSurface_Blt flags:
DDBLT_KEYSRCtrace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:Main_DirectDrawSurface_Unlock
(0x4582f1c0)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1fa4,0x45830230,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x45830230)->Lock((nil),0x406d1e44,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 22 -
DDSD_WIDTH : 20 - DDSD_PITCH : 24 - DDSD_LPSU!
RFACE : 0x46610000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8
DDPF_RGB , RGB bits: 8, R 00 G 00B
00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DDSD_LPSURFACE :
0x41690000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB ,
RGB bits: 8, R 00 G 00B
00)trace:ddraw:DIB_DirectDrawSurface_Blt destrect
:516x52-536x74trace:ddraw:DIB_DirectDrawSurface_Blt
srcrect :0x0-20x22trace:ddraw:DIB_DirectDrawSurface_Blt flags:
DDBLT_KEYSRCtrace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:!
Main_DirectDrawSurface_Unlock
(0x45830230)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1fa4,0x4582e988,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x4582e988)->Lock((nil),0x406d1e44,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 24 -
DDSD_WIDTH : 22 - DDSD_PITCH : 24 - DDSD_LPSURFACE : 0x465e0000 -
DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G 00B
00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOM!
EMORY DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC
DDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX DDSCAPS2_CUBEMAP_NEGATIVEY
DDSCAPS2_D3DTEXTUREMANAGE DDSCAPS2_DONOTPERSIST
- DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 - DDSD_PITCH : 640 -
DDSD_LPSURFACE : 0x41690000 -
DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00
G 00B
00)trace:ddraw:Main_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DDSD_LPSURFACE :
0x41690000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB ,
RGB bits: 8, R 00 G 00B
00)trace:dd!
raw:DIB_DirectDrawSurface_Blt destrect
:27x0-53x136trace:ddraw:DIB_DirectDrawSurface_Blt srcrect
:0x0-26x136trace:ddraw:DIB_DirectDrawSurface_Blt flags:
DDBLT_KEYSRCtrace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:Main_DirectDrawSurface_Unlock
(0x4581c1a8)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1fa4,0x4581c1a8,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x4581c1a8)->Lock((nil),0x406d1e44,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 136 -
DDSD_WIDTH : 26 - DDSD_PITCH : 32 - DDSD_LPSURFACE : 0x463a0000 -
DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G 00B
00)trace:ddraw:Mai!
n_DirectDrawSurface_Lock
(0x403af948)->Lock((nil),0x406d1ec0,00000020,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_BACKBUFFER
DDSCAPS_COMPLEX DDSCAPS_FLIP
DDSCAPS_FRONTBUFFER DDSCAPS_VIDEOMEMORY
DDSCAPS_LOCALVIDMEM DDSCAPS2_HINTDYNAMIC DDSCAPS2_RESERVED2
DDSCAPS2_CUBEMAP DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 480 - DDSD_WIDTH : 640 -
DDSD_PITCH : 640 - DDSD_LPSURFACE :
0x41690000 - DDSD_PIXELFORMAT : ( DDPF_PALETTEINDEXED8 DDPF_RGB ,
RGB bits: 8, R 00 G 00B
00)trace:ddraw:DIB_DirectDrawSurface_Blt destrect
:27x74-53x210trace:ddraw:DIB_DirectDrawSurface_Blt
srcrect :0x0-26x136trace:ddraw:DIB_DirectDrawSurface_Blt flags:
DDBLT_KEYSRCtrace:ddraw:Main_DirectDrawSurface_Unlock
(0x403af948)->Unlock((nil))trace:ddraw:Main_DirectDrawSurface_Unlock
(0x4581c1a8)->Unlock((nil))trace:ddraw:DIB_DirectDrawSurface_Blt
(0x403af948)->(0x406d1!
fa4,0x4042e008,0x406d1fb4,00008000,0x406d1fc8)trace:ddraw:Main_DirectDrawSurface_Lock
(0x4042e008)->Lock((nil),0x406d1e44,00000010,00000000)trace:ddraw:Main_DirectDrawSurface_Lock
locked surface returning description : - DDSD_CAPS : DDSCAPS_OFFSCREENPLAIN
DDSCAPS_SYSTEMMEMORY
DDSCAPS2_HINTDYNAMICDDSCAPS2_RESERVED2 DDSCAPS2_CUBEMAP
DDSCAPS2_CUBEMAP_NEGATIVEX
DDSCAPS2_CUBEMAP_NEGATIVEY DDSCAPS2_D3DTEXTUREMANAGE
DDSCAPS2_DONOTPERSIST - DDSD_HEIGHT : 97 -
DDSD_WIDTH : 48 - DDSD_PITCH : 48 - DDSD_LPSURFACE : 0x45510000 -
DDSD_PIXELFORMAT : (
DDPF_PALETTEINDEXED8 DDPF_RGB , RGB bits: 8, R 00 G 00B 00)
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-11
21:15 -------
Please attach trace next time... <grin>
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-11-15 18:51
-------
Sorry for the trace inside the comment.I took a look myself at the wine-code and while I
did not
solve the real bug,I found a smaller one in the debugging output, which I have fixed
(I'm veryproud
of myself!!)As you maybe see in the trace, but probably not, the last argument of
theSurface_BltFast-fnc is 0 and latter in the debugging output you see "trans:"but the
value of trans (which is given by the last argument) is not displayed.The reason is the
following
(include/ddraw.h):trans = DDBLTFAST_NOCOLORKEY = 0but in dll/ddraw/helper.c
the debugging output is
generated by DDRAW_dump_flags_:for (i=0; i < num_names; i++) if (names[i].val &
flags) DPRINTF("%s ", names[i].name);The "if" does not detect the case trans ==
0, so I modified this into for (i=0; i < num_names; i++) if (names[i].val == 0 && flags ==
0) DPRINTF("%s ", names[i].name); else if (names[i].val & flags) DPRINTF("%s
", names[i].name);I don't know if this is the fix like it should!
be or not, but I'm proud anyway.I still have no clue, why the game does not
work.Cheers Klaus
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-15
19:10 -------
allright what the heck are you doing the messes up your comments? Are you
pasting them in? Is it your browser? As it is the comments are not very
usefull.<frown>
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-15 19:19
-------
Yep, that sounds like it's definitely a bug, albeit a relatively minor one.
I'd propose something like
static void DDRAW_dump_flags_(DWORD flags, const flag_info* names,
size_t num_names, int newline)
{
unsigned int i;
for (i=0; i < num_names; i++)
if ((flags & names[i].val) /* standard flag value */
|| ((!flags) && (!names[i].val))) /* zero value only */
DPRINTF("%s ", names[i].name);
if (newline)
DPRINTF("\n");
}
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-11-26 18:44
-------
Me again. Sorry for the strange formatting of my emails.I don't know why this happens.
I'm using
konqueror-2.2.xI was just wondering if it may be that wine does not load the bitmapsof
the game. I
did an strace and I don't find anything about loadingthe files "./dink/Tiles/*.bmp".The
only thing I discovered wasopen("/usr/share/wine/drivec/Program Files/Dink
Smallwood/dink/Tiles", O_RDONLY|O_LARGEFILE) = 15ioctl(15,
VFAT_IOCTL_READDIR_BOTH, 0x406d16a4)
= -1 ENOTTY (Inappropriate ioctlfor device)close(15) =
0open("/usr/share/wine/drivec/Program
Files/Dink Smallwood/dink/Tiles",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 15fstat64(15,
{st_mode=S_IFDIR|0777, st_size=1456, ...}) = 0fcntl64(15, F_SETFD, FD_CLOEXEC)
= 0getdents64(0xf,
0x80c8040, 0x1000, 0x19) = 1904getdents64(0xf, 0x80c8040, 0x1000, 0x19) =
0close(15) = 0Maybe someone
smarter than me could tell me what this means.Anyway if I use "wine -debugmsg +!
file dink.exe" I find lines saying:trace:file:CreateFileW L"tiles\\TS01.bmp"
GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING
attributes 0x80trace:file:CreateFileW
returning 0x58trace:file:_lopen ('tiles\TS01.BMP',0000)trace:file:CreateFileW
L"tiles\\TS01.BMP" GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE
OPEN_EXISTING attributes
0x0trace:file:CreateFileW returning 0x58trace:file:ReadFile 0x58 0x406d2690 14
0x406d264c
(nil)trace:file:ReadFile 0x58 0x406d2668 40 0x406d264c (nil)trace:file:ReadFile 0x58
0x406d26a4 1024
0x406d264c (nil)trace:file:_lclose handle 88I hope someone can read this and the
formatting is not
destroyed againthis time.Bye Klaus
------- Additional Comments From tony_lambregts <at> telusplanet.net 2002-11-26
19:12 -------
I would suspect that its something to do with konqueror. Lets see what I can do
<Klaus's comments>
I was just wondering if it may be that wine does not load the bitmaps of the
game. I did an strace and I don't find anything about loading the files
"./dink/Tiles/*.bmp".The only thing I discovered was
open("/usr/share/wine/drivec/Program Files/Dink Smallwood/dink/Tiles",
O_RDONLY|O_LARGEFILE) = 15
ioctl(15, VFAT_IOCTL_READDIR_BOTH, 0x406d16a4) = -1 ENOTTY (Inappropriate
ioctlfor device)
close(15)= 0
open("/usr/share/wine/drivec/Program Files/Dink Smallwood/dink/Tiles",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 15
fstat64(15, {st_mode=S_IFDIR|0777, st_size=1456, ...}) = 0
fcntl64(15, F_SETFD, FD_CLOEXEC) = 0
getdents64(0xf, 0x80c8040, 0x1000, 0x19) = 1904
getdents64(0xf, 0x80c8040, 0x1000, 0x19) = 0
close(15) = 0
Maybe someone smarter than me could tell me what this means.Anyway if I use
"wine -debugmsg +file dink.exe" I find lines saying:
trace:file:CreateFileW L"tiles\\TS01.bmp" GENERIC_READ FILE_SHARE_READ
FILE_SHARE_WRITE OPEN_EXISTING attributes 0x80
trace:file:CreateFileW returning 0x58
trace:file:_lopen ('tiles\TS01.BMP',0000)
trace:file:CreateFileW L"tiles\\TS01.BMP" GENERIC_READ FILE_SHARE_READ
FILE_SHARE_WRITE OPEN_EXISTING attributes 0x0
trace:file:CreateFileW returning 0x58
trace:file:ReadFile 0x58 0x406d2690 14 0x406d264c (nil)
trace:file:ReadFile 0x58 0x406d2668 40 0x406d264c (nil)
trace:file:ReadFile 0x58 0x406d26a4 1024 0x406d264c (nil)
trace:file:_lclose handle 88
</Klaus's comments>
------- Additional Comments From andi <at> rhlx01.fht-esslingen.de 2002-11-27 00:48
-------
VFAT_IOCTL_READDIR_BOTH doesn't matter, since it's on a non-VFAT partition
and we just probe for VFAT properties.
Apart from that, no idea.
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-11-27 08:41
-------
Today I'm using IE, so I hope this helps with the formatting.
Could someone tell me, if the tile-bitmaps are loaded or is there some way to
find this out? I guess that wine does not have problems with capital-letters
and such in filenames (since Windows does not distiguish them as far as I know).
Anyway in case this is not the error, I have been doing some "reverse-
engineering" in dink-smallwood, maybe someone can give me a hint on what to
test next:
Basically Dink Smallwood uses a Display-Surface with a Front- and Backbuffer
(640x480), an offscreen-memory-surface of the same size and some smaller
surfaces containing objects.
When the player enters a new room the offscreen-memory-surface is painted with
the ground-tiles and this remains fixed until the player enters another room.
Every time a frame is drawn the offscreen-surface is copied first to the
backbuffer (to paint the floor) and then the other several objects (trees,
people, etc.) are copied directly to the backbuffer. When this is finished, the
Back- and frontbuffers are switched and the steps above repeat.
What I am wondering is, why the objects are visible, but the floor-tiles are
not. The only differences I see for now, is that the objects are copied
directly to the backbuffer, while the floor-tiles are copied first to the
offscreen-memory and then to the backbuffer and the second difference is that
the floor-tiles are stored in regular *.bmp files, while the objects are stored
in some format, which I do not recognize.
What could I test next? Thanks
Klaus
------- Additional Comments From kniederk <at> math.uni-koeln.de 2002-12-04 08:41
-------
I'm sorry about this fuzz with the "strace", where I didn't see the loading of
the bitmaps.
The problem was that these files are opened by another win-thread and this was
not monitored by strace.
To get it right you need to use "strace -f wine dink.exe".
What should I try next?
Klaus
--
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the wine-bugs
mailing list