Jump to content
IGNORED

VDP scanline tricks


Asmusr

Recommended Posts

Ok, so after looking at the source code I see the problem of this demo on the F18A. It does in fact work, however the you have to remove the jumper USR1 or set the max sprite value in VR30 to 4. On the F18A the "5S" flag becomes the "Nth-Sprite" flag. The default is 32 sprites on a line, so the flag was never set because you only have a max of 5 sprites on a line.

 

The demo runs very smooth on the F18A and there is no flicker like on the original hardware. There are also no missing pixels on the 6th row of sprites like there are on the real hardware. This demo does not use the 5th-sprite number technique described elsewhere and which makes Miner49er not currently work on the F18A.

 

The USR1 jumper sets a default at power on of 4 (jumper off) and 32 (jumper on - the default). Most software will benefit from having more sprites on a line visible, but some software will fail because it relies on the 5th sprite not being displayed and possibly triggering an event.

 

In V1.6 I'm going to introduce another register that allows you to set the sprite value at which the 5S flag will be set, and it will default to 5. This will be separate from the sprite max VR30.

 

Have you studied and documented the content of the lower 5 bits of the status register of the 9918A when the 5th sprite flag is reset ?

If the early rumors were confirmed one could be able to "trace" which sprite is being plotted by the raster.

This would allow to know where the raster is on the screen practically on line by line basis (!)

Edited by artrag
  • Like 1
Link to comment
Share on other sites

The USR1 jumper sets a default at power on of 4 (jumper off) and 32 (jumper on - the default). Most software will benefit from having more sprites on a line visible, but some software will fail because it relies on the 5th sprite not being displayed and possibly triggering an event.

 

In V1.6 I'm going to introduce another register that allows you to set the sprite value at which the 5S flag will be set, and it will default to 5. This will be separate from the sprite max VR30.

 

Thanks for the explanation. I'm becoming more puritan and thinking of removing my jumper, but in any case it's good to have the two attributes (number of sprites on a line and number of sprites that triggers the flag) separated.

 

The attached version is checking for the F18A and is setting VR30 to 4 if detected.

Splitscreen3.zip

Link to comment
Share on other sites

CRU on the 99xx is *kind of like* (not exactly) port mapped I/O on the Z80 (I.e. IN/OUT). The port instructions on the Z80 move 8 bits at a time and they don't take space out of the 64k memory map. Same on the 99xx but we can move any number of bits from 1 to... err... I can't remember!

 

Ehehe, believe it or not, but the I/O ports of the z80 are 16 bit wide, not 8 bit ;-)

The feature is not documented (and not used in the msx HW), but it is used on the zx spectrum and on the CPC, where the audio chip is accessed using the 16 bit port in BC

The transferred data are 8 bit.

Link to comment
Share on other sites

I've done some tests over a real Colecovision, and 5th bit fails sometimes specially when the VDP starts to get hot.

 

I remember publishing somewhere here in AtariAge my findings but I cannot find it right now

The real reason for missing its value could be you read it while it is being set. Maybe temperature and bad powering could make longer the rise time of the lines and make the problem more frequent, anyway you can have the 5th sprite condition on more lines, so you cannot miss it even in the worst case

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...