On Fri, 27 Jul 2001, Matt wrote:

> > Looking at the Purify callstack more closely shows that the uninitialized
> > memory reads that happen in fullscreen mode (and not windowed mode) only
> > happen when the crossblit_32 function is called @ gfx_support.c(328).
> >
> I've added "if (priority != GFX_NO_PRIORITY)"  to "#ifdef USE_PRIORITY",
> which has helped track things down a bit.
>
> The value for yl being passed into the crossblit function is different,
> depending on whether windowed or fullscreen is being used. I've tracked
> this back to operactions.c in _gfxop_draw_cel_buffer(), where after line
> 1675, pxm->yl is where the difference appears to start.

The real real *real* problem seems to be that somewhere before
gfxwop_dyn_view_draw(), the cel passed goes wrong. The cel
parameter passed into this function contain different values after
a certain point, as indicated by the asteriks below:

This makes no sense to me, I would assume that memory corruption is
happening somewheres? Here is some output from a print statement that
prints the loop and cel parameters at the copy protection scene in LSL2.

Windowed:
loop=4   cel=2  loop=4   cel=3  loop=4   cel=4  loop=4   cel=4
loop=4   cel=5  loop=4   cel=1  loop=4   cel=0  loop=5   cel=0
loop=6   cel=0 *loop=0   cel=0* loop=1   cel=5  loop=2   cel=1
loop=3   cel=4  loop=4   cel=2  loop=4   cel=2  loop=4   cel=3
loop=4   cel=3  loop=4   cel=4  loop=4   cel=4  loop=4   cel=4
loop=4   cel=4  loop=4   cel=5  loop=4   cel=5  loop=4   cel=1
loop=4   cel=1  loop=4   cel=0  loop=4   cel=0  loop=5   cel=0
loop=5   cel=0  loop=6   cel=0  loop=6   cel=0  loop=0   cel=0
loop=1   cel=5  loop=2   cel=1  loop=3   cel=4  loop=0   cel=0
loop=1   cel=5  loop=2   cel=1  loop=3   cel=4  loop=0   cel=0
loop=1   cel=5  loop=2   cel=1  loop=3   cel=4  loop=0   cel=0

Fullscreen:
loop=4   cel=2  loop=4   cel=3  loop=4   cel=4  loop=4   cel=4
loop=4   cel=5  loop=4   cel=1  loop=4   cel=0  loop=5   cel=0
loop=6   cel=0 *loop=0   cel=1* loop=1   cel=3  loop=2   cel=2
loop=3   cel=4  loop=4   cel=2  loop=4   cel=2  loop=4   cel=3
loop=4   cel=3  loop=4   cel=4  loop=4   cel=4  loop=4   cel=4
loop=4   cel=4  loop=4   cel=5  loop=4   cel=5  loop=4   cel=1
loop=4   cel=1  loop=4   cel=0  loop=4   cel=0  loop=5   cel=0
loop=5   cel=0  loop=6   cel=0  loop=6   cel=0  loop=0   cel=1
loop=1   cel=3  loop=2   cel=2  loop=3   cel=4  loop=0   cel=1
loop=1   cel=3  loop=2   cel=2  loop=3   cel=4  loop=0   cel=1
loop=1   cel=3  loop=2   cel=2  loop=3   cel=4  loop=0   cel=1
loop=1   cel=3  loop=2   cel=2  loop=3   cel=4  loop=0   cel=1

I'm not sure what to do from here; I'm pretty confused at this point.


Reply via email to