Jump to content
  • entries
  • comments
  • views

A C64 Game - Step 64

Sign in to follow this  


Bug fixing!

Note how the sprites would flicker about before/after Get Ready?
Fixed. Also, Sam got borked again, esp. during a boss fight. Now that's also fixed.


First part is pretty easy, we disable the screen during build up of the level. Fortunately the VIC allows exactly this. So we add

to disable:

          lda #$0b
          sta VIC_CONTROL_MODE

to enable:

          lda #$1b
          sta VIC_CONTROL_MODE

We already saved all sprite information, but we only restored the first two sprites (the players) and rely on the usual object initialisation for the other objects. Unfortunately some levels start out with more.

So we modify the RemoveGetReady method to restore all sprites:

          ;turn off sprite expansion bits
          ldx #0
          stx VIC_SPRITE_EXPAND_X
          stx VIC_SPRITE_EXPAND_Y
          ;restore all sprite positions and colors
          lda SPRITE_POS_X,x
          sta VIC_SPRITE_X_POS,y
          lda SPRITE_POS_Y,x
          sta VIC_SPRITE_Y_POS,y
          lda SPRITE_COLOR,x
          sta VIC_SPRITE_COLOR,x
          ldy SPRITE_ACTIVE,x
          cpy #0
          bne +

          cpx #8
          bne -
          jmp GameLoop

          lda TYPE_START_SPRITE,y
          sta SPRITE_POINTER_BASE,x
          jmp --

Things can be so easy to fix!


Previous Step Next Step

Sign in to follow this  


Recommended Comments

Thanks again for your continued work on this project!!! I'm finding it so rare to find engaging and fun games unless looking towards Indie Developers.

Share this comment

Link to comment
What in the heck... How did I miss this journal all this time? Endurion, I'm apparently just catching on, but I'm trying to learn 6502 myself. Goal is to make something (first make anything, and then make [i]something[/i]) for NES. So basically, thank you for such a journal as this! :)

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!