From fbaec2928b43dd91dde9124debb4c1bec8f4ac1e Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 14 Apr 2024 23:30:41 -0400 Subject: [PATCH] keen: more or less have things fixed for 128x80 grid now --- games/keen/draw_tilemap.s | 4 +++- games/keen/level1.s | 9 +-------- games/keen/level1_enemies.s | 21 ++++++++++++++++++--- games/keen/level1_items.s | 36 +++++++++++++++++++++++++++++++----- games/keen/move_keen.s | 36 +++++++++++++++++++++++++++++------- 5 files changed, 82 insertions(+), 24 deletions(-) diff --git a/games/keen/draw_tilemap.s b/games/keen/draw_tilemap.s index a8269dd2..4fddee97 100644 --- a/games/keen/draw_tilemap.s +++ b/games/keen/draw_tilemap.s @@ -203,9 +203,11 @@ tilemap_count_smc: done_tilemap_subset: + ;========================== ; activate yorps + ;========================== - ldx NUM_ENEMIES + ldx #NUM_ENEMIES beq done_yorps clc diff --git a/games/keen/level1.s b/games/keen/level1.s index f43f83d5..bfa74fff 100644 --- a/games/keen/level1.s +++ b/games/keen/level1.s @@ -232,10 +232,7 @@ skip_end_sound: level1_gameover: - ; mars plays this - -; ldy #SFX_GAMEOVERSND -; jsr play_sfx + ; mars plays the sound lda #GAME_OVER sta LEVEL_OVER @@ -252,10 +249,6 @@ level1_levelover: ; includes ;========================== - ; level graphics -;level1_bg_zx02: -; .incbin "graphics/level1_bg.gr.zx02" - .include "text_print.s" .include "gr_offsets.s" .include "gr_fast_clear.s" diff --git a/games/keen/level1_enemies.s b/games/keen/level1_enemies.s index 7cc7a227..2d1cdd77 100644 --- a/games/keen/level1_enemies.s +++ b/games/keen/level1_enemies.s @@ -35,9 +35,14 @@ enemy_is_out: lda enemy_data_tiley,X adc #2 ; point below feet - adc #>big_tilemap + tay + lda tilemap_lookup_high,Y +; adc #>big_tilemap sta load_foot1_smc+2 + lda tilemap_lookup_low,Y + sta load_foot1_smc+1 + ldy enemy_data_tilex,X load_foot1_smc: @@ -128,9 +133,14 @@ enemy_facing_right: clc lda enemy_data_tiley,X adc #1 ; point to feet + tay - adc #>big_tilemap +; adc #>big_tilemap + lda tilemap_lookup_high,Y sta load_right_foot_smc+2 + lda tilemap_lookup_low,Y + sta load_right_foot_smc+1 + ldy enemy_data_tilex,X iny ; to the right @@ -182,8 +192,13 @@ enemy_facing_left: lda enemy_data_tiley,X adc #1 ; point to feet - adc #>big_tilemap + tay + +; adc #>big_tilemap + lda tilemap_lookup_high,Y sta load_left_foot_smc+2 + lda tilemap_lookup_low,Y + sta load_left_foot_smc+1 ldy enemy_data_tilex,X dey ; look to the left diff --git a/games/keen/level1_items.s b/games/keen/level1_items.s index 5bdff9de..c20aedfb 100644 --- a/games/keen/level1_items.s +++ b/games/keen/level1_items.s @@ -13,13 +13,20 @@ check_items: ; if X==0, check TILEX and TILEX+1 ; if X==1, check TILEX+1 - clc - lda KEEN_TILEY - adc #>big_tilemap + ldx KEEN_TILEY + + lda tilemap_lookup_high,X sta INH - lda KEEN_TILEX + lda tilemap_lookup_low,X + ora KEEN_TILEX sta INL +; clc +; adc #>big_tilemap +; sta INH +; lda KEEN_TILEX +; sta INL + lda KEEN_X bne check_head_tilex1 @@ -50,7 +57,26 @@ check_head_tilex1: ;======================== ; check feet check_feet: - inc INH ; point to next row +; inc INH ; point to next row + + lda INL ; blurgh much longer + clc + adc #$80 + sta INL + lda #$0 + adc INH + sta INH + + +; won't work, maybe not faster +; lda INL +; eor #$80 +; sta INL +; asl +; adc INH +; sta INH + + dec INL ; restore tile pointer lda KEEN_X diff --git a/games/keen/move_keen.s b/games/keen/move_keen.s index 11e2755a..b4140b57 100644 --- a/games/keen/move_keen.s +++ b/games/keen/move_keen.s @@ -180,12 +180,21 @@ keen_check_head: sec lda KEEN_TILEY sbc #1 - adc #>big_tilemap + + tay + lda tilemap_lookup_high,Y sta INH - lda #0 + lda tilemap_lookup_low,Y sta INL + +; adc #>big_tilemap +; sta INH +; lda #0 +; sta INL + ldy KEEN_TILEX + lda KEEN_X bne collide_head_r collide_head_l: @@ -223,12 +232,20 @@ collide_left_right: clc lda KEEN_TILEY - adc #1 - adc #>big_tilemap + adc #1 ; look at feet + + tay + lda tilemap_lookup_high,Y sta INH - lda KEEN_TILEX + lda tilemap_lookup_low,Y + ora KEEN_TILEX sta INL +; adc #>big_tilemap +; sta INH +; lda KEEN_TILEX +; sta INL + lda KEEN_DIRECTION beq done_keen_collide ; can this happen? @@ -365,9 +382,14 @@ check_falling: lda KEEN_TILEY adc #2 ; point below feet - adc #>big_tilemap + tax + lda tilemap_lookup_high,X + +; adc #>big_tilemap sta INH - lda #0 + + lda tilemap_lookup_low,X +; lda #0 sta INL ldy KEEN_TILEX