Advertisement
Guest User

programik

a guest
Feb 25th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   .inesprg 1    ; Defines the number of 16kb PRG banks
  2.   .ineschr 1    ; Defines the number of 8kb CHR banks
  3.   .inesmap 0    ; Defines the NES mapper
  4.   .inesmir 1    ; Defines VRAM mirroring of banks
  5.  
  6.   .rsset $0000
  7.  
  8. pointerBackgroundLowByte .rs 1
  9. pointerBackgroundHighByte .rs 1
  10.  
  11. shipTile1Y = $0300
  12. shipTile2Y = $0304
  13. shipTile3Y = $0308
  14. shipTile4Y = $030C
  15. shipTile5Y = $0310
  16. shipTile6Y = $0314
  17.  
  18. shipTile1X = $0303
  19. shipTile2X = $0307
  20. shipTile3X = $030B
  21. shipTile4X = $030F
  22. shipTile5X = $0313
  23. shipTile6X = $0317
  24.  
  25.   .bank 0
  26.   .org $C000
  27.  
  28. RESET:
  29.   JSR LoadBackground
  30.   JSR LoadPalettes
  31.   JSR LoadAttributes
  32.   JSR LoadSprites
  33.  
  34.  
  35.   LDA #%10000000
  36.   STA $2000
  37.   LDA #%00011110
  38.   STA $2001
  39.   LDA #$00
  40.   STA $2006
  41.   STA $2006
  42.   STA $2005
  43.   STA $2005
  44.  
  45. InfiniteLoop:
  46.   JMP InfiniteLoop
  47.  
  48. LoadBackground:
  49.   LDA $2002
  50.   LDA #$20
  51.   STA $2006
  52.   LDA #$00
  53.   STA $2006
  54.  
  55.   LDA #LOW(background)
  56.   STA pointerBackgroundLowByte
  57.   LDA #HIGH(background)
  58.   STA pointerBackgroundHighByte
  59.  
  60.   LDX #$00
  61.   LDY #$00  
  62. .Loop:
  63.   LDA [pointerBackgroundLowByte], y
  64.   STA $2007
  65.  
  66.   INY
  67.   CPY #$00
  68.   BNE .Loop
  69.  
  70.   INC pointerBackgroundHighByte
  71.   INX
  72.   CPX #$04
  73.   BNE .Loop
  74.   RTS
  75.  
  76. LoadPalettes:
  77.   LDA $2002
  78.   LDA #$3F
  79.   STA $2006
  80.   LDA #$00
  81.   STA $2006
  82.  
  83.   LDX #$00
  84. .Loop:
  85.   LDA palettes, x
  86.   STA $2007
  87.   INX
  88.   CPX #$20
  89.   BNE .Loop
  90.   RTS
  91.  
  92. LoadAttributes:
  93.   LDA $2002
  94.   LDA #$23
  95.   STA $2006
  96.   LDA #$C0
  97.   STA $2006
  98.  
  99.   LDX #$00
  100. .Loop
  101.   LDA attributes, x
  102.   STA $2007
  103.   INX
  104.   CPX #$40
  105.   BNE .Loop
  106.   RTS
  107.  
  108. LoadSprites:
  109.   LDX #$00
  110. .Loop
  111.   LDA sprites, x
  112.   STA $0300, x
  113.   INX
  114.   CPX #$18
  115.   BNE .Loop
  116.   RTS
  117.  
  118. ReadPlayerOneControls:
  119.   LDA #$01
  120.   STA $4016
  121.   LDA #$00
  122.   STA $4016
  123.   LDA $4016       ; Player 1 - A
  124.   LDA $4016       ; Player 1 - B
  125.   LDA $4016       ; Player 1 - Select
  126.   LDA $4016       ; Player 1 - Start
  127.  
  128. ReadUp:
  129.   LDA $4016       ; Player 1 - Up
  130.   AND #%00000001
  131.   BEQ EndReadUp
  132.  
  133.   LDA shipTile1Y
  134.   SEC
  135.   SBC #$01
  136.   STA shipTile1Y
  137.   STA shipTile2Y
  138.   STA shipTile3Y
  139.  
  140.   LDA shipTile4Y
  141.   SEC
  142.   SBC #$01
  143.   STA shipTile4Y
  144.   STA shipTile5Y
  145.   STA shipTile6Y
  146. EndReadUp:
  147.  
  148. ReadDown:
  149.   LDA $4016       ; Player 1 - Down
  150.   AND #%00000001
  151.   BEQ EndReadDown
  152.  
  153.   LDA shipTile1Y
  154.   CLC
  155.   ADC #$01
  156.   STA shipTile1Y
  157.   STA shipTile2Y
  158.   STA shipTile3Y
  159.  
  160.   LDA shipTile4Y
  161.   CLC
  162.   ADC #$01
  163.   STA shipTile4Y
  164.   STA shipTile5Y
  165.   STA shipTile6Y
  166. EndReadDown:
  167.  
  168. ReadLeft:
  169.   LDA $4016       ; Player 1 - Left
  170.   AND #%00000001
  171.   BEQ EndReadLeft
  172.  
  173.   LDA shipTile1X
  174.   SEC
  175.   SBC #$01
  176.   STA shipTile1X
  177.   STA shipTile4X
  178.  
  179.   LDA shipTile2X
  180.   SEC
  181.   SBC #$01
  182.   STA shipTile2X
  183.   STA shipTile5X
  184.  
  185.   LDA shipTile3X
  186.   SEC
  187.   SBC #$01
  188.   STA shipTile3X
  189.   STA shipTile6X
  190. EndReadLeft:
  191.  
  192. ReadRight:
  193.   LDA $4016        ; Player 1 - Right
  194.   AND #%00000001
  195.   BEQ EndReadRight
  196.  
  197.   LDA shipTile1X
  198.   CLC
  199.   ADC #$01
  200.   STA shipTile1X
  201.   STA shipTile4X
  202.  
  203.   LDA shipTile2X
  204.   CLC
  205.   ADC #$01
  206.   STA shipTile2X
  207.   STA shipTile5X
  208.  
  209.   LDA shipTile3X
  210.   CLC
  211.   ADC #$01
  212.   STA shipTile3X
  213.   STA shipTile6X
  214. EndReadRight:
  215.   RTS
  216.  
  217. NMI:
  218.   LDA #$00
  219.   STA $2003
  220.   LDA #$03
  221.   STA $4014
  222.   JSR ReadPlayerOneControls
  223.   RTI
  224.  
  225.   .bank 1
  226.   .org $E000
  227.  
  228. sprites:
  229.   .include "graphics/sprites.asm"
  230.  
  231. attributes:
  232.   .include "graphics/attributes.asm"  
  233.  
  234. palettes:
  235.   .include "graphics/palettes.asm"
  236.  
  237. background:
  238.   .include "graphics/background.asm"
  239.  
  240.   .org $FFFA
  241.   .dw NMI
  242.   .dw RESET
  243.   .dw 0
  244.  
  245.   .bank 2
  246.   .org $0000
  247.   .incbin "graphics.chr"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement