Jan Hermanns Posted July 28, 2010 Share Posted July 28, 2010 Hello, I'm desperate, I attached a stripped-down 2-scanline kernal, that shows a phenomenon I don't understand. Here is a little run-down, of what the kernal does: - In the first scanline the playfield gets drawn as well as sprite GRP1 (only to trigger GRP0, see below). - In the second scanline the playfield gets disabled and Sprite GRP0 gets drawn. - In order to position Sprite GRP0 vertically accurate I use the VDELP0 register. By and large this works fairly well, except for the leftmost side of the screen. The attached kernal shows a sprite at a neuralgic position. The left side of the sprite is messed up, whereas the right side gets drawn correctly. Can anybody explain to me, why accurate vertical positioning at the leftmost side of the screen does not work? Or am I doing something wrong? kind regards, Jan stripdown.asm.txt Quote Link to comment Share on other sites More sharing options...
Ed Fries Posted July 29, 2010 Share Posted July 29, 2010 Looks to me like you are taking too long to store into GRP0: sta WSYNC stx PF2 ;3 lda #0 ;2 cpy heroY ;3 bcs .skipDrawHero ;2 lda (heroSpritePtr,x) ;6 beq .skipDrawHero ;2 inc heroSpritePtr ;5 .skipDrawHero sta GRP0 ;3 - 26 total (should be less than 68/3) Try moving a little work above the WSYNC. 1 Quote Link to comment Share on other sites More sharing options...
Jan Hermanns Posted July 30, 2010 Author Share Posted July 30, 2010 (edited) Thank you very much! I didn't know about that "GRP0 68/3" timing thing. Edited July 30, 2010 by Jan Hermanns Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.