diff --git a/plat.nes b/plat.nes index d82b383..9cc6a38 100644 Binary files a/plat.nes and b/plat.nes differ diff --git a/plat.s b/plat.s index 2d17f4c..8757f94 100644 --- a/plat.s +++ b/plat.s @@ -365,6 +365,8 @@ main: adc #1 sta frame_counter + sta scroll_x + jsr controller jsr movement @@ -392,6 +394,8 @@ draw_player: cmp #0 bne :+ lda player_pos_x + sec + sbc scroll_x sta oam + (4 * 1) + 3 sta oam + (4 * 3) + 3 sec @@ -401,6 +405,8 @@ draw_player: jmp :++ : lda player_pos_x + sec + sbc scroll_x sta oam + (4 * 0) + 3 sta oam + (4 * 2) + 3 sec @@ -753,8 +759,16 @@ setup_background: dey bne :-- + lda #0 + sta var_o + @nametable_start: lda $2002 - lda #$20 + lda #$24 + ldx var_o + cpx #1 + bne :+ + lda #$24 + : sta $2006 lda #$00 sta $2006 @@ -931,6 +945,14 @@ setup_background: cpy #8 bne :-- + ldx var_o + cpx #$20 + bne :+ + ldx #$24 + stx var_o + jmp @nametable_start + : + rts mul_x: @@ -1072,8 +1094,6 @@ downward_collision_check: sta var_n @begin_check: lda player_pos_x - clc - adc scroll_x ldx var_n cpx #0 bne :+ @@ -1143,8 +1163,6 @@ upward_collision_check: sta var_n @begin_check: lda player_pos_x - clc - adc scroll_x ldx var_n cpx #0 bne :+ @@ -1215,8 +1233,6 @@ right_collision_check: sta var_n @begin_check: lda player_pos_x - clc - adc scroll_x ; divide by 16 clc adc #8 @@ -1286,8 +1302,6 @@ left_collision_check: sta var_n @begin_check: lda player_pos_x - clc - adc scroll_x ; divide by 16 sec sbc #8