• entries
    104
  • comments
    101
  • views
    255270

A C64 Game - Step 75

Sign in to follow this  
Endurion

1581 views

And more! Now the executable hit the load barrier, so Exomizer is the only way to go onwards (before it was optional). Added a new waterfall char with the same effect as low water.

step75.png

At the same location the other char is initiated we add this:

          ldx #0
-
          lda $F800 + 143 * 8,x
          sta ANIM_TILE2_BYTES,x
          sta ANIM_TILE2_BYTES + 8,x

          inx
          dey
          cpx #8
          bne -


At the location where we animate the first char we add this. Note that the second sta at $c000 is for the second char set.

          ;animate water tile
          lda DELAYED_GENERIC_COUNTER
          and #$03
          bne +

          inc ANIM_POS
          lda ANIM_POS
          and #$07
          tay

          lda ANIM_TILE_BYTES,y
          sta $F800 + 111 * 8
          sta $C000 + 111 * 8
          lda ANIM_TILE_BYTES + 8,y
          sta $F800 + 111 * 8 + 1
          sta $C000 + 111 * 8 + 1
          sty PARAM1
          lda #7
          sec
          sbc PARAM1
          tay
          ldx #0
-
          lda ANIM_TILE2_BYTES,y
          sta $F800 + 143 * 8,x
          sta $C000 + 143 * 8,x

          inx
          iny
          cpx #8
          bne -

+


And finally, the actual check for the water char (143) is enhanced:

          ;check if we're in water
          ldy SPRITE_CHAR_POS_Y,x
          lda SCREEN_LINE_OFFSET_TABLE_LO,y
          sta ZEROPAGE_POINTER_1
          lda SCREEN_BACK_LINE_OFFSET_TABLE_HI,y
          sta ZEROPAGE_POINTER_1 + 1
          lda SPRITE_CHAR_POS_X,x
          tay
          lda (ZEROPAGE_POINTER_1),y
          cmp #111
          beq .NextObject
          cmp #143
          beq .NextObject


Another enhancement, due to packing. Now that the packer takes care of putting the sprites and characters sets at their target location we can comment them out (plus their copy routines).
With ACME or the C64 Studio assembler you do it like this:

!ifndef CRUNCHED {
CHARSET
          !binary "j.chr"
CHARSET_2
          !binary "j2.chr"

SPRITES
          !binary "j.spr"
END_OF_FILE
}


That's all there is to this step, have fun!

step75.zip


Previous Step Next Step

 
Sign in to follow this  


1 Comment


Recommended Comments

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