sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_gvada.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
13
void
SpuGetVoiceADSRAttr(
14
int
v_num, u16 *ar, u16 *dr, u16 *sr, u16 *rr, u16 *sl,
int
*ar_mode,
int
*sr_mode,
int
*rr_mode)
15
{
16
const
vu16 *v9;
17
u16 v10;
18
unsigned
int
v11;
19
20
v9 = &_spu_RXX[512 * _spu_core + 8 * (v_num & 0x1F)];
21
v10 = v9[3];
22
v11 = v9[4];
23
*ar = (v10 >> 8) & 0x3F;
24
*ar_mode = SPU_VOICE_LINEARIncN;
25
if
( (v10 & 0x8000) != 0 )
26
*ar_mode = SPU_VOICE_EXPIncN;
27
*dr = (u8)(v10 & 0xF0) >> 4;
28
*sr = (v11 >> 6) & 0x7F;
29
switch
( v11 & 0xE000 )
30
{
31
case
0xc000:
32
*sr_mode = SPU_VOICE_EXPDec;
33
break
;
34
case
0x8000:
35
*sr_mode = SPU_VOICE_EXPIncN;
36
break
;
37
case
0x4000:
38
*sr_mode = SPU_VOICE_LINEARDecN;
39
break
;
40
default
:
41
*sr_mode = SPU_VOICE_LINEARIncN;
42
break
;
43
}
44
*rr = v11 & 0x1F;
45
*rr_mode = SPU_VOICE_LINEARDecN;
46
if
( (v11 & 0x20) != 0 )
47
*rr_mode = SPU_VOICE_EXPDec;
48
*sl = v10 & 0xF;
49
}
libspu2_internal.h
core
libspu2
src
s_gvada.c
Generated by
1.18.0