Bug in the 5th sprite emulation

Page 5/6
1 | 2 | 3 | 4 | | 6

By dvik

Prophet (2200)

dvik's picture

07-11-2006, 18:25

So the use of this feature to implement the screensplit on MSX1 is even harder due this behaviour. I'm still thinking on a way to do it in a clean way...
The screensplit is Waves is done using 5th sprite but as you can see there is several black lines between the screen 3 and screen 2 part to hide this effect.
In MSX Unleashed we synchronized splits to VBLANK which is the only stable synchronization point. The problem though is that you have to have quite a big amount of code that always execute the same number of instructions since its more than half a screen between VBLANK and where in the next frame you actually want the split.
In the sequel to MSX Unleashed I can promise you and orgy of screensplits Smile

By viejo_archivero

Paragon (1395)

viejo_archivero's picture

07-11-2006, 18:34

In the sequel to MSX Unleashed I can promise you and orgy of screensplits Smile
Smile

By PingPong

Prophet (3889)

PingPong's picture

07-11-2006, 20:36

I'm quite sure that the basic program is doing what you want it to do. The sprites are most likely updated way before line 0 in the draw area. Just for comparison, it would be interesting to see it run on an MSX1 machine as well.

For me it's not possibile....

Anyone know if the OCM works in the same way of real hw?

By Manuel

Ascended (18791)

Manuel's picture

07-11-2006, 23:14

dvik - hmm, I still see corruption of the logo in Dragon Quest II: left of the II there is a block of background color. Are you sure it should be fixed in openMSX?

By dvik

Prophet (2200)

dvik's picture

08-11-2006, 00:32

dvik - hmm, I still see corruption of the logo in Dragon Quest II: left of the II there is a block of background color. Are you sure it should be fixed in openMSX?
Checking the F flag in blueMSX like you do in openMSX fixed it in blue. So without the fix, the logo is corrupted and with the fix its good.
What I fixed was changing the check (in a couple of places):

if (~vdp->vdpStatus[0] & 0x40) {

to

if ((vdp->vdpStatus[0] & 0xc0) == 0) {

So the previous bug in blue was that only the 5S flag was checked, now both 5S and F has to be cleared to set the 5th sprite stuff in S0.
Not sure what else may be wrong.

By ARTRAG

Enlighted (6845)

ARTRAG's picture

08-11-2006, 09:30


One funny thing I noticed (which actually is different between the tms and v9938) is that if you have a sprite collision to the left of the display area (early clocked sprites), they will set the collision bit on the TMS and not on the V9938 (or the other way around).

Other interesting things is that the 5th sprite and sprite collision bits are not set on the actual scanline where the collision/5th sprite occurs. Its set about +/- 3 scan lines from the scan line it actually is.

Can I guess ? Mine is only a conjecture, but I think that the Hw subsystem for the collision check in the v9938 is the same of the TMS - or better is the same of the msx1 mode. Have you tried to see (of a real HW- naturally) if setting the EC bit in the colour attribute in the SAT and setting the EC bits in the colour table before the SAT leads to a correct detection of the collision?

By ARTRAG

Enlighted (6845)

ARTRAG's picture

08-11-2006, 09:32

So, when a new release of OpenMSX and of BLueMSX ?

By dvik

Prophet (2200)

dvik's picture

08-11-2006, 09:57

If this bug prevents users from developing msxdev entries I think they should be released immediately. So let us know. I could certainly make another blueMSX release the coming weekend if needed.

By ARTRAG

Enlighted (6845)

ARTRAG's picture

08-11-2006, 14:46

Actually, this bug prevents me to implemet a multiplexing scheme for multicolor sprites on MSX1,
but I do not think we'll be able to release our game in msxdev06 so, take you time.

By dvik

Prophet (2200)

dvik's picture

08-11-2006, 17:58

Actually, this bug prevents me to implemet a multiplexing scheme for multicolor sprites on MSX1,
but I do not think we'll be able to release our game in msxdev06 so, take you time.

I can always send you a beta if you like. Just let me know.

Page 5/6
1 | 2 | 3 | 4 | | 6