sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_srmt.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
int
SpuSetReverbModeType(
int
mode)
14
{
15
unsigned
int
v1;
16
int
v2;
17
vu16 *v4;
18
int
v5;
19
vu16 *v6;
20
libspu2_reverb_param_entry_t v7;
21
22
v1 = mode;
23
v2 = 0;
24
if
( (mode & SPU_REV_MODE_CLEAR_WA) != 0 )
25
{
26
v1 = mode & ~SPU_REV_MODE_CLEAR_WA;
27
v2 = 1;
28
}
29
if
( v1 >= SPU_REV_MODE_MAX )
30
{
31
return
-1;
32
}
33
_spu_rev_attr.mode = v1;
34
_spu_rev_offsetaddr = SpuGetReverbEndAddr() - (8 * _spu_rev_workareasize[v1] - 2);
35
memcpy(&v7, &_spu_rev_param[v1], 0x44u);
36
v7.flags = 0;
37
switch
( v1 )
38
{
39
case
SPU_REV_MODE_ECHO:
40
_spu_rev_attr.feedback = 127;
41
_spu_rev_attr.delay = 127;
42
break
;
43
case
SPU_REV_MODE_DELAY:
44
_spu_rev_attr.feedback = 0;
45
_spu_rev_attr.delay = 127;
46
break
;
47
default
:
48
_spu_rev_attr.feedback = 0;
49
_spu_rev_attr.delay = 0;
50
break
;
51
}
52
v4 = &_spu_RXX[512 * _spu_core];
53
v5 = (v4[205] >> 7) & 1;
54
if
( v5 )
55
v4[205] &= ~0x80u;
56
v6 = &_spu_RXX[20 * _spu_core];
57
v6[946] = 0;
58
v6[947] = 0;
59
_spu_rev_attr.depth.left = 0;
60
_spu_rev_attr.depth.right = 0;
61
_spu_setReverbAttr(&v7);
62
if
( v2 )
63
SpuClearReverbWorkArea(v1);
64
_spu_FsetRXX(368, _spu_rev_offsetaddr, 1);
65
if
( v5 )
66
{
67
_spu_RXX[512 * _spu_core + 205] |= 0x80u;
68
}
69
return
0;
70
}
libspu2_internal.h
core
libspu2
src
s_srmt.c
Generated by
1.18.0