Advertisement
Iso_Kilo

Sonic 1 - Tails tails port

May 13th, 2019
2,319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; This is just the object. Other scripts will be released later.
  2. ; ----------------------------------------------------------------------------
  3. ; Object 05 - Tails' tails
  4. ; ----------------------------------------------------------------------------
  5.  
  6. ; Sprite_1D200:
  7. Obj05:
  8.         moveq #0,d0
  9.         move.b $24(a0),d0
  10.         move.w Obj05_States(pc,d0.w),d1
  11.         jmp Obj05_States(pc,d1.w)
  12.  
  13. ; ==========================================================================
  14. ; off_1D20E:
  15. Obj05_States:
  16.     dc.w Obj05_Init-Obj05_States
  17.     dc.w Obj05_Main-Obj05_States
  18.  
  19. ; ===========================================================================
  20. ; loc_1D212
  21. Obj05_Init:
  22.         addq.b #2,$24(a0) ; => Obj05_Main
  23.         move.l #Map_Tails,4(a0)
  24.         move.w #$7A0,2(a0)
  25.         move.b #2,$18(a0)
  26.         move.b #$18,$19(a0)
  27.         move.b #4,1(a0)
  28.  
  29. ; loc_1D23A:
  30. Obj05_Main:
  31.         move.w   a0,($FFFFD800+$3E).w
  32.         move.b ($FFFFD026).w,$26(a0)
  33.         move.b ($FFFFD022).w,$22(a0)
  34.         move.w ($FFFFD008).w,8(a0)
  35.         move.w ($FFFFD00C).w,$C(a0)
  36.         andi.w #$7FFF,2(a0)
  37.         tst.w ($FFFFD002).w
  38.         bpl.s Branch1
  39.         ori.w #$8000,2(a0)
  40.  
  41. Branch1:
  42.         moveq #0,d0
  43.         move.b ($FFFFD01C).w,d0
  44.         btst #5,($FFFFD022).w
  45.         beq.s Branch2
  46.         moveq #4,d0
  47.  
  48. Branch2:
  49.         cmp.b $30(a0),d0
  50.         beq.s loc_1D288
  51.         move.b d0,$30(a0)
  52.         move.b Obj05AniSelection(pc,d0.w),$1C(a0)
  53.  
  54. loc_1D288:
  55.         lea (Obj05AniData).l,a1
  56.         bsr.w Tails_Animate_Part2
  57.         bsr.w LoadTailsTailsDynPLC
  58.         jsr DisplaySprite
  59.         rts
  60.  
  61. ; ===========================================================================
  62. ; animation master script table for the tails
  63. ; chooses which animation script to run depending on what Tails is doing
  64. ; byte_1D29E:
  65. Obj05AniSelection:
  66.     dc.b 0,0 ; TailsAni_Walk,Run ->
  67.     dc.b 3 ; TailsAni_Roll -> Directional
  68.     dc.b 3 ; TailsAni_Roll2 -> Directional
  69.     dc.b 9 ; TailsAni_Push -> Pushing
  70.     dc.b 1 ; TailsAni_Wait -> Swish
  71.     dc.b 0 ; TailsAni_Balance -> Blank
  72.     dc.b 2 ; TailsAni_LookUp -> Flick
  73.     dc.b 1 ; TailsAni_Duck -> Swish
  74.     dc.b 7 ; TailsAni_Spindash -> Spindash
  75.     dc.b 0,0,0 ; TailsAni_Dummy1,2,3 ->
  76.     dc.b 8 ; TailsAni_Stop -> Skidding
  77.     dc.b 0,0 ; TailsAni_Float,2 ->
  78.     dc.b 0 ; TailsAni_Spring ->
  79.     dc.b 0 ; TailsAni_Hang ->
  80.     dc.b 0,0 ; TailsAni_Blink,2 ->
  81.     dc.b $A ; TailsAni_Hang2 -> Hanging
  82.     dc.b 0 ; TailsAni_Bubble ->
  83.     dc.b 0,0,0,0 ; TailsAni_Death,2,3,4 ->
  84.     dc.b 0,0 ; TailsAni_Hurt,Slide ->
  85.     dc.b 0 ; TailsAni_Blank ->
  86.     dc.b 0,0 ; TailsAni_Dummy4,5 ->
  87.     dc.b 0 ; TailsAni_HaulAss ->
  88.     dc.b 0 ; TailsAni_Fly ->
  89.         even
  90.  
  91. ; ---------------------------------------------------------------------------
  92. ; Animation script - Tails' tails
  93. ; ---------------------------------------------------------------------------
  94. ; off_1D2C0:
  95. Obj05AniData:
  96.         include "Art\Animations\TailsTails.asm"
  97.         even
  98.  
  99. ; ---------------------------------------------------------------------------
  100. ; Tails' Tails pattern loading subroutine
  101. ; ---------------------------------------------------------------------------
  102. ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
  103.  
  104. ; loc_1D184:
  105. LoadTailsTailsDynPLC:
  106.         moveq   #0,d0
  107.         move.b  $1A(a0),d0
  108.         cmp.b   ($FFFFF7DF).w,d0
  109.         beq.s   return_1D1FE
  110.         move.b  d0,($FFFFF7DF).w
  111.         lea (TailsDynPLC).l,a2
  112.         add.w   d0,d0
  113.         adda.w  (a2,d0.w),a2
  114.         moveq.l #0,d5
  115.         move.b  (a2)+,d5
  116.         subq.w  #1,d5
  117.         bmi.s   return_1D1FE
  118.     ;   move.w  #-$A00,d4
  119.         move.w  #-$C00,d4
  120.         move.l  #Art_Tails,d6 ; load Tails's art
  121.         jmp SPLC_ReadEntry
  122.  
  123. return_1D1FE:
  124.     rts
  125.  
  126. ; ===========================================================================
  127. JmpTo2_KillCharacter:
  128.         jmp KillTails
  129.  
  130. ; ===========================================================================
  131.         even
  132.  
  133. ; ===========================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement