|
Post by bjonte on Sept 29, 2019 5:19:54 GMT
Does anyone of you know roughly how many bytes you can transfer to the VDC during one NTSC frame, with or without memory refresh?
|
|
|
Post by Pyrofer on Sept 29, 2019 11:39:10 GMT
I'm not sure but I guess you could work it out roughly. Assuming you use the auto-increment and don't need to resend the start address each time you are left with at least 4 instructions per byte sent, lda datatosend,x sta $601 waitloop: bit $601 bpl waitloop
This doesn't take into account any complex loops to write a particular number of bytes or more complex loading of data. So even if you assume it never waits for the VDC ready, going by something like 17766 cycles per frame, going to guess at least 20 cycles per byte written and you are somewhere in the 888 bytes per frame region with no other code operations.
I'm making numbers up and guessing a lot here, but that doesn't sound too far off my experience of using it either.
There are of course things you can do to cheat and speed stuff up. Not the least of which is make use of the internal clock copy.
|
|
|
Post by bjonte on Sept 29, 2019 14:43:31 GMT
Thanks! I’m thinking about the possibility for smooth animations but rough estimates don’t look good. Most graphics kind of have to be in VDC memory to get speed and it doesn’t play well with smooth movement and animation since the combination eats memory like nothing else.
|
|
|
Post by bjonte on Sept 29, 2019 14:46:05 GMT
But there should be over 30000 cycles available per frame in 2 MHz.
|
|
|
Post by Pyrofer on Sept 29, 2019 18:40:46 GMT
Yes! Of course. It's a lot better in fast mode And if you assume an expanded 64k Video memory there is plenty of space to store data for animations. The only issue is that the block copy is a solid block, no gaps. So you can't move random shaped objects like on the Amiga to simulate sprites. It's good for moving large areas of screen however.
|
|
|
Post by bjonte on Sept 29, 2019 20:21:09 GMT
64 kB will not be enough for smooth graphics without dynamic generation. All images needs 8*8 copies to store all sub-character scroll variations.
I think I’ll need to prototype something to see how fast the dynamic generation plus copy to VDC can be done.
|
|