sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_svada.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
static
void
__attribute__
((optimize(
"no-unroll-loops"
))) _spu_wait_SpuSetVoiceADSRAttr(
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
26
void
SpuSetVoiceADSRAttr(
int
v_num, u16 ar, u16 dr, u16 sr, u16 rr, u16 sl,
int
ar_mode,
int
sr_mode,
int
rr_mode)
27
{
28
s16 v9;
29
s16 v10;
30
int
v11;
31
s16 v12;
32
u16 v13;
33
34
v9 = ((ar & 0x7F) << 8) | (16 * (dr & 0xF));
35
v10 = ((sr & 0x7F) << 6) | (rr & 0x1F);
36
v11 = 8 * v_num;
37
_spu_RXX[512 * _spu_core + 3 + 8 * v_num] = v9 | (sl & 0xF) | ((ar_mode == SPU_VOICE_EXPIncN) << 15);
38
switch
( sr_mode )
39
{
40
case
SPU_VOICE_LINEARIncN:
41
v12 = 0;
42
break
;
43
case
SPU_VOICE_EXPIncN:
44
v12 = 0x8000;
45
break
;
46
case
SPU_VOICE_EXPDec:
47
v12 = 0xC000;
48
break
;
49
default
:
50
v12 = 0x4000;
51
break
;
52
}
53
v13 = v10 | v12;
54
if
( rr_mode == SPU_VOICE_EXPDec )
55
v13 = v10 | v12 | 0x20;
56
_spu_RXX[512 * _spu_core + 4 + v11] = v13;
57
_spu_wait_SpuSetVoiceADSRAttr();
58
}
libspu2_internal.h
__attribute__
Definition
gif_registers.h:40
core
libspu2
src
s_svada.c
Generated by
1.18.0