Sorry if it's a little long, I must be missing something pretty basic somewhere...
Code:
OAM= $0200; zero page.enum $0000temp2000.dsb 1temp2001.dsb 1do_dma.dsb 1do_drawing.dsb 1do_ppu_reg.dsb 1sleeping.dsb 1x_scroll.dsb 1y_scroll.dsb 1.ende; ines header.db "NES",$1a.db $01.db $01.db $00.dsb 9,$00.base $c000wait_vblank:inc sleeping-lda sleepingbne -rtsreset: sei cld ldx #$40 stx $4017 ldx #$ff txs inx stx $2000 stx $2001 stx $4010 bit $2002 ; wait for first vblank- bit $2002 bpl -clear_mem:lda #0 sta $0000,x sta $0100,x sta $0300,x sta $0400,x sta $0500,x sta $0600,x sta $0700,x lda #$fe sta $0200,x inx bne clear_mem; audio/mapper init ; wait for second vblank- bit $2002 bpl -load_palettes:lda $2002lda #$3fsta $2006ldx #$00stx $2006 - lda palette,xsta $2007inxcpx #$20bne -lda #%10010000 sta temp2000 lda #%00011110 sta temp2001main_loop:lda #1sta do_drawingsta do_dmasta do_ppu_regjsr wait_vblank; update joypad datajmp main_loopdraw_routine:lda #$22sta OAM+0sta OAM+1sta OAM+3lda #0sta OAM+2rtsnmi: pha txa pha tya pha lda do_dma beq + lda #$00 sta $2003 lda #>OAMsta $4014+lda do_drawing beq + bit $2002 jsr draw_routine dec do_drawing+lda do_ppu_reg beq + lda temp2001 sta $2001 lda temp2000 sta $2000bit $2002lda x_scroll sta $2005 lda y_scroll sta $2005+; music engine lda #0 sta sleeping pla tay pla tax plairq: rti; bg/sprite palette datapalette:.db $37,$27,$17,$0F,$37,$1A,$29,$0F,$37,$10,$07,$20,$16,$00,$10,$20.db $37,$18,$26,$0F,$37,$1C,$37,$0F,$37,$15,$27,$0F,$37,$18,$27,$20; interrupt vectors.org $fffa.dw nmi.dw reset.dw irq; chr-rom.incbin "tiles.chr"
Statistics: Posted by nescoda86 — Tue Feb 13, 2024 3:01 pm — Replies 0 — Views 36