Advertisement
PokemonMaster124

NES Game

Nov 29th, 2022
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. .inesprg 1 ; 1 bank of PRG data
  2. .ineschr 1 ; 1 bank of CHR data
  3. .inesmap 0 ; mapper 0
  4. .inesmir 1 ; VRAM mirroring bank, Idk what that means, so it's set to 1
  5.  
  6. .rsset $0000
  7. .include "constants.asm"
  8. .include "important.asm"
  9. .include "macros.asm"
  10.  
  11. ; Bank 0 starts at $8000, where our main code will go
  12. .bank 0
  13. .org $8000
  14.  
  15. RESET:
  16. lda #%10000000
  17. sta PPU_CTRL
  18. lda #%00011000
  19. sta PPU_MASK
  20.  
  21. lda #1
  22. sta ballDown
  23. sta ballRight
  24.  
  25. lda #0
  26. sta ballUp
  27. sta ballLeft
  28.  
  29. LoadPalette:
  30. lda PPU_STATUS
  31. lda #$3F
  32. sta PPU_ADDR
  33. lda #$00
  34. sta PPU_ADDR
  35. ldx #$00
  36. LoopPalette:
  37. lda MainPalette, x
  38. sta PPU_DATA
  39. inx
  40. cpx #$20
  41. bne LoopPalette
  42. LoadSprites:
  43. ldx #$00
  44. LoopSprites:
  45. lda Sprites, x
  46. sta $0200, x
  47. inx
  48. cpx #44
  49. bne LoopSprites
  50.  
  51. readjoy:
  52. lda #$01
  53. sta JOYPAD1
  54. sta buttons1
  55. lsr a
  56. sta JOYPAD1
  57. loop:
  58. lda JOYPAD1
  59. lsr a
  60. rol buttons1
  61. bcc loop
  62. rts
  63.  
  64. Forever:
  65. jmp Forever
  66.  
  67. NMI:
  68. lda #$00
  69. sta OAM_ADDR
  70. lda #$02
  71. sta OAM_DMA
  72.  
  73. jsr readjoy
  74. jsr UpPressed1
  75. jsr DownPressed1
  76. jsr UpPressed2
  77. jsr DownPressed2
  78.  
  79. jsr MoveBall
  80.  
  81. rti
  82.  
  83. UpPressed1:
  84. Test_Button buttons1, BUTTON_UP
  85. beq UpDone1
  86. ldx $0214
  87. cpx #$08
  88. beq UpDone1
  89. dec $0204
  90. dec $0208
  91. dec $020C
  92. dec $0210
  93. dec $0214
  94. UpDone1:
  95. rts
  96. DownPressed1:
  97. Test_Button buttons1, BUTTON_DOWN
  98. beq DownDone1
  99. ldx $0214
  100. cpx #$E0
  101. beq DownDone1
  102. inc $0204
  103. inc $0208
  104. inc $020C
  105. inc $0210
  106. inc $0214
  107. DownDone1:
  108. rts
  109. UpPressed2:
  110. Test_Button buttons2, BUTTON_UP
  111. beq UpDone2
  112. dec $0218
  113. dec $021C
  114. dec $0220
  115. dec $0224
  116. dec $0228
  117. UpDone2:
  118. rts
  119. DownPressed2:
  120. Test_Button buttons2, BUTTON_DOWN
  121. beq DownDone2
  122. inc $0218
  123. inc $021C
  124. inc $0220
  125. inc $0224
  126. inc $0228
  127. DownDone2:
  128. rts
  129.  
  130. MoveBall:
  131. lda $0200
  132. adc ballDown
  133. sbc ballUp
  134. sta $0200
  135. ldx $0200
  136. cpx #$E0
  137. beq FlipBallUp
  138. cpx #$08
  139. beq FlipBallDown
  140.  
  141. lda $0203
  142. adc ballRight
  143. sbc ballLeft
  144. sta $0203
  145. ldx $0203
  146. cpx #$F8
  147. beq FlipBallLeft
  148. cpx #$08
  149. beq FlipBallRight
  150.  
  151. rts
  152.  
  153. FlipBallUp:
  154. lda #0
  155. sta ballDown
  156. lda #1
  157. sta ballUp
  158. rts
  159.  
  160. FlipBallDown:
  161. lda #1
  162. sta ballDown
  163. lda #0
  164. sta ballUp
  165. rts
  166.  
  167. FlipBallLeft:
  168. lda #0
  169. sta ballRight
  170. lda #1
  171. sta ballLeft
  172. rts
  173.  
  174. FlipBallRight:
  175. lda #1
  176. sta ballRight
  177. lda #0
  178. sta ballLeft
  179. rts
  180.  
  181.  
  182. ; $E000 is where we put our color palette and our sprites
  183. .bank 1
  184. .org $E000
  185. MainPalette:
  186. .db $0F,$20,$10,$00, $0F,$0F,$0F,$0F, $0F,$0F,$0F,$0F, $0F,$0F,$0F,$0F ; Background Palette
  187. .db $0F,$1C,$2B,$3A, $0F,$20,$10,$00, $0F,$0F,$0F,$0F, $0F,$0F,$0F,$0F ; Sprite Palette
  188. Sprites:
  189. .include "sprites.asm"
  190.  
  191. ; Bank 1 starts at $FFFA, where our interrupt vectors will go
  192. .org $FFFA
  193. .dw NMI ; NMI vector
  194. .dw RESET ; Reset vector
  195. .dw 0 ; IRQ vector
  196.  
  197. ; Bank 2 starts at $0000, where our background and sprite data will go
  198. .bank 2
  199. .org $0000
  200. .incbin "graphics.chr"
  201.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement