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.