http://bugs.winehq.com/show_bug.cgi?id=1129
------- Additional Comments From z_god@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