sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
vs_vtbp.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 "
libsnd2_internal.h
"
12
13
static
s16 vabid_old_2 = -1;
14
15
s16 SsVabTransBodyPartly(u8 *addr,
unsigned
int
bufsize, s16 vab_id)
16
{
17
unsigned
int
bufsize_tmp;
18
int
new_vabid;
19
20
if
( (u16)vab_id >= 0x11u || _svm_vab_used[vab_id] != 2 )
21
{
22
_spu_setInTransfer(0);
23
return
-1;
24
}
25
if
( !_svm_vab_not_send_size )
26
{
27
vabid_old_2 = vab_id;
28
_svm_vab_not_send_size = _svm_vab_total[vab_id];
29
SpuSetTransferMode(SPU_TRANSFER_BY_DMA);
30
if
( !SpuSetTransferStartAddr(_svm_vab_start[vab_id]) )
31
{
32
_svm_vab_not_send_size = 0;
33
vabid_old_2 = -1;
34
_spu_setInTransfer(0);
35
return
-1;
36
}
37
}
38
new_vabid = vabid_old_2;
39
if
( vabid_old_2 != vab_id )
40
{
41
_spu_setInTransfer(0);
42
return
-1;
43
}
44
bufsize_tmp = bufsize;
45
if
( (
unsigned
int
)_svm_vab_not_send_size < bufsize )
46
bufsize_tmp = _svm_vab_not_send_size;
47
_spu_setInTransfer(1);
48
SpuWritePartly(addr, bufsize_tmp);
49
_svm_vab_not_send_size -= bufsize_tmp;
50
if
( _svm_vab_not_send_size != 0 )
51
{
52
return
-2;
53
}
54
vabid_old_2 = -1;
55
_svm_vab_not_send_size = 0;
56
_svm_vab_used[new_vabid] = 1;
57
return
new_vabid;
58
}
libsnd2_internal.h
libsnd2
src
vm
vs_vtbp.c
Generated by
1.18.0