Hey Guys:
I'm currently working on a Berzerk / Frenzy port (I did one for the Atari 7800 a while back, and now I'm trying to port it here).
But, I'm running into trouble. In Frenzy, if you shoot part of a wall it gets removed. This means I need to replace the tile with another one depending on what section gets shot. This part is working. However, being that you cannot replace a tile outside of vblank (or shut the screen off which I cannot do), I need to wait for vblank to check if all of the shots (2 player shots and up to 5 robot shots) have hit a section a wall. This means running a routine up to 7 times to read tiles and replace if necessary. I am also doing the DMA transfer of sprite data during this time.
As you can probably guess, I am running out fo vblank time. At least I think that is what is happening; the more shots that are out, the more screen 'jumping' I get. If I just have the player shoot one shot (or most of the time two), the screen is solid as can be.
This discourages me, because I still haven't added the routines for the player / playfield collision detection yet, nor the robot / playfield collision detection. And from what I understand, this can also only be done during vblank because reading from $2007 outside of vblank seems to cause screen jumping as well.
NOTE: I am not using any mapper (i.e. mapper 0)... I'd like to be able to make a cart of this when I have completed it.
EDIT: Video of it in action: https://www.youtube.com/watch?v=547dEHM ... e=youtu.be
Can anyone think of any suggestions? I'm new to NES development, but I've done many games for the Atari 7800 so I am not new to game programming...
Thanks!
Bob
I'm currently working on a Berzerk / Frenzy port (I did one for the Atari 7800 a while back, and now I'm trying to port it here).
But, I'm running into trouble. In Frenzy, if you shoot part of a wall it gets removed. This means I need to replace the tile with another one depending on what section gets shot. This part is working. However, being that you cannot replace a tile outside of vblank (or shut the screen off which I cannot do), I need to wait for vblank to check if all of the shots (2 player shots and up to 5 robot shots) have hit a section a wall. This means running a routine up to 7 times to read tiles and replace if necessary. I am also doing the DMA transfer of sprite data during this time.
As you can probably guess, I am running out fo vblank time. At least I think that is what is happening; the more shots that are out, the more screen 'jumping' I get. If I just have the player shoot one shot (or most of the time two), the screen is solid as can be.
This discourages me, because I still haven't added the routines for the player / playfield collision detection yet, nor the robot / playfield collision detection. And from what I understand, this can also only be done during vblank because reading from $2007 outside of vblank seems to cause screen jumping as well.
NOTE: I am not using any mapper (i.e. mapper 0)... I'd like to be able to make a cart of this when I have completed it.
EDIT: Video of it in action: https://www.youtube.com/watch?v=547dEHM ... e=youtu.be
Can anyone think of any suggestions? I'm new to NES development, but I've done many games for the Atari 7800 so I am not new to game programming...
Thanks!
Bob