Hello,
I'm trying to locate the source of some graphical glitches in Igowin, a nice 9x9 Go program (download: http://www.smart-games.com/igo.html, screenshot with glitches attached,) but since someone here might know directly what the problem is, I'd better ask here first.. (to be honest, I already tried to find out and miserably failed :-))
Problem 1: Go stones should be round, not square. The program uses the following functions to draw a stone:
trace:bitblt:BitBlt hdcSrc=0x840 0,0 24 bpp->hdcDest=0x834 76,83 37x37x24 rop=8800c6 trace:bitblt:BitBlt hdcSrc=0x844 0,0 24 bpp->hdcDest=0x834 76,83 37x37x24 rop=ee0086
So, first it wants to create a black hole in the board (0x8800c6 = SCRAND,) using a mask at 0x840 and then fit a stone at 0x844 in the hole (0xee0086 = SRCPAINT (OR)). I disabled the second operation, but this gave me a round hole, not a square one.. forcing a SRCCOPY on the first one also gives a square hole, so maybe something goes wrong with creating the mask image.. but as I'm not really sure about this, does anyone here have an idea where the problem might be?
Good, i don't think that the problem will be in the blit, i have "rewritten" SRCPAINT and SRCAND using GetPixel and SetPixel, it has yet the same problem.
Problem 2: Shadows shouldn't have funky colors. As far as I can see, one SRCPAINT is used for drawing a shadow:
trace:bitblt:BitBlt hdcSrc=0x83c 83,90 24 bpp->hdcDest=0x834 83,90 30x30x24 rop=ee0086
If you are interested in some really "funky", run the game with: wine --debugmsg +all igowin.exe &> log
and you will see the shadows ;) (yes with a incorrect color)
Regards, Carlos.