sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_crwa.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
SpuClearReverbWorkArea(
int
mode)
14
{
15
int
ck_1;
16
unsigned
int
m;
17
unsigned
int
n;
18
u32 t;
19
int
ck_2;
20
void (*bk)(void);
21
22
bk = 0;
23
ck_1 = 0;
24
if
( (
unsigned
int
)mode >= SPU_REV_MODE_MAX )
25
return
-1;
26
if
( mode )
27
{
28
m = 8 * _spu_rev_workareasize[mode];
29
n = (SpuGetReverbEndAddr() - m) >> 1;
30
}
31
else
32
{
33
m = 32;
34
n = 2097120;
35
}
36
printf(
"### addr = %u size = %u\n"
, n, m);
37
t = _spu_transMode;
38
if
( _spu_transMode == 1 )
39
{
40
_spu_transMode = 0;
41
ck_1 = 1;
42
}
43
ck_2 = 1;
44
if
( _spu_transferCallback )
45
{
46
bk = _spu_transferCallback;
47
_spu_transferCallback = 0;
48
}
49
while
( ck_2 )
50
{
51
int
m_tmp;
52
53
m_tmp = 1024;
54
if
( m < 0x401 )
55
{
56
m_tmp = m;
57
ck_2 = 0;
58
}
59
gDMADeliverEvent = 0;
60
_spu_t(2, n);
61
_spu_t(1);
62
_spu_t(3, _spu_zerobuf, m_tmp);
63
while
( !gDMADeliverEvent )
64
;
65
gDMADeliverEvent = 0;
66
m -= 1024;
67
n += 512;
68
}
69
if
( ck_1 )
70
_spu_transMode = t;
71
if
( bk )
72
{
73
_spu_transferCallback = bk;
74
}
75
return
0;
76
}
libspu2_internal.h
core
libspu2
src
s_crwa.c
Generated by
1.18.0