Advertisement
Guest User

Sonic 2 Nick Arcade TouchResponse with original labels

a guest
Apr 22nd, 2022
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. pcol:
  2.                 nop
  3.                 bsr.w   ringcolchk
  4.                 move.w  8(a0),d2
  5.                 move.w  $C(a0),d3
  6.                 subi.w  #8,d2
  7.                 moveq   #0,d5
  8.                 move.b  $16(a0),d5
  9.                 subq.b  #3,d5
  10.                 sub.w   d5,d3
  11.                 cmpi.b  #$39,$1A(a0)
  12.                 bne.s   .jump0
  13.                 addi.w  #$C,d3
  14.                 moveq   #$A,d5
  15.  
  16. .jump0:
  17.                move.w  #$10,d4
  18.                 add.w   d5,d5
  19.                 lea     ($FFFFB800).w,a1
  20.                 move.w  #$5F,d6
  21.  
  22. .loop:
  23.                 move.b  $20(a1),d0
  24.                 bne.s   .jump2
  25.  
  26. .jump:
  27.                                        
  28.                 lea     $40(a1),a1
  29.                 dbf     d6,.loop
  30.                 moveq   #0,d0                      
  31.                 rts
  32. ; ---------------------------------------------------------------------------
  33. .colitbl:
  34.                dc.b $14, $14
  35.                 dc.b $C, $14
  36.                 dc.b $14, $C
  37.                 dc.b 4, $10
  38.                 dc.b $C, $12
  39.                 dc.b $10, $10
  40.                 dc.b 6, 6
  41.                 dc.b $18, $C
  42.                 dc.b $C, $10
  43.                 dc.b $10, $C
  44.                 dc.b 8, 8
  45.                 dc.b $14, $10
  46.                 dc.b $14, 8
  47.                 dc.b $E, $E
  48.                 dc.b $18, $18
  49.                 dc.b $28, $10
  50.                 dc.b $10, $18
  51.                 dc.b 8, $10
  52.                 dc.b $20, $70
  53.                 dc.b $40, $20
  54.                 dc.b $80, $20
  55.                 dc.b $20, $20
  56.                 dc.b 8, 8
  57.                 dc.b 4, 4
  58.                 dc.b $20, 8
  59.                 dc.b $C, $C
  60.                 dc.b 8, 4
  61.                 dc.b $18, 4
  62.                 dc.b $28, 4
  63.                 dc.b 4, 8
  64.                 dc.b 4, $18
  65.                 dc.b 4, $28
  66.                 dc.b 4, $20
  67.                 dc.b $18, $18
  68.                 dc.b $C, $18
  69.                 dc.b $48, 8
  70. ; ---------------------------------------------------------------------------
  71.  
  72. .jump2:
  73.                andi.w  #$3F,d0
  74.                 add.w   d0,d0
  75.                 lea     .colitbl-2(pc,d0.w),a2
  76.                 moveq   #0,d1
  77.                 move.b  (a2)+,d1
  78.                 move.w  8(a1),d0
  79.                 sub.w   d1,d0
  80.                 sub.w   d2,d0
  81.                 bcc.s   .jump3
  82.                 add.w   d1,d1
  83.                 add.w   d1,d0
  84.                 bcs.s   .jump4
  85.                 bra.w   .jump
  86. ; ---------------------------------------------------------------------------
  87.  
  88. .jump3:
  89.                cmp.w   d4,d0
  90.                 bhi.w   .jump
  91.  
  92. .jump4:
  93.                moveq   #0,d1
  94.                 move.b  (a2)+,d1
  95.                 move.w  $C(a1),d0
  96.                 sub.w   d1,d0
  97.                 sub.w   d3,d0
  98.                 bcc.s   .jump5
  99.                 add.w   d1,d1
  100.                 add.w   d1,d0
  101.                 bcs.s   .atari
  102.                 bra.w   .jump
  103. ; ---------------------------------------------------------------------------
  104.  
  105. .jump5:
  106.                cmp.w   d5,d0
  107.                 bhi.w   .jump
  108.  
  109. .atari:
  110.                move.b  $20(a1),d1
  111.                 andi.b  #$C0,d1
  112.                 beq.w   pcolnomal
  113.                 cmpi.b  #$C0,d1
  114.                 beq.w   pcolspecial
  115.                 tst.b   d1
  116.                 bmi.w   pcolplay
  117.  
  118. pcolitem:
  119.                move.b  $20(a1),d0
  120.                 andi.b  #$3F,d0
  121.                 cmpi.b  #6,d0
  122.                 beq.s   .item
  123.  
  124. .ring:
  125.                cmpi.w  #$5A,$30(a0)
  126.                 bcc.w   .ringe
  127.                 move.b  #4,$24(a1)
  128.  
  129. .ringe:
  130.                rts
  131. ; ---------------------------------------------------------------------------
  132.  
  133. .item:
  134.                 tst.w   $12(a0)
  135.                 bpl.s   .item2
  136.                 move.w  $C(a0),d0
  137.                 subi.w  #$10,d0
  138.                 cmp.w   $C(a1),d0
  139.                 bcs.s   .iteme
  140.                 neg.w   $12(a0)
  141.                 move.w  #$FE80,$12(a1)
  142.                 tst.b   $25(a1)
  143.                 bne.s   .iteme
  144.                 move.b  #4,$25(a1)
  145.                 rts
  146. ; ---------------------------------------------------------------------------
  147.  
  148. .item2:
  149.                cmpi.b  #2,$1C(a0)
  150.                 bne.s   .iteme
  151.                 neg.w   $12(a0)
  152.                 move.b  #4,$24(a1)
  153.  
  154. .iteme:                        
  155.                 rts
  156. ; ---------------------------------------------------------------------------
  157.  
  158. pcolnomal:                            
  159.                                        
  160.                 tst.b   ($FFFFFE2D).w
  161.                 bne.s   .jump
  162.                 cmpi.b  #9,$1C(a0)
  163.                 beq.s   .jump
  164.                 cmpi.b  #2,$1C(a0)
  165.                 bne.w   pcolplay
  166.  
  167. .jump:
  168.                                        
  169.                 tst.b   $21(a1)
  170.                 beq.s   .jump0
  171.                 neg.w   $10(a0)
  172.                 neg.w   $12(a0)
  173.                 asr     $10(a0)
  174.                 asr     $12(a0)
  175.                 move.b  #0,$20(a1)
  176.                 subq.b  #1,$21(a1)
  177.                 bne.s   .jump4
  178.                 bset    #7,$22(a1)
  179.  
  180. .jump4:
  181.                rts
  182. ; ---------------------------------------------------------------------------
  183.  
  184. .jump0:
  185.                bset    #7,$22(a1)
  186.                 moveq   #0,d0
  187.                 move.w  ($FFFFF7D0).w,d0
  188.                 addq.w  #2,($FFFFF7D0).w
  189.                 cmpi.w  #6,d0
  190.                 bcs.s   .jump5
  191.                 moveq   #6,d0
  192.  
  193. .jump5:
  194.                move.w  d0,$3E(a1)
  195.                 move.w  escoretbl(pc,d0.w),d0
  196.                 cmpi.w  #$20,($FFFFF7D0).w
  197.                 bcs.s   .jump6
  198.                 move.w  #$3E8,d0
  199.                 move.w  #$A,$3E(a1)
  200.  
  201. .jump6:
  202.                bsr.w   scoreup
  203.                 move.b  #$27,0(a1)
  204.                 move.b  #0,$24(a1)
  205.  
  206. .jump3:
  207.                tst.w   $12(a0)
  208.                 bmi.s   .jump1
  209.                 move.w  $C(a0),d0
  210.                 cmp.w   $C(a1),d0
  211.                 bcc.s   .jump2
  212.                 neg.w   $12(a0)
  213.                 rts
  214. ; ---------------------------------------------------------------------------
  215.  
  216. .jump1:
  217.                addi.w  #$100,$12(a0)
  218.                 rts
  219. ; ---------------------------------------------------------------------------
  220.  
  221. .jump2:
  222.                subi.w  #$100,$12(a0)
  223.                 rts
  224. ; ---------------------------------------------------------------------------
  225.  
  226. escoretbl:                            
  227.                 dc.w 10
  228.                 dc.w 20
  229.                 dc.w 50
  230.                 dc.w 100
  231. ; ---------------------------------------------------------------------------
  232.  
  233. pcolplay2:                            
  234.                 bset    #7,$22(a1)
  235. ; ---------------------------------------------------------------------------
  236.  
  237. pcolplay:                            
  238.                                        
  239.                 tst.b   ($FFFFFE2D).w
  240.                 beq.s   pcole
  241.  
  242. pcolend:                              
  243.                 moveq   #$FFFFFFFF,d0
  244.                 rts
  245. ; ---------------------------------------------------------------------------
  246.  
  247. pcole:
  248.                 nop
  249.                 tst.w   $30(a0)
  250.                 bne.s   pcolend
  251. ; ---------------------------------------------------------------------------
  252.  
  253. playdamageset:
  254.                movea.l a1,a2
  255.                 tst.b   ($FFFFFE2C).w
  256.                 bne.s   .worknai
  257.                 tst.w   ($FFFFFE20).w
  258.                 beq.w   .die
  259.                 jsr     actwkchk
  260.                 bne.s   .worknai
  261.                 move.b  #$37,0(a1)
  262.                 move.w  8(a0),8(a1)
  263.                 move.w  $C(a0),$C(a1)
  264.  
  265. .damage:
  266. .worknai:
  267.                move.b  #0,($FFFFFE2C).w
  268.                 move.b  #4,$24(a0)
  269.                 bsr.w   jumpcolsub
  270.                 bset    #1,$22(a0)
  271.                 move.w  #$FC00,$12(a0)
  272.                 move.w  #$FE00,$10(a0)
  273.                 btst    #6,$22(a0)
  274.                 beq.s   .jump0
  275.                 move.w  #$FE00,$12(a0)
  276.                 move.w  #$FF00,$10(a0)
  277.  
  278. .jump0:
  279.                move.w  8(a0),d0
  280.                 cmp.w   8(a2),d0
  281.                 bcs.s   .jump
  282.                 neg.w   $10(a0)
  283.  
  284. .jump:
  285.                 move.w  #0,$14(a0)
  286.                 move.b  #$1A,$1C(a0)
  287.                 move.w  #$78,$30(a0)
  288.                 move.w  #$A3,d0
  289.                 cmpi.b  #$36,(a2)
  290.                 bne.s   .jump2
  291.                 cmpi.b  #$16,(a2)
  292.                 bne.s   .jump2
  293.                 move.w  #$A6,d0
  294.  
  295. .jump2:
  296.                                      
  297.                 jsr     (soundset).l
  298.  
  299. .end:
  300.                 moveq   #$FFFFFFFF,d0
  301.                 rts
  302. ; ---------------------------------------------------------------------------
  303.  
  304. .die:
  305.                 tst.w   ($FFFFFFFA).w
  306.                 bne.w   .worknai
  307. ; ---------------------------------------------------------------------------
  308.  
  309. playdieset:
  310.                tst.w   ($FFFFFE08).w
  311.                 bne.s   .end
  312.                 move.b  #0,($FFFFFE2D).w
  313.                 move.b  #6,$24(a0)
  314.                 bsr.w   jumpcolsub
  315.                 bset    #1,$22(a0)
  316.                 move.w  #$F900,$12(a0)
  317.                 move.w  #0,$10(a0)
  318.                 move.w  #0,$14(a0)
  319.                 move.w  $C(a0),$38(a0)
  320.                 move.b  #$18,$1C(a0)
  321.                 bset    #7,2(a0)
  322.                 move.w  #$A3,d0
  323.                 cmpi.b  #$36,(a2)
  324.                 bne.s   .jump2
  325.                 move.w  #$A6,d0
  326.  
  327. .jump2:
  328.                jsr     (soundset).l
  329.  
  330. .end:  
  331.                 moveq   #$FFFFFFFF,d0
  332.                 rts
  333. ; ---------------------------------------------------------------------------
  334.  
  335. pcolspecial:
  336.                move.b  $20(a1),d1
  337.                 andi.b  #$3F,d1
  338.                 cmpi.b  #$B,d1
  339.                 beq.s   .imo
  340.                 cmpi.b  #$C,d1
  341.                 beq.s   .yado
  342.                 cmpi.b  #$17,d1
  343.                 beq.s   .bobin
  344.                 cmpi.b  #$21,d1
  345.                 beq.s   .bou
  346.                 rts
  347. ; ---------------------------------------------------------------------------
  348.  
  349. .imo:
  350.                 bra.w   pcolplay2
  351. ; ---------------------------------------------------------------------------
  352.  
  353. .yado:
  354.                 sub.w   d0,d5
  355.                 cmpi.w  #8,d5
  356.                 bcc.s   .yado4
  357.                 move.w  8(a1),d0
  358.                 subq.w  #4,d0
  359.                 btst    #0,$22(a1)
  360.                 beq.s   .yado1
  361.                 subi.w  #$10,d0
  362.  
  363. .yado1:
  364.                sub.w   d2,d0
  365.                 bcc.s   .yado2
  366.                 addi.w  #$18,d0
  367.                 bcs.s   .yado3
  368.                 bra.s   .yado4
  369. ; ---------------------------------------------------------------------------
  370.  
  371. .yado2:
  372.                cmp.w   d4,d0
  373.                 bhi.s   .yado4
  374.  
  375. .yado3:
  376.                bra.w   pcolplay
  377. ; ---------------------------------------------------------------------------
  378.  
  379. .yado4:
  380.                bra.w   pcolnomal
  381. ; ---------------------------------------------------------------------------
  382.  
  383. .bobin:
  384.                move.w  a0,d1
  385.                 subi.w  #$B000,d1
  386.                 beq.s   .bobin2
  387.                 addq.b  #1,$21(a1)
  388.  
  389. .bobin2:
  390.                addq.b  #1,$21(a1)
  391.                 rts
  392. ; ---------------------------------------------------------------------------
  393.  
  394. .bou:
  395.                 addq.b  #1,$21(a1)
  396.                 rts
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement