A C64 Game - Step 75

posted in New Old Things
Published November 03, 2012
Advertisement

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.



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 #111beq .NextObject
          cmp #143beq .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


Previous Entry A C64 Game - Step 74
2 likes 1 comments

Comments

Programming020195BRook
Keep them coming!!
November 04, 2012 10:12 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement