Leprechaun CVS
Nothing new* to see here unless you're looking at the source. Hopefully this is the final kernel rewrite.1. reflected playfield2. (zp),y player sprites3. REFP = no separate left+right sprites4. blank sprite instead of repositioning to far leftWhat's interesting is even with this rewrite I effectively have no free cycles in the majority of the kernel. Or rather, there are free cycles, but they don't happen during the inactive portion of the display. There's even a minor color glitch on the far right side of the background every 18 lines because I had to put in the STA COLUPF early. (I could probably fix it with some reorganization, just not today.)And in the everything-is-related front, adding in REFP also took some work. As before, I shifted the XPOS left and changed the subtraction loop to 30 instead of 15, then tacked the REFP bit onto the HMP table. The problem I had before was that then messed up my "not used" indication of XPOS<0. So I attacked that on two fronts. First, in my PUTSPR routine I used COLUP=0 to indicate whether the sprite position had been used, then I added a final check which set the sprite pointer to a blank sprite when it wasn't used.I tried initially simply to make XPOS=255, over to the far right, but that created strange ghosts at the end of the level when I change sprite/playfield priorities. This way turned out to be simpler. The loop which writes the COLUP=0 and blank sprite pointers to SC RAM is also kinda interesting because I offset the Y value by one so the carry bit gets used for the loop. (If there was no Y offset, the loop would exit early when Y=0.)*Well the playfield will look different from the previous WIPs, but that's because I haven't adjuected the data for the reflected playfield yet.
0 Comments
Recommended Comments
There are no comments to display.