sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_do.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
SpuSetDigitalOut(
int
mode)
14
{
15
s16 v1;
16
s16 v3;
17
18
v1 = *((vu16 *)0xBF9007C0);
19
v3 = *((vu16 *)0xBF9007C6);
20
switch
( mode & 0xF )
21
{
22
case
SPU_SPDIF_OUT_OFF:
23
v1 &= ~0x128;
24
break
;
25
case
SPU_SPDIF_OUT_PCM:
26
v3 &= ~2;
27
v1 &= ~0x128;
28
v1 |= 0x20;
29
break
;
30
case
SPU_SPDIF_OUT_BITSTREAM:
31
v3 |= 2;
32
v1 &= ~0x128;
33
v1 |= 0x100;
34
break
;
35
case
SPU_SPDIF_OUT_BYPASS:
36
v1 &= ~0x128;
37
v1 |= 8;
38
break
;
39
default
:
40
break
;
41
}
42
switch
( mode & 0xF0 )
43
{
44
case
SPU_SPDIF_COPY_PROHIBIT:
45
v3 |= 0x8000;
46
break
;
47
case
SPU_SPDIF_COPY_NORMAL:
48
default
:
49
v3 &= ~0x8000;
50
break
;
51
}
52
switch
( mode & 0xF00 )
53
{
54
case
SPU_SPDIF_MEDIA_DVD:
55
*((vu16 *)0xBF9007C8) = 512;
56
v3 |= 0x1800;
57
break
;
58
case
SPU_SPDIF_MEDIA_CD:
59
*((vu16 *)0xBF9007C8) = 0;
60
v3 &= ~0x1800;
61
break
;
62
default
:
63
*((vu16 *)0xBF9007C8) = 512;
64
v3 &= ~0x1800;
65
v3 |= 0x800;
66
break
;
67
}
68
*((vu16 *)0xBF9007C0) = v1;
69
*((vu16 *)0xBF9007C6) = v3;
70
}
libspu2_internal.h
core
libspu2
src
s_do.c
Generated by
1.18.0