PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
s_svsra.c
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright ps2dev - http://www.ps2dev.org
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
11#include "libspu2_internal.h"
12
13static void __attribute__((optimize("no-unroll-loops"))) _spu_wait_SpuSetVoiceSRAttr(void)
14{
15 int i;
16 int v1;
17
18 v1 = 1;
19 for ( i = 0; i < 2; i += 1 )
20 {
21 v1 *= 13;
22 __asm__ __volatile__("" : "+g"(v1) : :);
23 }
24}
25
26void SpuSetVoiceSRAttr(int v_num, u16 sr, int sr_mode)
27{
28 s16 v3;
29 int v4;
30
31 v4 = 8 * v_num;
32 switch ( sr_mode )
33 {
34 case SPU_VOICE_LINEARIncN:
35 v3 = 0;
36 break;
37 case SPU_VOICE_EXPIncN:
38 v3 = 512;
39 break;
40 case SPU_VOICE_EXPDec:
41 v3 = 768;
42 break;
43 default:
44 v3 = 256;
45 break;
46 }
47 _spu_RXX[512 * _spu_core + 4 + v4] = (_spu_RXX[512 * _spu_core + 4 + v4] & 0x3F) | ((sr | (u16)v3) << 6);
48 _spu_wait_SpuSetVoiceSRAttr();
49}
typedef __attribute__
Definition tlbfunc.c:60