sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
ccadsr.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
void
_SsUtResolveADSR(u16 adsr1, u16 adsr2, u16 *adsr_buf)
14
{
15
adsr_buf[5] = adsr1 & 0x8000;
16
adsr_buf[6] = adsr2 & 0x8000;
17
adsr_buf[8] = adsr2 & 0x4000;
18
adsr_buf[7] = adsr2 & 0x20;
19
*adsr_buf = (adsr1 >> 8) & 0x7F;
20
adsr_buf[1] = (u8)adsr1 >> 4;
21
adsr_buf[2] = adsr1 & 0xF;
22
adsr_buf[3] = (adsr2 >> 6) & 0x7F;
23
adsr_buf[4] = adsr2 & 0x1F;
24
}
25
26
void
_SsUtBuildADSR(
const
u16 *adsr_buf, u16 *adsr1, u16 *adsr2)
27
{
28
unsigned
int
v5;
29
s16 v6;
30
unsigned
int
v7;
31
u16 v8;
32
33
v5 = adsr_buf[6] != 0 ? 0xFFFF8000 : 0;
34
v6 = v5;
35
v7 = adsr_buf[5] != 0 ? 0xFFFF8000 : 0;
36
if
( adsr_buf[8] )
37
v6 = v5 | 0x4000;
38
if
( adsr_buf[7] )
39
v6 |= 0x20u;
40
v8 = v6 | ((adsr_buf[3] << 6) & 0x1FC0) | (adsr_buf[4] & 0x1F);
41
*adsr1 = v7 | ((*adsr_buf << 8) & 0x7F00) | ((16 * adsr_buf[1]) & 0xF0) | (adsr_buf[2] & 0xF);
42
*adsr2 = v8;
43
}
libsnd2_internal.h
libsnd2
src
ccadsr.c
Generated by
1.18.0