diff --git a/plat.nes b/plat.nes index af23c2d..56e6e43 100644 Binary files a/plat.nes and b/plat.nes differ diff --git a/plat.s b/plat.s index 9e65f34..e2b4ac2 100644 --- a/plat.s +++ b/plat.s @@ -355,6 +355,7 @@ player_status: .res 1 ; 76543210 | 0: facing (0 right, 1 left) ; | 2: nametable Y ; | 7: talking horizontal_speed: .res 1 +camera_speed: .res 1 cursor_x: .res 1 cursor_y: .res 1 @@ -413,17 +414,67 @@ main: jmp @loop move_camera: - lda #%1 + jmp @no + lda player_pos_x clc - adc scroll_x + adc #240 cmp scroll_x - sta scroll_x - bcs :+ - lda scroll_nmt - eor #%00000001 - sta scroll_nmt + bmi :++ + lda #1 + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcs :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : : rts + @no: + + + jsr btn_select + cmp #0 + beq :+ + lda #%11111111 + sta camera_speed + jmp @end + : + + jsr btn_start + cmp #0 + beq :+ + lda #1 + sta camera_speed + : + @end: + + + lda camera_speed + bmi @left + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcs :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : + rts + @left: + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcc :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : + rts draw_player: lda player_pos_y @@ -595,38 +646,25 @@ draw_player: rts init_objects: - lda #0 - sta var_n - ldx #0 - : - lda var_n - clc - adc #8 - sta var_n - - sta player_pos_y, X ; Set Y position - sta player_pos_x, X ; Set X position - - txa - lsr - lsr - sta oam+1, X - - inx - inx - inx - inx - cpx #(8*4) - bne :- + lda #96 + sta player_pos_x ; Set X position + lda #128 + sta player_pos_y ; Set Y position lda #0 sta player_vel_x sta player_vel_y sta player_status + sta scroll_nmt + lda #1 + sta player_nmt_x lda #%00101000 sta horizontal_speed + lda #0 + sta camera_speed + rts draw: