Advertisement
Guest User

NESkode2

a guest
Jul 13th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .segment "INES"
  2.     .byte "NES", $1A,1,1,9
  3.  
  4. .segment "VECTORS"
  5.     .word NMI
  6.     .word Start
  7.     .word IRQ
  8.  
  9. .segment "GFX"
  10. spr_tiles:
  11.     .incbin "sprites.spr"
  12. bg_tiles:
  13.     .incbin "bakgrunn.chr"
  14.    
  15. .segment "CODE"
  16.  
  17. Start:
  18.  
  19.     ; ---[ VENTER 2 FRAMES TIL PPU KOMMER SEG ]---
  20.     LDA $2002
  21.     BPL Start
  22. :   LDA $2002
  23.     BPL :-
  24.  
  25.     ; ---[ START LAST PALETT]---
  26.     LDA #$3F
  27.     STA $2006   ; PPU output skal
  28.     LDA #0      ; settes til $3F00
  29.     STA $2006      
  30.    
  31.     LDX #0
  32. LastPalett:
  33.     LDA palett, x
  34.     STA $2007
  35.     INX
  36.     CPX #32
  37.     BNE LastPalett
  38.     ; ---[ SLUTT LAST PALETT]---
  39.    
  40.     ; ---[ SETTER OPP PPU ]---
  41.     LDA #%10010000
  42.     STA $2000       ; kontrollregister 1
  43.     LDA #%00011110
  44.     STA $2001       ; kontrollregister 2
  45.    
  46.     ; ---[ SETTER OPP STACKEN ]---
  47.     LDX #$FF
  48.     TXS
  49.    
  50.    
  51.     LDA #0
  52.     STA right_racket_pos
  53.    
  54.     ; ---[ SETT POSISJON TIL SPRITES ]---
  55.  
  56.     ; ---[ POSISJONER OG VEKTORER TIL BALLEN]---
  57.     LDA #0
  58.     STA x_pos
  59.     LDA #50
  60.     STA y_pos
  61.     LDA #3
  62.     STA x_vector
  63.     LDA #1
  64.     STA y_vector
  65.    
  66. Sprite:
  67.     LDA $2002
  68.     BPL Sprite
  69.  
  70.  
  71.     ; ---[ BALL ]---
  72.  
  73.     ; ---[ Y-KOORDINAT ]---
  74.     LDA y_pos
  75.     STA ball_y
  76.    
  77.     ; ---[ TILENUMMER FRA CHR-ROM ]---
  78.     LDA #3
  79.     STA ball_tile
  80.     ; ---[ ATRIBUTT-BYTE ]---
  81.     LDA #0; (setter ingen flagg)
  82.     STA ball_attribute
  83.     ; ---[ X-KOORDINAT ]---
  84.     LDA x_pos
  85.     STA ball_x
  86.  
  87.  
  88.     ; ---[ RIGHT RACKET ]---
  89.  
  90.     ; ---[ Y-KOORDINAT ]---
  91.     LDA right_racket_pos
  92.     STA racket_y
  93.     ; ---[ TILENUMMER FRA CHR-ROM ]---
  94.     LDA #5
  95.     STA racket_tile
  96.     ; ---[ ATRIBUTT-BYTE ]---
  97.     LDA #0; (setter ingen flagg)
  98.     STA racket_attribute
  99.     ; ---[ X-KOORDINAT ]---
  100.     LDA #250
  101.     STA racket_x
  102.    
  103.    
  104.     ; ---[RIGHT RACKET POSITION ]---
  105.     ;A, B, Select, Start, Up, Down, Left, Right
  106.     LDA #1
  107.     STA $4016
  108.     LDA #0
  109.     STA $4016
  110.     LDA $4016 ; A
  111.     LDA $4016 ; B
  112.     LDA $4016 ; Select
  113.     LDA $4016 ; Start
  114.     LDA $4016 ; Up
  115.     CMP #$41
  116.     BNE NotUp
  117.     LDA right_racket_pos
  118.     SEC
  119.     SBC #2
  120.     STA right_racket_pos
  121.     JMP NoMove
  122.    
  123. NotUp:
  124.     LDA $4016 ; Down
  125.     CMP #$41
  126.     BNE NoMove
  127.     LDA right_racket_pos
  128.     CLC
  129.     ADC #2
  130.     STA right_racket_pos
  131.    
  132. NoMove:
  133.    
  134.  
  135.    
  136.     ; ---[ OPPDATERER X ]---
  137.     LDA x_pos
  138.     CLC
  139.     ADC x_vector
  140.     TAX
  141.     STA x_pos
  142.    
  143.     ; ---[ OPPDATERER Y ]---
  144.     LDA y_pos
  145.     CLC
  146.     ADC y_vector
  147.     TAY
  148.     STA y_pos
  149.    
  150.     ; ---[ TRUFFET KANTEN? ]---
  151. ;TestEdgeX
  152.     CPX #250    ; if (x >= 250)
  153.     BCS TurnX   ; then TurnX
  154.     CPX #0      ; if (x == 0)
  155.     BEQ TurnX   ; then TurnX
  156.  
  157. TestEdgeY:
  158.     CPY #232    ; if (y >= 232)
  159.     BCS TurnY   ; then TurnY
  160.     CPY #0      ; if (y == 0)
  161.     BEQ TurnY   ; then TurnY
  162.    
  163.     JMP Sprite ; ikke truffet kanten, flytt mer
  164.  
  165.  
  166. TurnX: ; SNUR X-VEKTOREN
  167.     LDA #0
  168.     SEC
  169.     SBC x_vector
  170.     STA x_vector
  171.     JMP TestEdgeY
  172.  
  173.    
  174. TurnY: ; SNUR Y-VEKTOREN
  175.     LDA #0
  176.     SEC
  177.     SBC y_vector
  178.     STA y_vector
  179.     JMP Sprite
  180.    
  181.    
  182.    
  183. palett:
  184.     ; Bakgrunnsgrafikk
  185.     .byte 0, $2E, $2D, $04
  186.     .byte 0, $2E, $2D, $04
  187.     .byte 0, $2E, $2D, $04
  188.     .byte 0, $2E, $2D, $04
  189.    
  190.     .byte $11, $2A, $28, $21    ; bakgrunn og sprite 0
  191.     .byte 0, 0, 0, 0            ; sprite 1
  192.     .byte 0, 0, 0, 0            ; sprite 2
  193.     .byte 0, 0, 0, 0            ; sprite 3
  194.    
  195.    
  196.  
  197.    
  198.  
  199. NMI: ; ---[ V-BLANK INTERRUPT ]---
  200.     STA a_tmp
  201.     ;STX x_tmp
  202.     ;STY y_tmp
  203.  
  204.     LDA #$00
  205.     STA $2003
  206.     LDA #$02
  207.     STA $4014
  208.    
  209.     LDA a_tmp
  210.     ;LDX x_tmp
  211.     ;LDY y_tmp
  212.     RTI ; ReTurn from Interrupt
  213.    
  214. IRQ:
  215.     jmp IRQ
  216.    
  217. .segment "RAM"
  218.     ; Midlertidige minneposisjoner for interrupt handling
  219.     a_tmp:              .byte 0
  220.     x_tmp:              .byte 0
  221.     y_tmp:              .byte 0
  222.    
  223.     ; Ballen
  224.     x_pos:              .byte 0
  225.     y_pos:              .byte 0
  226.     x_vector:           .byte 0
  227.     y_vector:           .byte 0
  228.    
  229.     ; Racketen
  230.     right_racket_pos:   .byte 0
  231.    
  232.     .org $0200
  233.     ball_y:             .byte 0
  234.     ball_tile:          .byte 0
  235.     ball_attribute:     .byte 0
  236.     ball_x:             .byte 0
  237.  
  238.     racket_y:           .byte 0
  239.     racket_tile:        .byte 0
  240.     racket_attribute:   .byte 0
  241.     racket_x:           .byte 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement