Advertisement
felixnardella

3D_OCTAHEDRON with Double Buffering

Mar 3rd, 2025 (edited)
1,488
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
6502 TASM/64TASS 17.89 KB | Source Code | 0 0
  1. ; Programma in Assembly per Commodore 64
  2. ; Scritto da Kimono (F. Nardella)
  3. ; Visualizza e ruota un ottaedro in modalità bitmap (HiRes)
  4. ; Modificato per implementare il double buffer
  5. ; Le coordinate dei vertici del poliedro sono precalcolate e lette da memoria
  6.  
  7. * = $C000
  8. ;******************************************************
  9. ; PARAMETRI VICII
  10. ;******************************************************
  11. VICII  = $d000
  12. VICII1 = VICII + $11  ; VICII Control Register 1 - Hi Res - 53265
  13. VICIIA = VICII + $18  ; VICII Start Address Graphic Ram - 53272
  14. VICIIB = VICII + $20  ; VICII Border Color Registry - 53280
  15. VICIIS = VICII + $21  ; VICII BackGround Color Registry - 53281
  16. BITMAP1 = $2000       ; Prima area bitmap (8K)
  17. BITMAP2 = $6000       ; Seconda area bitmap (8K)
  18. switch_flag = $5f     ; Flag per alternare le pagine
  19. loc = $5a  ;loc e loc+1 sono LSB e MSB della locaz. in Graphic RAM in cui accendere il pixel
  20. store = $5c
  21. bmpage = $ff       ; Variabile per la pagina bitmap attiva
  22. curpage = $fe      ; Variabile per la pagina correntemente visualizzata
  23. FRAMEPTR = $4b     ; Puntatore al frame corrente
  24. FRAMECNT = $4d     ; Contatore dei frame
  25. PARAMS = $828
  26. xL = PARAMS + 0    ; LSB sono le coordinate per plot
  27. xH = PARAMS + 1    ; MSB sono le coordinate per plot
  28. yy = PARAMS + 2    ; sono le coordinate per plot
  29. x1  = PARAMS + 3   ; Coordinata X del primo punto
  30. y1  = PARAMS + 4   ; Coordinata Y del primo punto
  31. x2  = PARAMS + 5   ; Coordinata X del secondo punto
  32. y2  = PARAMS + 6   ; Coordinata Y del secondo punto
  33. dx  = PARAMS + 7   ; Differenza X
  34. dy  = PARAMS + 8   ; Differenza Y
  35. sx  = PARAMS + 9   ; Direzione X (-1 o +1)
  36. sy  = PARAMS + 10  ; Direzione Y (-1 o +1)
  37. err = PARAMS + 11  ; Errore accumulato
  38.  
  39.  
  40. START
  41.     ldx #11
  42.     stx VICIIB      ; Bordo grigio scuro
  43.     jsr HIRES       ; Passa in modalità hi res
  44.     jsr GRRAM       ; Imposta la posizione della Bitmap nella seconda metà della Bank
  45.     jsr CLEARCO1    ; Cancella e imposta la Color RAM 1
  46.     jsr CLEARCO2    ; Cancella e imposta la Color RAM 2
  47.     jsr INIT_DOUBLE_BUFFER   ; Inizializza il double buffer
  48.     jsr DRAW        ; Disegna e ruota il poliedro
  49.     rts
  50.  
  51. INIT_DOUBLE_BUFFER
  52.     ; Imposta il flag di switch iniziale
  53.     lda #1
  54.     sta switch_flag
  55.  
  56. ; Configura la bank 0 (dove si trova BITMAP1)
  57.     lda $dd00
  58.     and #252  ; Pulisci i 2 bit di bank
  59.     ora #3    ; Bank 0 ($2000-$FFF)
  60.     sta $dd00
  61.    
  62.   ; Cancella entrambe le bitmap
  63.     jsr CLEAR_BITMAP1
  64.     jsr CLEAR_BITMAP2
  65.  
  66.     rts
  67.  
  68. DRAW
  69.     ; Inizializza il puntatore al primo frame
  70.     lda #<COORD_TABLE
  71.     sta FRAMEPTR
  72.     lda #>COORD_TABLE
  73.     sta FRAMEPTR+1
  74.    
  75.     ; Inizializza il contatore dei frame
  76.     lda #0
  77.     sta FRAMECNT
  78.    
  79.     ; Cancella la pagina attualmente non visualizzata
  80.     jsr CLEAR_BITMAP1
  81.    
  82.     ; Imposta il buffer di disegno iniziale
  83.     lda #>BITMAP1   ; Inizia disegnando sulla prima pagina
  84.     sta bmpage
  85.  
  86.  
  87. ANIMATE
  88.     jsr CLEAR_CURRENT_BITMAP  ; Pulisce la bitmap corrente prima di disegnarci
  89.     jsr DRAWFRAME   ; Disegna il frame corrente nella pagina bmpage
  90.  
  91.     lda FRAMEPTR
  92.     sta store+2
  93.    
  94.     ; Attendi la fine del frame (rasterline 0)
  95.     lda #255
  96. WAIT_RASTER
  97.     cmp VICII+$12   ; Confronta con il registro rasterline
  98.     bne WAIT_RASTER
  99.  
  100.     ; Cambia le pagine
  101.     jsr FLIP_PAGES
  102.    
  103.     ; Passa al frame successivo
  104.     lda store+2
  105.     clc
  106.     adc #48         ; Ogni frame occupa 48 byte
  107.     sta FRAMEPTR
  108.     bcc _no_carry
  109.     inc FRAMEPTR+1
  110. _no_carry    
  111.  ; Incrementa il contatore dei frame
  112.     inc FRAMECNT
  113.     lda FRAMECNT
  114.     cmp #15
  115.     bne ANIMATE
  116.    
  117.     lda #0
  118.     sta FRAMECNT
  119.  
  120.     lda #<COORD_TABLE
  121.     sta FRAMEPTR
  122.     lda #>COORD_TABLE
  123.     sta FRAMEPTR+1
  124.  
  125.     jmp ANIMATE
  126.  
  127. ; --------------------------------------------------------------
  128. ; Funzione per disegnare un frame
  129. ; --------------------------------------------------------------
  130. DRAWFRAME
  131.     ldy #0
  132.     ldx #0
  133. draw_loop
  134.     ; Leggi coordinate x1,y1
  135.     lda (FRAMEPTR),y
  136.     sta x1
  137.     iny
  138.     lda (FRAMEPTR),y
  139.     sta y1
  140.     iny
  141.    
  142.     ; Leggi coordinate x2,y2
  143.     lda (FRAMEPTR),y
  144.     sta x2
  145.     iny
  146.     lda (FRAMEPTR),y
  147.     sta y2
  148.     iny
  149.    
  150.     stx store+1     ; Salva X
  151.     tya  
  152.     pha             ; Salva Y
  153.     jsr LINE        ; Disegna la linea
  154.     pla            
  155.     tay             ; Recupera Y
  156.     ldx store+1     ; Recupera X
  157.    
  158.     inx
  159.     cpx #12         ; 12 linee per l'ottaedro
  160.     bne draw_loop
  161.     rts
  162.  
  163. ; --------------------------------------------------------------
  164. ; Funzione per pulire la bitmap corrente
  165. ; --------------------------------------------------------------
  166. CLEAR_CURRENT_BITMAP
  167.     ; Usa il valore in bmpage per determinare quale bitmap pulire
  168.     lda bmpage
  169.     cmp #>BITMAP1
  170.     beq CLEAR_BITMAP1
  171.     jmp CLEAR_BITMAP2
  172.  
  173. ; --------------------------------------------------------------
  174. ; Funzione per attivare la modalità bitmap HiRes
  175. ; --------------------------------------------------------------
  176. HIRES
  177.     lda VICII1
  178.     ora #32         ; Imposta il bit per attivare la modalità bitmap
  179.     sta VICII1
  180.     rts
  181.  
  182. GRRAM
  183.     lda VICIIA
  184.     ora #$08        ; Imposta il bit 3 per la prima pagina bitmap a $2000
  185.     sta VICIIA
  186.     sta curpage     ; Memorizza l'impostazione corrente
  187.     rts
  188.  
  189. ; --------------------------------------------------------------
  190. ; Funzione per pulire lo schermo grafico
  191. ; --------------------------------------------------------------
  192. ; Routine per cancellare la prima bitmap
  193. CLEAR_BITMAP1
  194.     lda #>BITMAP1
  195.     sta $fb
  196.     lda #<BITMAP1
  197.     sta $fa
  198.     jmp CLEARMEM
  199.  
  200. ; Routine per cancellare la seconda bitmap
  201. CLEAR_BITMAP2
  202.     lda #>BITMAP2
  203.     sta $fb
  204.     lda #<BITMAP2
  205.     sta $fa
  206.  
  207. ; Routine generale per cancellare 8KB di memoria
  208. CLEARMEM
  209.     ldx #32         ; 32 pagine da 256 bytes = 8KB
  210.     lda #0          ; Valore di cancellazione
  211.     ldy #0
  212. clearmem_loop
  213.     sta ($fa),y
  214.     dey
  215.     bne clearmem_loop
  216.     inc $fb
  217.     dex
  218.     bne clearmem_loop
  219.     rts
  220.  
  221. ; --------------------------------------------------------------
  222. ; Funzione per pulire e impostare la Color RAM 1 ($0400)
  223. ; --------------------------------------------------------------
  224. CLEARCO1
  225.     lda #208
  226.     ldx #0
  227.     stx $fa
  228.     ldx #4        ; Imposta il byte alto dell'indirizzo in $FB a 4 (indirizzo $0400)
  229.     stx $fb
  230.     ldy #0
  231. cloop1
  232.     sta ($fa),y
  233.     iny
  234.     bne cloop1
  235.     inc $fb
  236.     ldx $fb
  237.     cpx #8        ; Controlla se ha raggiunto la pagina $0800
  238.     bne cloop1
  239.     rts
  240.  
  241. ; --------------------------------------------------------------
  242. ; Funzione per pulire e impostare la Color RAM 2 ($4400)
  243. ; --------------------------------------------------------------
  244. CLEARCO2
  245.     lda #208
  246.     ldx #0
  247.     stx $fa
  248.     ldx #$44      ; Imposta il byte alto dell'indirizzo in $FB a 4 (indirizzo $4400)
  249.     stx $fb
  250.     ldy #0
  251. cloop2
  252.     sta ($fa),y
  253.     iny
  254.     bne cloop2
  255.     inc $fb
  256.     ldx $fb
  257.     cpx #$48        ; Controlla se ha raggiunto la pagina $4800
  258.     bne cloop2
  259.     rts
  260.  
  261. ; --------------------------------------------------------------
  262. ; Routine per alternare tra le pagine bitmap
  263. ; --------------------------------------------------------------
  264. FLIP_PAGES
  265.     lda switch_flag
  266.     eor #1          ; Inverti il flag
  267.     sta switch_flag
  268.    
  269.     beq USE_BITMAP1
  270.    
  271.     ; Passa a BITMAP2 (bank 1)
  272.     lda $dd00
  273.     and #252
  274.     ora #2  ; Bank 1 ($4000-$7FFF)
  275.     sta $dd00
  276.    
  277.     ; Imposta il puntatore per il disegno su BITMAP1
  278.     lda #>BITMAP1
  279.     sta bmpage
  280.     jmp DONE_FLIP
  281.    
  282. USE_BITMAP1
  283.     ; Passa a BITMAP1 (bank 0)
  284.     lda $dd00
  285.     and #252
  286.     ora #3  ; Bank 0 ($0000-$3FFF)
  287.     sta $dd00
  288.    
  289.     ; Imposta il puntatore per il disegno su BITMAP2
  290.     lda #>BITMAP2
  291.     sta bmpage
  292.    
  293. DONE_FLIP
  294.     rts
  295.  
  296.  
  297. ; --------------------------------------------------------------
  298. ; Funzione per disegnare un punto
  299. ; --------------------------------------------------------------
  300. PLOT
  301.     lda xL
  302.     and #7         ; Mantiene solo i 3 bit meno significativi (0-7)
  303.     tax            
  304.     lda #0      
  305.     sta loc    
  306.     lda xL  
  307.     and #$f8       ; Mantiene solo i 5 bit più significativi (multipli di 8)
  308.     sta store  
  309.     lda yy
  310.     lsr            ; Shifta a destra (divide per 2)
  311.     lsr            ; Shifta a destra nuovamente (divide per 2 ancora)
  312.     lsr            ; Shifta a destra nuovamente (divide per 8 in totale)
  313.     sta loc+1      ; Memorizza in loc+1 (parte alta dell'indirizzo)
  314.     lsr            ; Shifta a destra ancora (divide per 16 in totale)
  315.     ror loc        ; Ruota a destra con il carry in loc
  316.     lsr            ; Shifta a destra ancora (divide per 32 in totale)
  317.     ror loc        ; Ruota a destra con il carry in loc ancora
  318.     adc loc+1      ; Somma loc+1 al registro A
  319.     sta loc+1  
  320.     lda yy  
  321.     and #7         ; Mantiene solo i 3 bit meno significativi (0-7)
  322.     adc loc        ; Somma al valore di loc
  323.     adc store      ; Somma il valore di store (posizione x)
  324.     sta loc        ; Memorizza il risultato finale in loc
  325.     lda loc+1
  326.     adc xH         ; Aggiunge il byte alto di x (per coordinate x > 255)
  327.     adc bmpage     ; Aggiunge l'offset della pagina della bitmap
  328.     sta loc+1      ; Memorizza il risultato finale in loc+1 (completa l'indirizzo)
  329.     ldy #0
  330.     lda (loc),y
  331.     ora BITMASK,x  ; Esegue un OR con il bit dalla tabella BITMASK
  332.     sta (loc),y
  333.     rts
  334.  
  335. ; --------------------------------------------------------------
  336. ; Funzione per disegnare una linea tra due punti
  337. ; --------------------------------------------------------------
  338. LINE
  339.     jsr SUB_LINE
  340.    
  341.     ; Calcola err = (dx > dy ? dx : dy) / 2
  342.     lda dx
  343.     cmp dy
  344.     bcc dy_greater
  345.     lsr             ; Dividi dx per 2
  346.     sta err
  347.     jmp check_slopes
  348. dy_greater
  349.     lda dy
  350.     lsr             ; Dividi dy per 2
  351.     sta err
  352.    
  353. check_slopes
  354.     ; Decidi quale routine di loop usare
  355.     lda dx
  356.     cmp dy
  357.     bcs dx_ge_dy    ; Se dx >= dy, usa la routine x-dominant
  358.    
  359.     ; Routine y-dominant (pendenza > 1)
  360. y_loop
  361.     jsr PLOT        ; Disegna il punto
  362.    
  363.     ; Aggiorna l'errore e muovi x se necessario
  364.     lda err
  365.     clc
  366.     adc dx          ; err += dx
  367.     sta err
  368.     cmp dy          ; Se err >= dy...
  369.     bcc skip_x_step
  370.     sec
  371.     sbc dy          ; ...sottrai dy da err
  372.     sta err
  373.     lda xL          ; ...e incrementa/decrementa x
  374.     clc
  375.     adc sx
  376.     sta xL
  377.     bcc skip_x_step
  378.     inc xH          ; Gestisci il riporto se necessario
  379. skip_x_step
  380.    
  381.     ; Incrementa o decrementa y
  382.     lda yy
  383.     clc
  384.     adc sy
  385.     sta yy
  386.    
  387.     ; Controlla se abbiamo raggiunto y2
  388.     cmp y2
  389.     bne y_loop      ; Se y != y2, continua
  390.     lda xL
  391.     cmp x2
  392.     bne y_loop      ; Se x != x2, continua
  393.     rts
  394.    
  395. dx_ge_dy
  396.     ; Routine x-dominant (pendenza <= 1)
  397. x_loop
  398.     jsr PLOT        ; Disegna il punto
  399.    
  400.     ; Aggiorna l'errore e muovi y se necessario
  401.     lda err
  402.     clc
  403.     adc dy          ; err += dy
  404.     sta err
  405.     cmp dx          ; Se err >= dx...
  406.     bcc skip_y_step
  407.     sec
  408.     sbc dx          ; ...sottrai dx da err
  409.     sta err
  410.     lda yy          ; ...e incrementa/decrementa y
  411.     clc
  412.     adc sy
  413.     sta yy
  414. skip_y_step
  415.    
  416.     ; Incrementa o decrementa x
  417.     lda xL
  418.     clc
  419.     adc sx
  420.     sta xL
  421.     bcc no_carry
  422.     inc xH          ; Gestisci il riporto se necessario
  423. no_carry
  424.    
  425.     ; Controlla se abbiamo raggiunto x2
  426.     cmp x2
  427.     bne x_loop      ; Se x != x2, continua
  428.     lda yy
  429.     cmp y2
  430.     bne x_loop      ; Se y != y2, continua
  431.     rts
  432.  
  433. SUB_LINE
  434.     ; Controlla se x1 > x2 e in tal caso scambia i punti
  435.     lda x1
  436.     cmp x2
  437.     bcc no_swap_x   ; Se x1 < x2, non serve scambiare
  438.    
  439.     ; Scambia x1 e x2
  440.     lda x1
  441.     pha             ; Salva x1 nello stack
  442.     lda x2
  443.     sta x1
  444.     pla
  445.     sta x2
  446.    
  447.     ; Scambia anche y1 e y2
  448.     lda y1
  449.     pha             ; Salva y1 nello stack
  450.     lda y2
  451.     sta y1
  452.     pla
  453.     sta y2
  454.    
  455. no_swap_x
  456.  
  457.     ; Calcola dx = abs(x2 - x1)
  458.     lda x2
  459.     sec
  460.     sbc x1
  461.     bpl store_dx    ; Se è positivo, salta
  462.     eor #$FF        ; Altrimenti, negalo (complemento a 1)
  463.     clc
  464.     adc #1          ; Complemento a 2 per ottenere abs()
  465. store_dx
  466.     sta dx
  467.    
  468.     ; Calcola dy = abs(y2 - y1)
  469.     lda y2
  470.     sec
  471.     sbc y1
  472.     bpl store_dy    ; Se è positivo, salta
  473.     eor #$FF        ; Altrimenti, negalo
  474.     clc
  475.     adc #1
  476. store_dy
  477.     sta dy
  478.    
  479.     ; Determina direzione x (sx)
  480.     lda x1
  481.     cmp x2
  482.     bcc x_ascending
  483.     lda #$FF        ; sx = -1 (x1 > x2)
  484.     jmp store_sx
  485. x_ascending
  486.     lda #$01        ; sx = 1 (x1 < x2)
  487. store_sx
  488.     sta sx
  489.  
  490.     ; Determina direzione y (sy)
  491.     lda y1
  492.     cmp y2
  493.     bcc y_ascending
  494.     lda #$FF        ; sy = -1 (y1 > y2)
  495.     jmp store_sy
  496. y_ascending
  497.     lda #$01        ; sy = 1 (y1 < y2)
  498. store_sy
  499.     sta sy
  500.    
  501.     ; Imposta i valori iniziali di x e y
  502.     lda x1
  503.     sta xL
  504.     lda #0          ; Assumiamo che xH sia sempre 0 per semplicità
  505.     sta xH
  506.     lda y1
  507.     sta yy
  508.     rts
  509.  
  510.  
  511. BITMASK  
  512.     .byte $80, $40, $20, $10, $08, $04, $02, $01
  513.  
  514.  
  515. COORD_TABLE
  516.  
  517. ; Frame 0
  518.  .byte 210, 100, 160, 150
  519.  .byte 210, 100, 160, 50
  520.  .byte 210, 100, 160, 100
  521.  .byte 210, 100, 160, 100
  522.  .byte 110, 100, 160, 150
  523.  .byte 110, 100, 160, 50
  524.  .byte 110, 100, 160, 100
  525.  .byte 110, 100, 160, 100
  526.  .byte 160, 150, 160, 100
  527.  .byte 160, 150, 160, 100
  528.  .byte 160, 50, 160, 100
  529.  .byte 160, 50, 160, 100
  530.  
  531. ; Frame 1
  532.  .byte 211, 100, 161, 146
  533.  .byte 211, 100, 158, 48
  534.  .byte 211, 100, 164, 91
  535.  .byte 211, 100, 153, 113
  536.  .byte 111, 100, 161, 146
  537.  .byte 111, 100, 158, 48
  538.  .byte 111, 100, 164, 91
  539.  .byte 111, 100, 153, 113
  540.  .byte 161, 146, 164, 91
  541.  .byte 161, 146, 153, 113
  542.  .byte 158, 48, 164, 91
  543.  .byte 158, 48, 153, 113
  544.  
  545. ; Frame 2
  546.  .byte 211, 100, 163, 141
  547.  .byte 211, 100, 155, 49
  548.  .byte 211, 100, 167, 83
  549.  .byte 211, 100, 147, 126
  550.  .byte 113, 100, 163, 141
  551.  .byte 113, 100, 155, 49
  552.  .byte 113, 100, 167, 83
  553.  .byte 113, 100, 147, 126
  554.  .byte 163, 141, 167, 83
  555.  .byte 163, 141, 147, 126
  556.  .byte 155, 49, 167, 83
  557.  .byte 155, 49, 147, 126
  558.  
  559. ; Frame 3
  560.  .byte 211, 100, 167, 135
  561.  .byte 211, 100, 149, 52
  562.  .byte 211, 100, 170, 75
  563.  .byte 211, 100, 144, 136
  564.  .byte 115, 100, 167, 135
  565.  .byte 115, 100, 149, 52
  566.  .byte 115, 100, 170, 75
  567.  .byte 115, 100, 144, 136
  568.  .byte 167, 135, 170, 75
  569.  .byte 167, 135, 144, 136
  570.  .byte 149, 52, 170, 75
  571.  .byte 149, 52, 144, 136
  572.  
  573. ; Frame 4
  574.  .byte 210, 100, 172, 128
  575.  .byte 210, 100, 141, 59
  576.  .byte 210, 100, 171, 67
  577.  .byte 210, 100, 143, 143
  578.  .byte 118, 100, 172, 128
  579.  .byte 118, 100, 141, 59
  580.  .byte 118, 100, 171, 67
  581.  .byte 118, 100, 143, 143
  582.  .byte 172, 128, 171, 67
  583.  .byte 172, 128, 143, 143
  584.  .byte 141, 59, 171, 67
  585.  .byte 141, 59, 143, 143
  586.  
  587. ; Frame 5
  588.  .byte 209, 100, 178, 121
  589.  .byte 209, 100, 133, 69
  590.  .byte 209, 100, 171, 60
  591.  .byte 209, 100, 145, 148
  592.  .byte 121, 100, 178, 121
  593.  .byte 121, 100, 133, 69
  594.  .byte 121, 100, 171, 60
  595.  .byte 121, 100, 145, 148
  596.  .byte 178, 121, 171, 60
  597.  .byte 178, 121, 145, 148
  598.  .byte 133, 69, 171, 60
  599.  .byte 133, 69, 145, 148
  600.  
  601. ; Frame 6
  602.  .byte 207, 100, 183, 112
  603.  .byte 207, 100, 125, 80
  604.  .byte 207, 100, 168, 55
  605.  .byte 207, 100, 150, 150
  606.  .byte 124, 100, 183, 112
  607.  .byte 124, 100, 125, 80
  608.  .byte 124, 100, 168, 55
  609.  .byte 124, 100, 150, 150
  610.  .byte 183, 112, 168, 55
  611.  .byte 183, 112, 150, 150
  612.  .byte 125, 80, 168, 55
  613.  .byte 125, 80, 150, 150
  614.  
  615. ; Frame 7
  616.  .byte 204, 100, 188, 104
  617.  .byte 204, 100, 119, 93
  618.  .byte 204, 100, 163, 51
  619.  .byte 204, 100, 156, 150
  620.  .byte 128, 100, 188, 104
  621.  .byte 128, 100, 119, 93
  622.  .byte 128, 100, 163, 51
  623.  .byte 128, 100, 156, 150
  624.  .byte 188, 104, 163, 51
  625.  .byte 188, 104, 156, 150
  626.  .byte 119, 93, 163, 51
  627.  .byte 119, 93, 156, 150
  628.  
  629. ; Frame 8
  630.  .byte 201, 100, 191, 95
  631.  .byte 201, 100, 115, 106
  632.  .byte 201, 100, 156, 49
  633.  .byte 201, 100, 163, 148
  634.  .byte 131, 100, 191, 95
  635.  .byte 131, 100, 115, 106
  636.  .byte 131, 100, 156, 49
  637.  .byte 131, 100, 163, 148
  638.  .byte 191, 95, 156, 49
  639.  .byte 191, 95, 163, 148
  640.  .byte 115, 106, 156, 49
  641.  .byte 115, 106, 163, 148
  642.  
  643. ; Frame 9
  644.  .byte 196, 100, 193, 86
  645.  .byte 196, 100, 115, 117
  646.  .byte 196, 100, 146, 50
  647.  .byte 196, 100, 171, 145
  648.  .byte 135, 100, 193, 86
  649.  .byte 135, 100, 115, 117
  650.  .byte 135, 100, 146, 50
  651.  .byte 135, 100, 171, 145
  652.  .byte 193, 86, 146, 50
  653.  .byte 193, 86, 171, 145
  654.  .byte 115, 117, 146, 50
  655.  .byte 115, 117, 171, 145
  656.  
  657. ; Frame 10
  658.  .byte 191, 100, 193, 77
  659.  .byte 191, 100, 117, 128
  660.  .byte 191, 100, 136, 53
  661.  .byte 191, 100, 180, 140
  662.  .byte 139, 100, 193, 77
  663.  .byte 139, 100, 117, 128
  664.  .byte 139, 100, 136, 53
  665.  .byte 139, 100, 180, 140
  666.  .byte 193, 77, 136, 53
  667.  .byte 193, 77, 180, 140
  668.  .byte 117, 128, 136, 53
  669.  .byte 117, 128, 180, 140
  670.  
  671. ; Frame 11
  672.  .byte 186, 100, 191, 68
  673.  .byte 186, 100, 123, 136
  674.  .byte 186, 100, 127, 60
  675.  .byte 186, 100, 188, 134
  676.  .byte 143, 100, 191, 68
  677.  .byte 143, 100, 123, 136
  678.  .byte 143, 100, 127, 60
  679.  .byte 143, 100, 188, 134
  680.  .byte 191, 68, 127, 60
  681.  .byte 191, 68, 188, 134
  682.  .byte 123, 136, 127, 60
  683.  .byte 123, 136, 188, 134
  684.  
  685. ; Frame 12
  686.  .byte 180, 100, 186, 61
  687.  .byte 180, 100, 130, 142
  688.  .byte 180, 100, 118, 68
  689.  .byte 180, 100, 196, 127
  690.  .byte 147, 100, 186, 61
  691.  .byte 147, 100, 130, 142
  692.  .byte 147, 100, 118, 68
  693.  .byte 147, 100, 196, 127
  694.  .byte 186, 61, 118, 68
  695.  .byte 186, 61, 196, 127
  696.  .byte 130, 142, 118, 68
  697.  .byte 130, 142, 196, 127
  698.  
  699. ; Frame 13
  700.  .byte 173, 100, 179, 55
  701.  .byte 173, 100, 139, 146
  702.  .byte 173, 100, 113, 78
  703.  .byte 173, 100, 202, 119
  704.  .byte 151, 100, 179, 55
  705.  .byte 151, 100, 139, 146
  706.  .byte 151, 100, 113, 78
  707.  .byte 151, 100, 202, 119
  708.  .byte 179, 55, 113, 78
  709.  .byte 179, 55, 202, 119
  710.  .byte 139, 146, 113, 78
  711.  .byte 139, 146, 202, 119
  712.  
  713. ; Frame 14
  714.  .byte 166, 100, 170, 51
  715.  .byte 166, 100, 149, 149
  716.  .byte 166, 100, 110, 89
  717.  .byte 166, 100, 207, 110
  718.  .byte 155, 100, 170, 51
  719.  .byte 155, 100, 149, 149
  720.  .byte 155, 100, 110, 89
  721.  .byte 155, 100, 207, 110
  722.  .byte 170, 51, 110, 89
  723.  .byte 170, 51, 207, 110
  724.  .byte 149, 149, 110, 89
  725.  .byte 149, 149, 207, 110
  726.  
  727.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement