diff options
author | Jesse Luehrs <doy@tozt.net> | 2014-10-09 18:51:53 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2014-10-09 18:52:18 -0400 |
commit | bfa5d4aeeb976ebf7718e27cd4d82f930cbdbece (patch) | |
tree | 31213dcf79a60e0ab7af2a63c9a8db8c42ba8678 | |
parent | 74e56d8c86ab7e1e373dbc5d2ed684a7094e316e (diff) | |
download | nes-snake-bfa5d4aeeb976ebf7718e27cd4d82f930cbdbece.tar.gz nes-snake-bfa5d4aeeb976ebf7718e27cd4d82f930cbdbece.zip |
move snake drawing to the background layer
since we can only have 8 sprites per scanline and 64 sprites total
this implementation doesn't erase old tiles yet
-rw-r--r-- | main.s | 61 |
1 files changed, 52 insertions, 9 deletions
@@ -43,6 +43,8 @@ frame_count DB rand_state DB rand_out DB apple INSTANCEOF point +vram_addr_low DB +vram_addr_high DB .ENDE ; }}} ; }}} @@ -148,23 +150,64 @@ NMI: PHA LDA game_state - BEQ reset_sprites + BEQ reset_sprites_jmp CMP #$01 BEQ draw_game - CMP #$02 - BEQ end_nmi + JMP end_nmi +reset_sprites_jmp: + JMP reset_sprites draw_game: + LDA #$20 + STA vram_addr_high + LDA #$E0 + STA vram_addr_low + LDY #$01 LDA (head), y - STA $0200 - LDA #$00 - STA $0201 - LDA #$00 - STA $0202 + SEC + SBC #$35 + LSR + LSR + LSR + TAX +- CLC + LDA vram_addr_low + ADC #$20 + STA vram_addr_low + LDA vram_addr_high + ADC #$00 + STA vram_addr_high + DEX + BNE - + LDY #$00 LDA (head), y - STA $0203 + SEC + SBC #$40 + LSR + LSR + LSR + CLC + ADC #$08 + ADC vram_addr_low + STA vram_addr_low + LDA vram_addr_high + ADC #$00 + STA vram_addr_high + + LDA vram_addr_high + STA $2006 + LDA vram_addr_low + STA $2006 + + LDA #$00 + STA $2007 + + LDA #$20 + STA $2006 + LDA #$00 + STA $2006 LDA apple.y STA $0204 |