I took the most recent code example and tried to make it work with a
mirrored playfield instead of a repeated playfield. After inserting the
proper number of NOPs I got it to overwrite PF2 at the right cycle, but as
I added the rest of the load/stores it bugged out the screen.
I think the problem is that that the extra logic is at the tail end of the
scanline, the incrementing of the various counters, and that is going over
76 scanlines (well, 74 if you count the WSYNC).
But the cycle count according to my calculations should be low enough to
not go over the maximum.
I wanted to use this playfield config because then I could set PF0 to a
constant for the borders and only have to rewrite PF1 and PF2, so I could
have 4 8-bit wide strips of RAM.
By doing PF0PF1PF2 PF0PF1PF2, both the 2nd PF0 and PF2 would need to be
4-bits wide and I'd have to do bitmasking operations on them. Messy. Of
course, the advantage being that you could get all your 2nd playfield
writes done before mid-screen.
It doesn't look like you can do any meaningful processing at the head of
any scanline and guarantee any sort of accurate cycle count which I would
need when rewriting PF2, which makes using the added cycles of my desired
kernel hard to exploit.
Any advice?
Glenn Saunders - Producer - Cyberpunks Entertainment
Personal homepage: http://www.geocities.com/Hollywood/1698
Cyberpunks Entertainment: http://cyberpunks.uni.cc
-
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/