Advertisement
Bond697

Chatter

Jun 14th, 2012
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.34 KB | None | 0 0
  1. timer = (u64)SND_TIMER_CLOCK * 0x8000 / sampleRate / speed;
  2.     if ( timer < SND_CHANNEL_TIMER_MIN ) timer = SND_CHANNEL_TIMER_MIN;
  3.     else if ( timer > SND_CHANNEL_TIMER_MAX ) timer = SND_CHANNEL_TIMER_MAX;
  4.  
  5. ------------------------------------------------------------------------------------
  6.  
  7. The playback speed specifies the speed used for playback. Played back at speed divided by 32768. The faster playback speed makes the playback time shorter, and the pitch of the played sound becomes higher.
  8.  
  9. ------------------------------------------------------------------------------------
  10.  
  11. RAM_ARM9:02072AB8             ; =============== S U B R O U T I N E =======================================
  12. RAM_ARM9:02072AB8
  13. RAM_ARM9:02072AB8
  14. RAM_ARM9:02072AB8             ; bool __fastcall NNS_SndWaveOutStart__(struct NNSSndWaveOutHandle *handle, struct NNSSndWaveFormat *format, const void *dataaddr, bool loopFlag, int loopStartSample, int samples, int sampleRate, int volume, int speed, int pan)
  15. RAM_ARM9:02072AB8             NNS_SndWaveOutStart__                   ; CODE XREF: playPKMCry__+5Cp
  16. RAM_ARM9:02072AB8                                                     ; playPKMCry__+C8p
  17. RAM_ARM9:02072AB8
  18. RAM_ARM9:02072AB8             var_30          = -0x30
  19. RAM_ARM9:02072AB8             var_2C          = -0x2C
  20. RAM_ARM9:02072AB8             var_28          = -0x28
  21. RAM_ARM9:02072AB8             var_24          = -0x24
  22. RAM_ARM9:02072AB8             loopStartSample =  0
  23. RAM_ARM9:02072AB8             samples         =  4
  24. RAM_ARM9:02072AB8             sampleRate      =  8
  25. RAM_ARM9:02072AB8             volume          =  0xC
  26. RAM_ARM9:02072AB8             speed           =  0x10
  27. RAM_ARM9:02072AB8             pan             =  0x14
  28. RAM_ARM9:02072AB8
  29. RAM_ARM9:02072AB8 F8 43 2D E9                 STMFD   SP!, {R3-R9,LR}
  30. RAM_ARM9:02072ABC 18 D0 4D E2                 SUB     SP, SP, #0x18
  31. RAM_ARM9:02072AC0 01 80 B0 E1                 MOVS    R8, R1
  32. RAM_ARM9:02072AC4 00 90 A0 E1                 MOV     R9, R0
  33. RAM_ARM9:02072AC8 02 70 A0 E1                 MOV     R7, R2
  34. RAM_ARM9:02072ACC 03 60 A0 E1                 MOV     R6, R3
  35. RAM_ARM9:02072AD0 04 00 00 0A                 BEQ     loc_2072AE8
  36. RAM_ARM9:02072AD4 01 00 58 E3                 CMP     R8, #1
  37. RAM_ARM9:02072AD8 07 00 00 0A                 BEQ     loc_2072AFC
  38. RAM_ARM9:02072ADC 02 00 58 E3                 CMP     R8, #2
  39. RAM_ARM9:02072AE0 0A 00 00 0A                 BEQ     loc_2072B10
  40. RAM_ARM9:02072AE4 0D 00 00 EA                 B       loc_2072B20
  41. RAM_ARM9:02072AE8             ; ---------------------------------------------------------------------------
  42. RAM_ARM9:02072AE8
  43. RAM_ARM9:02072AE8             loc_2072AE8                             ; CODE XREF: NNS_SndWaveOutStart__+18j
  44. RAM_ARM9:02072AE8 38 10 9D E5                 LDR     R1, [SP,#0x38]
  45. RAM_ARM9:02072AEC 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
  46. RAM_ARM9:02072AF0 41 41 A0 E1                 MOV     R4, R1,ASR#2
  47. RAM_ARM9:02072AF4 40 51 64 E0                 RSB     R5, R4, R0,ASR#2
  48. RAM_ARM9:02072AF8 08 00 00 EA                 B       loc_2072B20
  49. RAM_ARM9:02072AFC             ; ---------------------------------------------------------------------------
  50. RAM_ARM9:02072AFC
  51. RAM_ARM9:02072AFC             loc_2072AFC                             ; CODE XREF: NNS_SndWaveOutStart__+20j
  52. RAM_ARM9:02072AFC 38 10 9D E5                 LDR     R1, [SP,#0x38]
  53. RAM_ARM9:02072B00 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
  54. RAM_ARM9:02072B04 C1 40 A0 E1                 MOV     R4, R1,ASR#1
  55. RAM_ARM9:02072B08 C0 50 64 E0                 RSB     R5, R4, R0,ASR#1
  56. RAM_ARM9:02072B0C 03 00 00 EA                 B       loc_2072B20
  57. RAM_ARM9:02072B10             ; ---------------------------------------------------------------------------
  58. RAM_ARM9:02072B10
  59. RAM_ARM9:02072B10             loc_2072B10                             ; CODE XREF: NNS_SndWaveOutStart__+28j
  60. RAM_ARM9:02072B10 38 10 9D E5                 LDR     R1, [SP,#0x38]
  61. RAM_ARM9:02072B14 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
  62. RAM_ARM9:02072B18 C1 41 A0 E1                 MOV     R4, R1,ASR#3
  63. RAM_ARM9:02072B1C C0 51 64 E0                 RSB     R5, R4, R0,ASR#3
  64. RAM_ARM9:02072B20
  65. RAM_ARM9:02072B20             loc_2072B20                             ; CODE XREF: NNS_SndWaveOutStart__+2Cj
  66. RAM_ARM9:02072B20                                                     ; NNS_SndWaveOutStart__+40j ...
  67. RAM_ARM9:02072B20 40 20 9D E5                 LDR     R2, [SP,#0x38+sampleRate] ; num2
  68. RAM_ARM9:02072B24 C0 00 9F E5                 LDR     R0, =0xD87F8000 ; num1
  69. RAM_ARM9:02072B28 C2 3F A0 E1                 MOV     R3, R2,ASR#31
  70. RAM_ARM9:02072B2C 7F 10 A0 E3                 MOV     R1, #0x7F ; ''
  71. RAM_ARM9:02072B30 3B A5 00 EB                 BL      division64BitUnsigned__
  72. RAM_ARM9:02072B34 48 20 9D E5                 LDR     R2, [SP,#0x48]  ; num2
  73. RAM_ARM9:02072B38 C2 3F A0 E1                 MOV     R3, R2,ASR#31
  74. RAM_ARM9:02072B3C 38 A5 00 EB                 BL      division64BitUnsigned__
  75. RAM_ARM9:02072B40 00 00 51 E3                 CMP     R1, #0
  76. RAM_ARM9:02072B44 10 20 A0 E3                 MOV     R2, #0x10
  77. RAM_ARM9:02072B48 10 00 50 03                 CMPEQ   R0, #0x10
  78. RAM_ARM9:02072B4C 00 30 A0 E3                 MOV     R3, #0
  79. RAM_ARM9:02072B50 02 00 A0 31                 MOVCC   R0, R2
  80. RAM_ARM9:02072B54 03 00 00 3A                 BCC     loc_2072B68
  81. RAM_ARM9:02072B58 90 20 9F E5                 LDR     R2, =0xFFFF
  82. RAM_ARM9:02072B5C 03 00 51 E1                 CMP     R1, R3
  83. RAM_ARM9:02072B60 02 00 50 01                 CMPEQ   R0, R2
  84. RAM_ARM9:02072B64 02 00 A0 81                 MOVHI   R0, R2
  85. RAM_ARM9:02072B68
  86. RAM_ARM9:02072B68             loc_2072B68                             ; CODE XREF: NNS_SndWaveOutStart__+9Cj
  87. RAM_ARM9:02072B68 44 10 9D E5                 LDR     R1, [SP,#0x44]
  88. RAM_ARM9:02072B6C 30 00 8D E8                 STMEA   SP, {R4,R5}
  89. RAM_ARM9:02072B70 08 10 8D E5                 STR     R1, [SP,#8]
  90. RAM_ARM9:02072B74 00 10 A0 E3                 MOV     R1, #0
  91. RAM_ARM9:02072B78 0C 10 8D E5                 STR     R1, [SP,#0xC]
  92. RAM_ARM9:02072B7C 00 00 56 E3                 CMP     R6, #0
  93. RAM_ARM9:02072B80 01 30 A0 13                 MOVNE   R3, #1
  94. RAM_ARM9:02072B84 4C 10 9D E5                 LDR     R1, [SP,#0x4C]
  95. RAM_ARM9:02072B88 10 00 8D E5                 STR     R0, [SP,#0x10]
  96. RAM_ARM9:02072B8C 14 10 8D E5                 STR     R1, [SP,#0x14]
  97. RAM_ARM9:02072B90 00 00 99 E5                 LDR     R0, [R9]
  98. RAM_ARM9:02072B94 02 30 A0 03                 MOVEQ   R3, #2
  99. RAM_ARM9:02072B98 08 10 A0 E1                 MOV     R1, R8
  100. RAM_ARM9:02072B9C 07 20 A0 E1                 MOV     R2, R7
  101. RAM_ARM9:02072BA0 B4 5A 00 EB                 BL      SND_SetupChannelPcm__
  102. RAM_ARM9:02072BA4 00 10 A0 E3                 MOV     R1, #0
  103. RAM_ARM9:02072BA8 00 00 99 E5                 LDR     R0, [R9]
  104. RAM_ARM9:02072BAC 01 20 A0 E3                 MOV     R2, #1
  105. RAM_ARM9:02072BB0 12 00 A0 E1                 MOV     R0, R2,LSL R0
  106. RAM_ARM9:02072BB4 01 20 A0 E1                 MOV     R2, R1
  107. RAM_ARM9:02072BB8 01 30 A0 E1                 MOV     R3, R1
  108. RAM_ARM9:02072BBC 42 5A 00 EB                 BL      SND_StartTimer__
  109. RAM_ARM9:02072BC0 01 00 A0 E3                 MOV     R0, #1
  110. RAM_ARM9:02072BC4 08 00 89 E5                 STR     R0, [R9,#8]
  111. RAM_ARM9:02072BC8 00 00 A0 E3                 MOV     R0, #0
  112. RAM_ARM9:02072BCC 0C 00 89 E5                 STR     R0, [R9,#0xC]
  113. RAM_ARM9:02072BD0 60 5C 00 EB                 BL      SND_GetCurrentCommandTag__
  114. RAM_ARM9:02072BD4 10 00 89 E5                 STR     R0, [R9,#0x10]
  115. RAM_ARM9:02072BD8 40 10 9D E5                 LDR     R1, [SP,#0x40]
  116. RAM_ARM9:02072BDC 01 00 A0 E3                 MOV     R0, #1
  117. RAM_ARM9:02072BE0 04 10 89 E5                 STR     R1, [R9,#4]
  118. RAM_ARM9:02072BE4 18 D0 8D E2                 ADD     SP, SP, #0x18
  119. RAM_ARM9:02072BE8 F8 83 BD E8                 LDMFD   SP!, {R3-R9,PC}
  120. RAM_ARM9:02072BE8             ; End of function NNS_SndWaveOutStart__
  121. RAM_ARM9:02072BE8
  122. RAM_ARM9:02072BE8             ; ---------------------------------------------------------------------------
  123. RAM_ARM9:02072BEC             ; unsigned __int64 dword_2072BEC
  124. RAM_ARM9:02072BEC 00 80 7F D8 dword_2072BEC   DCD 0xD87F8000          ; DATA XREF: NNS_SndWaveOutStart__+6Cr
  125. RAM_ARM9:02072BF0 FF FF 00 00 dword_2072BF0   DCD 0xFFFF              ; DATA XREF: NNS_SndWaveOutStart__+A0r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement