im trying to draw vertical tiles for a score value. my project starts out with $2000ppu having the vram draw with an increment of 1. Now I am able to turn the ppu rendering off, and write anything to any nametable.
now when i want to draw verticaly, the vram engine inside the game recognizes my attempt to change the increment mode of $2000ppu to (8... 84..) #$8C.
It changes and i am able to see the tiles in-game instantnly drawn vertically. However, when it is complete, i will get this millisecond white flash.
My question is, am i writing too much to the vram with the ppu rendering on? Or am i missing additional code to stop that flashing from happening?
Here is the tile data that is loaded, it includes the high/low NT address, the incremet mode with number of tiles, and the tiles.
This is the code within the vram engine that changes the bits to $2000ppu for 32+ increments
And this is the code at the beginning of my NMI
Now, it seems that if I take away the last vertical string of vram tiles to be drawn in my score, (206B84 00 00 00 00) the screen does not flash or shake after the drawing is completed. I'm worried that I am writing too much to the vram, but I feel that I am not.
Any help would be greatly appreciated! I wanted to do as much troubleshooting on my own as I could before posting here, but ive wasted too much time, and need help. Thanks!
now when i want to draw verticaly, the vram engine inside the game recognizes my attempt to change the increment mode of $2000ppu to (8... 84..) #$8C.
It changes and i am able to see the tiles in-game instantnly drawn vertically. However, when it is complete, i will get this millisecond white flash.
My question is, am i writing too much to the vram with the ppu rendering on? Or am i missing additional code to stop that flashing from happening?
Here is the tile data that is loaded, it includes the high/low NT address, the incremet mode with number of tiles, and the tiles.
Code:
206484 00 00 00 00
206584 00 00 00 00
206784 00 00 00 00
206884 00 00 00 00
206A84 00 00 00 00
206B84 00 00 00 00 FF (FF signifies the end of the reading tile data)
206584 00 00 00 00
206784 00 00 00 00
206884 00 00 00 00
206A84 00 00 00 00
206B84 00 00 00 00 FF (FF signifies the end of the reading tile data)
This is the code within the vram engine that changes the bits to $2000ppu for 32+ increments
Code:
01:FE61: A5 FF LDA $FF = #$88
01:FE63: 09 04 ORA #$04
01:FE65: B0 02 BCS $FE69
01:FE67: 29 FB AND #$FB
01:FE69: 8D 00 20 STA $2000 = #$8C
01:FE63: 09 04 ORA #$04
01:FE65: B0 02 BCS $FE69
01:FE67: 29 FB AND #$FB
01:FE69: 8D 00 20 STA $2000 = #$8C
And this is the code at the beginning of my NMI
Code:
01:C083: AD 02 20 LDA $2002 = #$00
01:C086: A5 FF LDA $FF = #$8C
01:C088: 29 F8 AND #$F8
01:C08A: 8D 00 20 STA $2000 = #$88
01:C08D: 85 FF STA $FF = #$88
01:C086: A5 FF LDA $FF = #$8C
01:C088: 29 F8 AND #$F8
01:C08A: 8D 00 20 STA $2000 = #$88
01:C08D: 85 FF STA $FF = #$88
Now, it seems that if I take away the last vertical string of vram tiles to be drawn in my score, (206B84 00 00 00 00) the screen does not flash or shake after the drawing is completed. I'm worried that I am writing too much to the vram, but I feel that I am not.
Any help would be greatly appreciated! I wanted to do as much troubleshooting on my own as I could before posting here, but ive wasted too much time, and need help. Thanks!