sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_sk.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
SpuSetKey(
int
on_off,
unsigned
int
voice_bit)
14
{
15
unsigned
int
voice_bit_tmp;
16
17
voice_bit_tmp = voice_bit & 0xFFFFFF;
18
switch
( on_off )
19
{
20
case
SPU_OFF:
21
if
( (_spu_env & 1) != 0 )
22
{
23
_spu_RQ[2] = voice_bit_tmp & 0xFFFF;
24
_spu_RQ[3] = (voice_bit_tmp >> 16) & 0xFFFF;
25
_spu_RQmask |= 1u;
26
_spu_RQvoice &= ~voice_bit_tmp;
27
if
( (_spu_RQ[0] & (u16)voice_bit_tmp) != 0 )
28
_spu_RQ[0] &= ~(u16)voice_bit_tmp;
29
if
( (_spu_RQ[1] & ((voice_bit_tmp >> 16) & 0xFFFF)) != 0 )
30
_spu_RQ[1] &= ~((voice_bit_tmp >> 16) & 0xFFFF);
31
}
32
else
33
{
34
_spu_RXX[512 * _spu_core + 210] = voice_bit_tmp & 0xFFFF;
35
_spu_RXX[512 * _spu_core + 211] = (voice_bit_tmp >> 16) & 0xFFFF;
36
_spu_keystat[_spu_core] &= ~voice_bit_tmp;
37
}
38
break
;
39
case
SPU_ON:
40
if
( (_spu_env & 1) != 0 )
41
{
42
_spu_RQ[0] = voice_bit_tmp & 0xFFFF;
43
_spu_RQ[1] = (voice_bit_tmp >> 16) & 0xFFFF;
44
_spu_RQmask |= 1u;
45
_spu_RQvoice |= voice_bit_tmp;
46
if
( (_spu_RQ[2] & (u16)voice_bit_tmp) != 0 )
47
_spu_RQ[2] &= ~(u16)voice_bit_tmp;
48
if
( (_spu_RQ[3] & ((voice_bit_tmp >> 16) & 0xFFFF)) != 0 )
49
_spu_RQ[3] &= ~((voice_bit_tmp >> 16) & 0xFFFF);
50
}
51
else
52
{
53
_spu_RXX[512 * _spu_core + 208] = voice_bit_tmp & 0xFFFF;
54
_spu_RXX[512 * _spu_core + 209] = (voice_bit_tmp >> 16) & 0xFFFF;
55
_spu_keystat[_spu_core] |= voice_bit_tmp;
56
}
57
break
;
58
default
:
59
break
;
60
}
61
}
libspu2_internal.h
core
libspu2
src
s_sk.c
Generated by
1.18.0