Autor
| Still some "Snow"/random pixels appearing in play
|
norakomi msx professional Mensajes: 861 | Publicado: Julio 31 2006, 12:45   |
I have a little bug.
At an endboss routine i wrote; random pixels appear in screen.
I use 3 linesplits, and an interrupt at vblank.
I DONT use r18 at all. The screen does not scroll. R#18's value is always 0.
First linesplit is at y=20,
the second and third change between these values.
either:
second linesplit: y=30 , third linesplit: y=40
or
second linesplit: y=50 , third linesplit: y=60
or
second linesplit: y=70 , third linesplit: y=80
or
second linesplit: y=90 , third linesplit: y=100
In between the second and third linesplit I change palette colors.
So basically you see colors moving across the screen.
now the second and third linesplit are only activated when the endboss is hit,
and ONLY THEN do the random pixels appear.
Anyone an idea where to look ?
|
|
AuroraMSX
 msx master Mensajes: 1277 | Publicado: Julio 31 2006, 13:00   |
Maybe you've got a VRAM copy command running at the same time?
|
|
GhostwriterP msx addict Mensajes: 320 | Publicado: Julio 31 2006, 21:53   |
Not changing colors on a gfx9000 are you  |
|
turbor msx freak Mensajes: 181 | Publicado: Julio 31 2006, 23:32   |
Are the sprites enabled or disabled ?
for some reason it feels like sprites disabling was something of a quick hack on the V99x8 chip with lot of strange things happening when screenplit tricks are done while sprites are off.
On the other hand, you might be altering visible colors during the split. This also seems to introduce 'random pixels' while the DAC conversion is 'unstable' during the time the new color-values are set .
|
|
Sonic_aka_T
 msx guru Mensajes: 2269 | Publicado: Agosto 01 2006, 01:16   |
Try posting your ISR, split code and any relevant code you can think of. It's hard to get an idea with just a "what's wrong"?
|
|
norakomi msx professional Mensajes: 861 | Publicado: Agosto 01 2006, 12:20   |
I did write to VRAM during the linesplits.
Sprites are enabled during linesplits.
The problem indeed had to do with the writing of data to VRAM.
The linespit interrupted writing to VRAM, and the OUT instructions
at the linesplit altered the VRAM write before the linesplit was called.
The problem was not DI and EI good enough.
I changed my VRAM WRITE routines. Problem solved.
Thanks guys !
|
|
|
|
|