Advertisement
Dotsarecool

Weird Yoshi Animation

Dec 10th, 2015
381
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.75 KB | None | 0 0
  1. CODE_01EA8F: AD E8 18 LDA.W $18E8 ; < yoshi growing animation timer
  2. CODE_01EA92: 0D C6 13 ORA.W $13C6 ; < cutscene address
  3. CODE_01EA95: F0 03 BEQ CODE_01EA9A
  4. CODE_01EA97: 4C 48 EB JMP.W CODE_01EB48 ; if not zero jump all the way to.....
  5.  
  6. CODE_01EA9A: 9C DC 18 STZ.W $18DC
  7. CODE_01EA9D: B5 C2 LDA RAM_SpriteState,X
  8. CODE_01EA9F: C9 02 CMP.B #$02
  9. CODE_01EAA1: 90 04 BCC CODE_01EAA7
  10. CODE_01EAA3: A9 30 LDA.B #$30
  11. CODE_01EAA5: 80 0B BRA CODE_01EAB2
  12.  
  13. CODE_01EAA7: A0 00 LDY.B #$00
  14. CODE_01EAA9: A5 7B LDA RAM_MarioSpeedX ; \ Branch if Mario X speed == 0
  15. CODE_01EAAB: F0 32 BEQ CODE_01EADF ; /
  16. CODE_01EAAD: 10 03 BPL CODE_01EAB2 ; \ If Mario X speed is positive,
  17. CODE_01EAAF: 49 FF EOR.B #$FF ; | invert it
  18. CODE_01EAB1: 1A INC A ; /
  19. CODE_01EAB2: 4A LSR ; \ Y = Upper 4 bits of X speed
  20. CODE_01EAB3: 4A LSR ; |
  21. CODE_01EAB4: 4A LSR ; |
  22. CODE_01EAB5: 4A LSR ; |
  23. CODE_01EAB6: A8 TAY ; /
  24. CODE_01EAB7: A5 9D LDA RAM_SpritesLocked ; \ Branch if sprites locked
  25. CODE_01EAB9: D0 15 BNE CODE_01EAD0 ; /
  26. CODE_01EABB: DE 70 15 DEC.W $1570,X ; \ If time to change frame...
  27. CODE_01EABE: 10 10 BPL CODE_01EAD0 ; |
  28. CODE_01EAC0: B9 F5 ED LDA.W DATA_01EDF5,Y ; | Set time to display new frame (based on Mario's X speed)
  29. CODE_01EAC3: 9D 70 15 STA.W $1570,X ; |
  30. CODE_01EAC6: CE AD 18 DEC.W $18AD ; | Set index to new frame, $18AD = ($18AD-1) % 3
  31. CODE_01EAC9: 10 05 BPL CODE_01EAD0 ; |
  32. CODE_01EACB: A9 02 LDA.B #$02 ; |
  33. CODE_01EACD: 8D AD 18 STA.W $18AD ; /
  34. CODE_01EAD0: AC AD 18 LDY.W $18AD ; \ Y = frame to show
  35. CODE_01EAD3: B9 EE ED LDA.W YoshiWalkFrames,Y ; |
  36. CODE_01EAD6: A8 TAY ; /
  37. CODE_01EAD7: B5 C2 LDA RAM_SpriteState,X
  38. CODE_01EAD9: C9 02 CMP.B #$02
  39. CODE_01EADB: B0 51 BCS CODE_01EB2E
  40. CODE_01EADD: 80 03 BRA CODE_01EAE2
  41.  
  42. CODE_01EADF: 9E 70 15 STZ.W $1570,X
  43. CODE_01EAE2: A5 72 LDA RAM_IsFlying
  44. CODE_01EAE4: F0 0A BEQ CODE_01EAF0
  45. CODE_01EAE6: A0 02 LDY.B #$02
  46. CODE_01EAE8: A5 7D LDA RAM_MarioSpeedY
  47. CODE_01EAEA: 10 04 BPL CODE_01EAF0
  48. CODE_01EAEC: A0 05 LDY.B #$05
  49. CODE_01EAEE: 80 00 BRA CODE_01EAF0
  50.  
  51. CODE_01EAF0: BD AC 15 LDA.W $15AC,X
  52. CODE_01EAF3: F0 02 BEQ CODE_01EAF7
  53. CODE_01EAF5: A0 03 LDY.B #$03
  54. CODE_01EAF7: A5 72 LDA RAM_IsFlying
  55. CODE_01EAF9: D0 26 BNE CODE_01EB21
  56. CODE_01EAFB: BD 1C 15 LDA.W $151C,X
  57. CODE_01EAFE: F0 0C BEQ CODE_01EB0C
  58. CODE_01EB00: A0 07 LDY.B #$07
  59. CODE_01EB02: A5 15 LDA RAM_ControllerA
  60. CODE_01EB04: 29 08 AND.B #$08
  61. CODE_01EB06: F0 02 BEQ CODE_01EB0A
  62. CODE_01EB08: A0 06 LDY.B #$06
  63. CODE_01EB0A: 80 15 BRA CODE_01EB21
  64.  
  65. CODE_01EB0C: AD AF 18 LDA.W $18AF
  66. CODE_01EB0F: F0 05 BEQ CODE_01EB16
  67. CODE_01EB11: CE AF 18 DEC.W $18AF
  68. CODE_01EB14: 80 06 BRA CODE_01EB1C
  69.  
  70. CODE_01EB16: A5 15 LDA RAM_ControllerA
  71. CODE_01EB18: 29 04 AND.B #$04
  72. CODE_01EB1A: F0 05 BEQ CODE_01EB21
  73. CODE_01EB1C: A0 04 LDY.B #$04
  74. CODE_01EB1E: EE DC 18 INC.W $18DC
  75. CODE_01EB21: B5 C2 LDA RAM_SpriteState,X
  76. CODE_01EB23: C9 01 CMP.B #$01
  77. CODE_01EB25: F0 07 BEQ CODE_01EB2E
  78. CODE_01EB27: BD 1C 15 LDA.W $151C,X
  79. CODE_01EB2A: D0 02 BNE CODE_01EB2E
  80. CODE_01EB2C: A0 04 LDY.B #$04
  81. CODE_01EB2E: AD 7A 18 LDA.W RAM_OnYoshi
  82. CODE_01EB31: F0 11 BEQ CODE_01EB44
  83. CODE_01EB33: AD 19 14 LDA.W RAM_YoshiInPipe
  84. CODE_01EB36: C9 01 CMP.B #$01
  85. CODE_01EB38: D0 0A BNE CODE_01EB44
  86. CODE_01EB3A: A5 13 LDA RAM_FrameCounter
  87. CODE_01EB3C: 29 08 AND.B #$08
  88. CODE_01EB3E: 4A LSR
  89. CODE_01EB3F: 4A LSR
  90. CODE_01EB40: 4A LSR
  91. CODE_01EB41: 69 08 ADC.B #$08
  92. CODE_01EB43: A8 TAY
  93. CODE_01EB44: 98 TYA
  94. CODE_01EB45: 9D 02 16 STA.W $1602,X
  95. CODE_01EB48: B5 C2 LDA RAM_SpriteState,X ; ... here
  96. CODE_01EB4A: C9 01 CMP.B #$01
  97. CODE_01EB4C: D0 49 BNE CODE_01EB97
  98. CODE_01EB4E: BC 7C 15 LDY.W RAM_SpriteDir,X
  99. CODE_01EB51: A5 94 LDA RAM_MarioXPos
  100. CODE_01EB53: 18 CLC
  101. CODE_01EB54: 79 F1 ED ADC.W YoshiPositionX,Y
  102. CODE_01EB57: 95 E4 STA RAM_SpriteXLo,X
  103. CODE_01EB59: A5 95 LDA RAM_MarioXPosHi
  104. CODE_01EB5B: 79 F3 ED ADC.W DATA_01EDF3,Y
  105. CODE_01EB5E: 9D E0 14 STA.W RAM_SpriteXHi,X
  106. CODE_01EB61: BC 02 16 LDY.W $1602,X
  107. CODE_01EB64: A5 96 LDA RAM_MarioYPos
  108. CODE_01EB66: 18 CLC
  109. CODE_01EB67: 69 10 ADC.B #$10
  110. CODE_01EB69: 95 D8 STA RAM_SpriteYLo,X
  111. CODE_01EB6B: A5 97 LDA RAM_MarioYPosHi
  112. CODE_01EB6D: 69 00 ADC.B #$00
  113. CODE_01EB6F: 9D D4 14 STA.W RAM_SpriteYHi,X
  114. CODE_01EB72: B9 E4 ED LDA.W DATA_01EDE4,Y
  115. CODE_01EB75: 8D 8B 18 STA.W $188B
  116. CODE_01EB78: A9 01 LDA.B #$01
  117. CODE_01EB7A: BC 02 16 LDY.W $1602,X
  118. CODE_01EB7D: C0 03 CPY.B #$03
  119. CODE_01EB7F: D0 01 BNE BackOnYoshi
  120. CODE_01EB81: 1A INC A
  121. BackOnYoshi: 8D 7A 18 STA.W RAM_OnYoshi
  122. CODE_01EB85: A9 01 LDA.B #$01
  123. CODE_01EB87: 8D C1 0D STA.W RAM_OWHasYoshi
  124. CODE_01EB8A: BD F6 15 LDA.W RAM_SpritePal,X ; \ $13C7 = Yoshi palette
  125. CODE_01EB8D: 8D C7 13 STA.W RAM_YoshiColor ; /
  126. CODE_01EB90: BD 7C 15 LDA.W RAM_SpriteDir,X
  127. CODE_01EB93: 49 01 EOR.B #$01
  128. CODE_01EB95: 85 76 STA RAM_MarioDirection
  129. CODE_01EB97: A5 64 LDA $64
  130. CODE_01EB99: 48 PHA
  131. CODE_01EB9A: AD 7A 18 LDA.W RAM_OnYoshi
  132. CODE_01EB9D: F0 0E BEQ CODE_01EBAD
  133. CODE_01EB9F: AD 19 14 LDA.W RAM_YoshiInPipe
  134. CODE_01EBA2: F0 09 BEQ CODE_01EBAD
  135. CODE_01EBA4: AD 05 14 LDA.W $1405
  136. CODE_01EBA7: D0 07 BNE CODE_01EBB0
  137. CODE_01EBA9: A9 10 LDA.B #$10
  138. CODE_01EBAB: 85 64 STA $64
  139. CODE_01EBAD: 20 61 EE JSR.W HandleOffYoshi
  140. CODE_01EBB0: 68 PLA
  141. CODE_01EBB1: 85 64 STA $64
  142. Return01EBB3: 60 RTS ; Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement