|
Atari coding BBS
Re: Sync-Lock code on STE |
Posted by: evil
|
Jun,09.2012-21:13
|
After all this time and all these discussions;
the unstable border is because you have some code that uses up too much cpu/bus so the interrupt gets delayed.
It can be;
- Blitter
- Big Movem's
- Divs
- Muls
- Floppy/hdd DMA
- Other interrupts (big ACIA's, OS Timer C etc)
Or even on STe if you trigger DMA sound the video sync can be disturbed (yes it seems strange, but the shifter is doing the DMA for PCM-sound).
Solutions;
- Do blitter in 64-bus cycle (256 CPU cycles!) passes like we talked about, this is one half scanline delay if it hits at a bad spot
- Avoid big movems if you can't have them at a fixed point, such as VBL, don't have them floating around in the mainloop so they can occour at the lower border removal. I think the largest movem is about 200 CPU cycles or so, so almost half a scanline there too
- Use tables for mul/div
- Set DMA sound early on VBL
- Don't load from floppy or hdd meanwhile the border is open
- Kill other interupts that you don't need, RTE them all or better yet make sure the MFP is not running them at all.
I did make an example source with which it did constant blitting all over the place, and the border was steady.
Don't know how we can help any further without seeing a simplified source example (eg no game or such, just a small routine that shows the problem).
--
Anders Eriksson
ae@dhs.nu
|
[All messages in this thread] [Start new thread]
What's the anti-troll code? That's your personal code to be able to add comments and messages on the dhs.nu site.
Don't have a code or forgot it? Fix it here.
|