Bond697 icon

Chatter

Bond697 | PRO | 06/15/12 12:04:49 AM UTC | 0 ⭐ | 576 👁️ | Never ⏰ | []
C |

8.34 KB

|

None

|

0 👍

/

0 👎

timer = (u64)SND_TIMER_CLOCK * 0x8000 / sampleRate / speed;
    if ( timer < SND_CHANNEL_TIMER_MIN ) timer = SND_CHANNEL_TIMER_MIN;
    else if ( timer > SND_CHANNEL_TIMER_MAX ) timer = SND_CHANNEL_TIMER_MAX;
 
------------------------------------------------------------------------------------
 
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. 
 
------------------------------------------------------------------------------------
 
RAM_ARM9:02072AB8             ; =============== S U B R O U T I N E =======================================
RAM_ARM9:02072AB8
RAM_ARM9:02072AB8
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)
RAM_ARM9:02072AB8             NNS_SndWaveOutStart__                   ; CODE XREF: playPKMCry__+5Cp
RAM_ARM9:02072AB8                                                     ; playPKMCry__+C8p
RAM_ARM9:02072AB8
RAM_ARM9:02072AB8             var_30          = -0x30
RAM_ARM9:02072AB8             var_2C          = -0x2C
RAM_ARM9:02072AB8             var_28          = -0x28
RAM_ARM9:02072AB8             var_24          = -0x24
RAM_ARM9:02072AB8             loopStartSample =  0
RAM_ARM9:02072AB8             samples         =  4
RAM_ARM9:02072AB8             sampleRate      =  8
RAM_ARM9:02072AB8             volume          =  0xC
RAM_ARM9:02072AB8             speed           =  0x10
RAM_ARM9:02072AB8             pan             =  0x14
RAM_ARM9:02072AB8
RAM_ARM9:02072AB8 F8 43 2D E9                 STMFD   SP!, {R3-R9,LR}
RAM_ARM9:02072ABC 18 D0 4D E2                 SUB     SP, SP, #0x18
RAM_ARM9:02072AC0 01 80 B0 E1                 MOVS    R8, R1
RAM_ARM9:02072AC4 00 90 A0 E1                 MOV     R9, R0
RAM_ARM9:02072AC8 02 70 A0 E1                 MOV     R7, R2
RAM_ARM9:02072ACC 03 60 A0 E1                 MOV     R6, R3
RAM_ARM9:02072AD0 04 00 00 0A                 BEQ     loc_2072AE8
RAM_ARM9:02072AD4 01 00 58 E3                 CMP     R8, #1
RAM_ARM9:02072AD8 07 00 00 0A                 BEQ     loc_2072AFC
RAM_ARM9:02072ADC 02 00 58 E3                 CMP     R8, #2
RAM_ARM9:02072AE0 0A 00 00 0A                 BEQ     loc_2072B10
RAM_ARM9:02072AE4 0D 00 00 EA                 B       loc_2072B20
RAM_ARM9:02072AE8             ; ---------------------------------------------------------------------------
RAM_ARM9:02072AE8
RAM_ARM9:02072AE8             loc_2072AE8                             ; CODE XREF: NNS_SndWaveOutStart__+18j
RAM_ARM9:02072AE8 38 10 9D E5                 LDR     R1, [SP,#0x38]
RAM_ARM9:02072AEC 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
RAM_ARM9:02072AF0 41 41 A0 E1                 MOV     R4, R1,ASR#2
RAM_ARM9:02072AF4 40 51 64 E0                 RSB     R5, R4, R0,ASR#2
RAM_ARM9:02072AF8 08 00 00 EA                 B       loc_2072B20
RAM_ARM9:02072AFC             ; ---------------------------------------------------------------------------
RAM_ARM9:02072AFC
RAM_ARM9:02072AFC             loc_2072AFC                             ; CODE XREF: NNS_SndWaveOutStart__+20j
RAM_ARM9:02072AFC 38 10 9D E5                 LDR     R1, [SP,#0x38]
RAM_ARM9:02072B00 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
RAM_ARM9:02072B04 C1 40 A0 E1                 MOV     R4, R1,ASR#1
RAM_ARM9:02072B08 C0 50 64 E0                 RSB     R5, R4, R0,ASR#1
RAM_ARM9:02072B0C 03 00 00 EA                 B       loc_2072B20
RAM_ARM9:02072B10             ; ---------------------------------------------------------------------------
RAM_ARM9:02072B10
RAM_ARM9:02072B10             loc_2072B10                             ; CODE XREF: NNS_SndWaveOutStart__+28j
RAM_ARM9:02072B10 38 10 9D E5                 LDR     R1, [SP,#0x38]
RAM_ARM9:02072B14 3C 00 9D E5                 LDR     R0, [SP,#0x3C]
RAM_ARM9:02072B18 C1 41 A0 E1                 MOV     R4, R1,ASR#3
RAM_ARM9:02072B1C C0 51 64 E0                 RSB     R5, R4, R0,ASR#3
RAM_ARM9:02072B20
RAM_ARM9:02072B20             loc_2072B20                             ; CODE XREF: NNS_SndWaveOutStart__+2Cj
RAM_ARM9:02072B20                                                     ; NNS_SndWaveOutStart__+40j ...
RAM_ARM9:02072B20 40 20 9D E5                 LDR     R2, [SP,#0x38+sampleRate] ; num2
RAM_ARM9:02072B24 C0 00 9F E5                 LDR     R0, =0xD87F8000 ; num1
RAM_ARM9:02072B28 C2 3F A0 E1                 MOV     R3, R2,ASR#31
RAM_ARM9:02072B2C 7F 10 A0 E3                 MOV     R1, #0x7F ; ''
RAM_ARM9:02072B30 3B A5 00 EB                 BL      division64BitUnsigned__
RAM_ARM9:02072B34 48 20 9D E5                 LDR     R2, [SP,#0x48]  ; num2
RAM_ARM9:02072B38 C2 3F A0 E1                 MOV     R3, R2,ASR#31
RAM_ARM9:02072B3C 38 A5 00 EB                 BL      division64BitUnsigned__
RAM_ARM9:02072B40 00 00 51 E3                 CMP     R1, #0
RAM_ARM9:02072B44 10 20 A0 E3                 MOV     R2, #0x10
RAM_ARM9:02072B48 10 00 50 03                 CMPEQ   R0, #0x10
RAM_ARM9:02072B4C 00 30 A0 E3                 MOV     R3, #0
RAM_ARM9:02072B50 02 00 A0 31                 MOVCC   R0, R2
RAM_ARM9:02072B54 03 00 00 3A                 BCC     loc_2072B68
RAM_ARM9:02072B58 90 20 9F E5                 LDR     R2, =0xFFFF
RAM_ARM9:02072B5C 03 00 51 E1                 CMP     R1, R3
RAM_ARM9:02072B60 02 00 50 01                 CMPEQ   R0, R2
RAM_ARM9:02072B64 02 00 A0 81                 MOVHI   R0, R2
RAM_ARM9:02072B68
RAM_ARM9:02072B68             loc_2072B68                             ; CODE XREF: NNS_SndWaveOutStart__+9Cj
RAM_ARM9:02072B68 44 10 9D E5                 LDR     R1, [SP,#0x44]
RAM_ARM9:02072B6C 30 00 8D E8                 STMEA   SP, {R4,R5}
RAM_ARM9:02072B70 08 10 8D E5                 STR     R1, [SP,#8]
RAM_ARM9:02072B74 00 10 A0 E3                 MOV     R1, #0
RAM_ARM9:02072B78 0C 10 8D E5                 STR     R1, [SP,#0xC]
RAM_ARM9:02072B7C 00 00 56 E3                 CMP     R6, #0
RAM_ARM9:02072B80 01 30 A0 13                 MOVNE   R3, #1
RAM_ARM9:02072B84 4C 10 9D E5                 LDR     R1, [SP,#0x4C]
RAM_ARM9:02072B88 10 00 8D E5                 STR     R0, [SP,#0x10]
RAM_ARM9:02072B8C 14 10 8D E5                 STR     R1, [SP,#0x14]
RAM_ARM9:02072B90 00 00 99 E5                 LDR     R0, [R9]
RAM_ARM9:02072B94 02 30 A0 03                 MOVEQ   R3, #2
RAM_ARM9:02072B98 08 10 A0 E1                 MOV     R1, R8
RAM_ARM9:02072B9C 07 20 A0 E1                 MOV     R2, R7
RAM_ARM9:02072BA0 B4 5A 00 EB                 BL      SND_SetupChannelPcm__
RAM_ARM9:02072BA4 00 10 A0 E3                 MOV     R1, #0
RAM_ARM9:02072BA8 00 00 99 E5                 LDR     R0, [R9]
RAM_ARM9:02072BAC 01 20 A0 E3                 MOV     R2, #1
RAM_ARM9:02072BB0 12 00 A0 E1                 MOV     R0, R2,LSL R0
RAM_ARM9:02072BB4 01 20 A0 E1                 MOV     R2, R1
RAM_ARM9:02072BB8 01 30 A0 E1                 MOV     R3, R1
RAM_ARM9:02072BBC 42 5A 00 EB                 BL      SND_StartTimer__
RAM_ARM9:02072BC0 01 00 A0 E3                 MOV     R0, #1
RAM_ARM9:02072BC4 08 00 89 E5                 STR     R0, [R9,#8]
RAM_ARM9:02072BC8 00 00 A0 E3                 MOV     R0, #0
RAM_ARM9:02072BCC 0C 00 89 E5                 STR     R0, [R9,#0xC]
RAM_ARM9:02072BD0 60 5C 00 EB                 BL      SND_GetCurrentCommandTag__
RAM_ARM9:02072BD4 10 00 89 E5                 STR     R0, [R9,#0x10]
RAM_ARM9:02072BD8 40 10 9D E5                 LDR     R1, [SP,#0x40]
RAM_ARM9:02072BDC 01 00 A0 E3                 MOV     R0, #1
RAM_ARM9:02072BE0 04 10 89 E5                 STR     R1, [R9,#4]
RAM_ARM9:02072BE4 18 D0 8D E2                 ADD     SP, SP, #0x18
RAM_ARM9:02072BE8 F8 83 BD E8                 LDMFD   SP!, {R3-R9,PC}
RAM_ARM9:02072BE8             ; End of function NNS_SndWaveOutStart__
RAM_ARM9:02072BE8
RAM_ARM9:02072BE8             ; ---------------------------------------------------------------------------
RAM_ARM9:02072BEC             ; unsigned __int64 dword_2072BEC
RAM_ARM9:02072BEC 00 80 7F D8 dword_2072BEC   DCD 0xD87F8000          ; DATA XREF: NNS_SndWaveOutStart__+6Cr
RAM_ARM9:02072BF0 FF FF 00 00 dword_2072BF0   DCD 0xFFFF              ; DATA XREF: NNS_SndWaveOutStart__+A0r

Comments