sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_gvva.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
SpuGetVoiceVolumeAttr(
int
v_num, s16 *voll, s16 *volr, s16 *voll_mode, s16 *volr_mode)
14
{
15
const
vu16 *v5;
16
u16 v6;
17
u16 v7;
18
s16 v8;
19
s16 v10;
20
21
v5 = &_spu_RXX[512 * _spu_core + 8 * (v_num & 0x1F)];
22
v6 = *v5;
23
v7 = v5[1];
24
v8 = 0;
25
if
( (v6 & 0x8000) != 0 )
26
{
27
switch
( v6 & 0xF000 )
28
{
29
case
0x8000:
30
v8 = SPU_VOICE_LINEARIncN;
31
break
;
32
case
0x9000:
33
v8 = SPU_VOICE_LINEARIncR;
34
break
;
35
case
0xa000:
36
v8 = SPU_VOICE_LINEARDecN;
37
break
;
38
case
0xb000:
39
v8 = SPU_VOICE_LINEARDecR;
40
break
;
41
case
0xc000:
42
v8 = SPU_VOICE_EXPIncN;
43
break
;
44
case
0xd000:
45
v8 = SPU_VOICE_EXPIncR;
46
break
;
47
case
0xe000:
48
case
0xf000:
49
v8 = SPU_VOICE_EXPDec;
50
break
;
51
default
:
52
break
;
53
}
54
v6 &= ~0xF000;
55
}
56
v10 = 0;
57
if
( (v7 & 0x8000) != 0 )
58
{
59
switch
( v7 & 0xF000 )
60
{
61
case
0x8000:
62
v10 = SPU_VOICE_LINEARIncN;
63
break
;
64
case
0x9000:
65
v10 = SPU_VOICE_LINEARIncR;
66
break
;
67
case
0xa000:
68
v10 = SPU_VOICE_LINEARDecN;
69
break
;
70
case
0xb000:
71
v10 = SPU_VOICE_LINEARDecR;
72
break
;
73
case
0xc000:
74
v10 = SPU_VOICE_EXPIncN;
75
break
;
76
case
0xd000:
77
v10 = SPU_VOICE_EXPIncR;
78
break
;
79
case
0xe000:
80
case
0xf000:
81
v10 = SPU_VOICE_EXPDec;
82
break
;
83
default
:
84
break
;
85
}
86
v7 &= ~0xF000;
87
}
88
*voll_mode = v8;
89
*volr_mode = v10;
90
if
( v6 < 0x4000u )
91
*voll = v6;
92
else
93
*voll = v6 + 0x8000;
94
if
( v7 < 0x4000u )
95
*volr = v7;
96
else
97
*volr = v7 + 0x8000;
98
}
libspu2_internal.h
core
libspu2
src
s_gvva.c
Generated by
1.18.0