|
9 | 9 | .endproc
|
10 | 10 |
|
11 | 11 | .proc nmi_handler
|
| 12 | + lda #$00 |
| 13 | + sta OAM_ADDR |
| 14 | + lda #02 |
| 15 | + sta OAM_DMA |
| 16 | + |
| 17 | + lda #%10010000 ;enable nmi, sprites table 0 bg table 1 |
| 18 | + sta PPU_CTRL |
| 19 | + lda #%00011110 ;enable sprites bg no clip left |
| 20 | + sta PPU_MASK |
| 21 | + lda #$00 |
| 22 | + sta PPU_SCROLL |
| 23 | + sta PPU_SCROLL |
12 | 24 | rti
|
13 | 25 | .endproc
|
14 | 26 |
|
@@ -53,28 +65,72 @@ load_palettes:
|
53 | 65 | cpx #$20
|
54 | 66 | bne load_palettes
|
55 | 67 |
|
| 68 | +;; background |
| 69 | + lda PPU_STATUS |
| 70 | + lda #$20 |
| 71 | + sta PPU_ADDR |
| 72 | + lda #$00 |
| 73 | + sta PPU_ADDR |
| 74 | + ldx #$00 |
| 75 | +load_background: |
| 76 | + lda background, x |
| 77 | + sta PPU_DATA |
| 78 | + inx |
| 79 | + cpx #$80 |
| 80 | + bne load_background |
| 81 | + |
| 82 | +;; attribute |
| 83 | + lda PPU_STATUS |
| 84 | + lda #$23 |
| 85 | + sta PPU_ADDR |
| 86 | + lda #$C0 |
| 87 | + sta PPU_ADDR |
| 88 | + ldx #$00 |
| 89 | +load_attributes: |
| 90 | + lda attribute, x |
| 91 | + sta PPU_DATA |
| 92 | + inx |
| 93 | + cpx #$08 |
| 94 | + bne load_attributes |
| 95 | + |
| 96 | + lda #%10010000 ;; enable nmi, sprites from pt 0, bg from pt 1 |
| 97 | + sta PPU_CTRL |
| 98 | + lda #%00011110 ;; enable sprites, bg |
| 99 | + sta PPU_MASK |
| 100 | + |
56 | 101 |
|
57 | 102 | jmp main
|
58 | 103 | .endproc
|
59 | 104 |
|
60 | 105 |
|
61 | 106 | .proc main
|
62 |
| - store_double $3F00, PPU_ADDR |
63 |
| - lda #$11 |
64 |
| - sta PPU_DATA |
65 |
| - lda #$1E |
66 |
| - sta PPU_MASK |
67 | 107 | self_jump
|
68 | 108 | .endproc
|
69 | 109 |
|
70 | 110 | .segment "RODATA"
|
71 | 111 | palettes:
|
72 |
| - .byte $0F, $11, $21, $18 ;; bg palette |
73 |
| - .byte $0F, $00, $00, $00 |
74 |
| - .byte $0F, $00, $00, $00 |
75 |
| - .byte $0F, $00, $00, $00 |
| 112 | + .byte $22, $29, $1A, $0F ;; bg palette |
| 113 | + .byte $22, $36, $17, $0F |
| 114 | + .byte $22, $30, $21, $0F |
| 115 | + .byte $22, $27, $17, $0F |
76 | 116 | .byte $0F, $20, $21, $15 ;; sprite palette
|
77 | 117 | .byte $0F, $00, $00, $00
|
78 | 118 | .byte $0F, $00, $00, $00
|
79 | 119 | .byte $0F, $00, $00, $00
|
80 | 120 |
|
| 121 | +background: |
| 122 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 123 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 124 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 125 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 126 | + .byte $24,$24,$24,$24,$24,$24,$45,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 127 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 128 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$44,$24,$24,$24,$24 |
| 129 | + .byte $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 |
| 130 | + |
| 131 | +attribute: |
| 132 | + .byte %00000000, %00010000, %01010000, %00010000, %00000000, %00000000, %00000000, %00110000 |
| 133 | + .byte $24,$24,$24,$24, $47,$47,$24,$24 ,$47,$47,$47,$47, $47,$47,$24,$24, $24,$24,$24,$24 ,$24,$24,$24,$24, $24,$24,$24,$24, $55,$56,$24,$24 |
| 134 | + |
| 135 | +.segment "CHR" |
| 136 | + .incbin "mario.chr" |
0 commit comments