From b6202fa141c0b46b795803efaa24ba8fa6b97609 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 10 Sep 2024 00:06:47 -0400 Subject: [PATCH] climb: more progress can go to next scene, also flame looks better --- games/peasant_mini/cliff/Makefile | 2 +- games/peasant_mini/cliff/climb.s | 124 +++++++++++------- games/peasant_mini/cliff/climbing_sprites.s | 6 +- games/peasant_mini/cliff/draw_peasant_climb.s | 6 +- games/peasant_mini/cliff/move_peasant.s | 4 +- games/peasant_mini/cliff/move_peasant_climb.s | 9 +- games/peasant_mini/cliff/sprites/Makefile | 42 ++++-- .../cliff/sprites/climb_flame_sprites.png | Bin 0 -> 5919 bytes games/peasant_mini/cliff/walking_sprites.s | 2 +- 9 files changed, 124 insertions(+), 71 deletions(-) create mode 100644 games/peasant_mini/cliff/sprites/climb_flame_sprites.png diff --git a/games/peasant_mini/cliff/Makefile b/games/peasant_mini/cliff/Makefile index c48ea89d..dc3d4756 100644 --- a/games/peasant_mini/cliff/Makefile +++ b/games/peasant_mini/cliff/Makefile @@ -85,7 +85,7 @@ climbing_sprites: climbing_sprites.o ld65 -o climbing_sprites climbing_sprites.o -C $(LINKER_SCRIPTS)/apple2_a000.inc climbing_sprites.o: climbing_sprites.s \ - sprites/flame_sprites.inc \ + sprites/climb_flame_sprites.inc \ sprites/climb_sprites.inc ca65 -o climbing_sprites.o climbing_sprites.s -l climbing_sprites.lst diff --git a/games/peasant_mini/cliff/climb.s b/games/peasant_mini/cliff/climb.s index a9f261a5..493aebc4 100644 --- a/games/peasant_mini/cliff/climb.s +++ b/games/peasant_mini/cliff/climb.s @@ -38,6 +38,7 @@ cliff_climb: sta PEASANT_STEPS sta FLAME_COUNT sta CLIMB_COUNT + sta MAP_LOCATION lda #10 sta PEASANT_X @@ -49,49 +50,8 @@ cliff_climb: sta HGR_PAGE jsr hgr_make_tables - ;======================== - ; Load Priority graphics - ;======================== - - lda #priority_data - sta ZX0_src+1 - - lda #$20 ; temporarily load to $2000 - - jsr full_decomp - - ; copy to $400 - - jsr gr_copy_to_page1 - - - - ;============================= - - - ;========================== - ; Load Background Graphics - ;=========================== - -load_image: - - lda #bg_data - sta ZX0_src+1 - - - lda #$20 - - jsr full_decomp - - jsr hgr_copy ; copy to page2 - - bit PAGE2 - + jsr load_graphics ;======================== ; Load Peasant Sprites @@ -389,7 +349,7 @@ flame_good: jsr check_keyboard lda LEVEL_OVER - bne done_cliff + bne top_cliff ; delay @@ -399,11 +359,67 @@ flame_good: jmp game_loop -done_cliff: +top_cliff: + inc MAP_LOCATION + jsr load_graphics + lda #0 - sta WHICH_LOAD + sta LEVEL_OVER + + jmp game_loop + + +load_graphics: + + + + ;======================== + ; Load Priority graphics + ;======================== + + ldx MAP_LOCATION + lda priority_data_l,X + sta ZX0_src + lda priority_data_h,X + sta ZX0_src+1 + + lda #$20 ; temporarily load to $2000 + + jsr full_decomp + + ; copy to $400 + + jsr gr_copy_to_page1 + + + + ;============================= + + + ;========================== + ; Load Background Graphics + ;=========================== + + ldx MAP_LOCATION + lda bg_data_l,X + sta ZX0_src + lda bg_data_h,X + sta ZX0_src+1 + + + lda #$20 + + jsr full_decomp + + jsr hgr_copy ; copy to page2 + + bit PAGE2 + rts + + + .include "wait.s" .include "hgr_tables.s" @@ -429,14 +445,28 @@ done_cliff: .include "gr_offsets.s" -bg_data: +priority_data_l: + .byte priority_cliff1,>priority_cliff2,>priority_cliff3 + +bg_data_l: + .byte bg_cliff1,>bg_cliff2,>bg_cliff3 + +bg_cliff1: .incbin "cliff_graphics/cliff_base.hgr.zx02" +bg_cliff2: .incbin "cliff_graphics/cliff2.hgr.zx02" +bg_cliff3: .incbin "cliff_graphics/cliff3.hgr.zx02" -priority_data: +priority_cliff1: .incbin "cliff_graphics/cliff_base_priority.zx02" +priority_cliff2: .incbin "cliff_graphics/cliff2_priority.zx02" +priority_cliff3: .incbin "cliff_graphics/cliff3_priority.zx02" sprites: diff --git a/games/peasant_mini/cliff/climbing_sprites.s b/games/peasant_mini/cliff/climbing_sprites.s index 9c14757d..07158dd4 100644 --- a/games/peasant_mini/cliff/climbing_sprites.s +++ b/games/peasant_mini/cliff/climbing_sprites.s @@ -5,7 +5,7 @@ climb_sprites_xsize: .byte 3, 3, 3, 3 ; down ; 12 flame_sprites_xsize: .byte 2, 2, 2 ; right ; 16 - .byte 2, 2, 2 ; left ; 19 + .byte 3, 3, 3 ; left ; 19 .byte 2, 2, 2 ; up ; 22 .byte 2, 2, 2 ; down ; 25 fall_sprites_xsize: @@ -102,7 +102,7 @@ climb_mask_data_h: .byte >climb_u0_mask flame_mask_data_h: .byte >flame_r0_mask,>flame_r1_mask,>flame_r2_mask - .byte >flame_l0_mask,>flame_r1_mask,>flame_l2_mask + .byte >flame_l0_mask,>flame_l1_mask,>flame_l2_mask .byte >flame_u0_mask,>flame_u1_mask,>flame_u2_mask .byte >flame_d0_mask,>flame_d1_mask,>flame_d2_mask fall_mask_data_h: @@ -115,4 +115,4 @@ splat_mask_data_h: .include "sprites/climb_sprites.inc" - .include "sprites/flame_sprites.inc" + .include "sprites/climb_flame_sprites.inc" diff --git a/games/peasant_mini/cliff/draw_peasant_climb.s b/games/peasant_mini/cliff/draw_peasant_climb.s index f503e404..05240d8c 100644 --- a/games/peasant_mini/cliff/draw_peasant_climb.s +++ b/games/peasant_mini/cliff/draw_peasant_climb.s @@ -59,8 +59,12 @@ done_draw_peasant: peasant_climb_offsets: .byte 8, 0, 4, 12 +; note, when climbing, flame is on right for both up and down +; left seems to be same as up + peasant_flame_offsets: - .byte 22,16,19,25 +; .byte 22,16,19,25 + .byte 25,16,19,25 ; note: animation actually 5 frames diff --git a/games/peasant_mini/cliff/move_peasant.s b/games/peasant_mini/cliff/move_peasant.s index a98f7226..d9c9dd42 100644 --- a/games/peasant_mini/cliff/move_peasant.s +++ b/games/peasant_mini/cliff/move_peasant.s @@ -134,7 +134,7 @@ peasant_y_toobig: jsr move_map_south - lda #45 ; new X location + lda #45 ; new Y location jmp done_movey @@ -144,7 +144,7 @@ peasant_y_negative: jsr move_map_north - lda #160 ; new X location + lda #160 ; new Y location jmp done_movey diff --git a/games/peasant_mini/cliff/move_peasant_climb.s b/games/peasant_mini/cliff/move_peasant_climb.s index 5d72bc22..02706d04 100644 --- a/games/peasant_mini/cliff/move_peasant_climb.s +++ b/games/peasant_mini/cliff/move_peasant_climb.s @@ -151,7 +151,7 @@ do_move_peasant_y: ;============================ peasant_y_toobig: - jsr move_map_south +; jsr move_map_south lda #12 ; new Y location @@ -161,9 +161,12 @@ peasant_y_toobig: ;============================ peasant_y_negative: - jsr move_map_north +; jsr move_map_north - lda #160 ; new Y location + lda #$FF + sta LEVEL_OVER + + lda #158 ; new Y location jmp done_movey diff --git a/games/peasant_mini/cliff/sprites/Makefile b/games/peasant_mini/cliff/sprites/Makefile index 29dec3cc..80aed824 100644 --- a/games/peasant_mini/cliff/sprites/Makefile +++ b/games/peasant_mini/cliff/sprites/Makefile @@ -1,6 +1,6 @@ HGR_SPRITE = ../../../../utils/hgr-utils/hgr_make_sprite -all: enemy_sprites.inc walk_sprites.inc \ +all: enemy_sprites.inc walk_sprites.inc climb_flame_sprites.inc \ climb_sprites.inc robe_sprites.inc flame_sprites.inc enemy_sprites.inc: enemy_sprites.png @@ -72,17 +72,6 @@ climb_sprites.inc: climb_sprites.png $(HGR_SPRITE) -l climb_s1_sprite climb_sprites.png 238 121 258 142 >> climb_sprites.inc $(HGR_SPRITE) -l climb_s1_mask climb_sprites.png 238 145 258 166 >> climb_sprites.inc - - - - - - - - - - - robe_sprites.inc: robe_sprites.png $(HGR_SPRITE) -l robe_r0_sprite robe_sprites.png 14 32 27 62 > robe_sprites.inc $(HGR_SPRITE) -l robe_r0_mask robe_sprites.png 14 63 27 93 >> robe_sprites.inc @@ -211,7 +200,34 @@ flame_sprites.inc: flame_sprites.png $(HGR_SPRITE) -l flame_d2_sprite flame_sprites.png 154 147 167 156 >> flame_sprites.inc $(HGR_SPRITE) -l flame_d2_mask flame_sprites.png 154 157 167 166 >> flame_sprites.inc +climb_flame_sprites.inc: climb_flame_sprites.png + $(HGR_SPRITE) -l flame_r0_sprite climb_flame_sprites.png 14 25 27 34 > climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_r0_mask climb_flame_sprites.png 14 35 27 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_r1_sprite climb_flame_sprites.png 42 25 55 34 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_r1_mask climb_flame_sprites.png 42 35 55 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_r2_sprite climb_flame_sprites.png 70 25 83 34 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_r2_mask climb_flame_sprites.png 70 35 83 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l0_sprite climb_flame_sprites.png 98 25 118 34 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l0_mask climb_flame_sprites.png 98 35 118 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l1_sprite climb_flame_sprites.png 126 25 146 34 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l1_mask climb_flame_sprites.png 126 35 146 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l2_sprite climb_flame_sprites.png 154 25 174 34 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_l2_mask climb_flame_sprites.png 154 35 174 44 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u0_sprite climb_flame_sprites.png 14 147 27 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u0_mask climb_flame_sprites.png 14 157 27 166 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u1_sprite climb_flame_sprites.png 42 147 55 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u1_mask climb_flame_sprites.png 42 157 55 166 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u2_sprite climb_flame_sprites.png 70 147 83 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_u2_mask climb_flame_sprites.png 70 157 83 166 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d0_sprite climb_flame_sprites.png 98 147 111 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d0_mask climb_flame_sprites.png 98 157 111 166 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d1_sprite climb_flame_sprites.png 126 147 139 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d1_mask climb_flame_sprites.png 126 157 139 166 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d2_sprite climb_flame_sprites.png 154 147 167 156 >> climb_flame_sprites.inc + $(HGR_SPRITE) -l flame_d2_mask climb_flame_sprites.png 154 157 167 166 >> climb_flame_sprites.inc + + clean: rm -f *~ enemy_sprites.inc robe_sprites.inc flame_sprites.inc \ - walk_sprites.inc climb_sprites.inc + walk_sprites.inc climb_sprites.inc climb_flame_sprites.inc diff --git a/games/peasant_mini/cliff/sprites/climb_flame_sprites.png b/games/peasant_mini/cliff/sprites/climb_flame_sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cdf8c62b4d73abf41e6e57f291b0d49b0b591f GIT binary patch literal 5919 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,>walk_d4_mask,>walk_d5_mask flame_mask_data_h: .byte >flame_r0_mask,>flame_r1_mask,>flame_r2_mask - .byte >flame_l0_mask,>flame_r1_mask,>flame_l2_mask + .byte >flame_l0_mask,>flame_l1_mask,>flame_l2_mask .byte >flame_u0_mask,>flame_u1_mask,>flame_u2_mask .byte >flame_d0_mask,>flame_d1_mask,>flame_d2_mask