MSX1 TMS VDP sprite cloning followup

Page 1/3
| 2 | 3

By hap

Paragon (2032)

hap's picture

19-10-2008, 20:09

previous topic: http://www.msx.org/forumtopic7248.html
In short, if you're going to mirror pattern tables (reg 4 bits 0,1) in screen 2, use sprites 0-7 only.

In detail:
I've figured out the M3 sprite cloning effect on MSX1 TMS99xx/91xx. If M3 is set, sprites 8-31 Y position(s) is influenced by the least 2 bits of the pattern generator table offset, the colour table offset doesn't matter. The sprite comparator will detect a sprite at attr_y, attr_y OR (~reg4 << 6 AND 128), attr_y OR (~reg4 << 6 AND 64). It's as simple as that. I assume the reason for the first 8 sprites not being affected is due to them being preprocessed in hblank. This glitch is briefly mentioned in the official TMS91xx programming manual btw, meaning that it's not undocumented.

Login or register to post comments

By hap

Paragon (2032)

hap's picture

19-10-2008, 21:29

Add to that: attr_y OR (~reg4 << 6 AND 192), thanks to manuel for testing it quickly. This one would only apply if reg 4 bits 0 and 1 are both 0, a spriteline at Y 63 would clone to 255, the top of the screen (and to 127).

By dvik

Prophet (2200)

dvik's picture

19-10-2008, 21:36

Remember that the behavior is different on different MSX1 machines. My CX5M behaves almost as you describe, but it seems like its only 56 scan lines that are mirrored, not 64. So in 2nd and 3rd vertical region, there is a band of 8 pixels (can't remember if it was top or bottom) that didn't have any mirrored sprites.

Also, I noticed that the mirroring effect is not that stable. The sprites tend to flicker or move a bit. Kindof hard to describe but its not a clean stable picture.

By flyguille

Prophet (3028)

flyguille's picture

19-10-2008, 21:39

and that means? that you can to use sprites to hide borders unsing less sprites as a use?

By hap

Paragon (2032)

hap's picture

19-10-2008, 22:23

I guess, but only on MSX1, and not all of them have a TMS VDP.

Remember that the behavior is different on different MSX1 machines. My CX5M behaves almost as you describe, but it seems like its only 56 scan lines that are mirrored, not 64. So in 2nd and 3rd vertical region, there is a band of 8 pixels (can't remember if it was top or bottom) that didn't have any mirrored sprites.If you put a 16x16 sprite at 0,56, its bottom part is not cloned, is that what you mean?

The flickering is a different issue though, temperature or voltage related maybe. On my Canon V20 it's horrible, cloned sprites gradually deteriorating and ultimately vanishing completely with things like overflow and collision between cloned sprites not working anymore. Most MSX1s with a TMS VDP are fine though, and like I said, Texas Instrument even knew about it.

By PingPong

Prophet (3623)

PingPong's picture

19-10-2008, 22:25

the most useless 'feature' every described-.....

By hap

Paragon (2032)

hap's picture

19-10-2008, 22:31

You saw MSX1 and then stopped reading?Tongue
btw, this effect is used in the MSX1 demo "Alankomaat", the waving flame part.

*edit* check here, starting at 2:25, thanks to manuel for the link: http://gr.ath.cx/bandwagon/xvid/alankomaat.xvid.avi

By dvik

Prophet (2200)

dvik's picture

19-10-2008, 22:34

Its unfortunately quite useless. Me and Vincent tried to use it in one of our demos, but the result wasn't that good (mainly unstable and unpredictable on my CX5M) and on some MSXes it didn't work at all. So we threw the demo part away and since then I haven't bothered much about the feature.

By ARTRAG

Enlighted (6466)

ARTRAG's picture

19-10-2008, 22:45

I've always the same question: which chips are affected by the cloning problem?
Hap, if I understand, you have found that setting in hybrid mode only colors (one bank instead of 3) does not cause errors on sprites.
Can you confirm?

By hap

Paragon (2032)

hap's picture

19-10-2008, 22:51

It happens on all MSX1 TMS VDPs, and only if one or both bits of reg4 are 0, and M3 is set. Indeed, the contents of reg3 does not matter.
(though if you use reg3 colour table mirroring, I don't expect your game/program to work correctly on a Toshiba VDP used in some Sony MSX1s)

By flyguille

Prophet (3028)

flyguille's picture

19-10-2008, 23:51

Yes, I can to confirm that this effect of cloning is changing to dissapear relative to the temperature of the VDP chip, you can to test it just aplying a hair-dryer and the effect will dissapear fastly... then you can to apply a cooler, and the effect return fully...

The TMS must have to a overheating protecction that dissable the SPRITE's renders when the VDP is too hot.....

I remember that TMS was used on RADAR aIR CONTROL of some airport on USA that a plane crash was due to malfunction of the radar console that dissapeared by seconds some icon of a plane (sprite).... due to the overhot of VDP TMS because a FAN_COOLER stop working... then thay do a movie.... that was on a true story?

Page 1/3
| 2 | 3