mirror of
https://github.com/mupen64plus/mupen64plus-rsp-hle.git
synced 2025-04-02 10:31:57 -04:00
Refactor alist setvol commands.
This commit is contained in:
parent
7fdab9701c
commit
f1707b5d45
2 changed files with 28 additions and 40 deletions
41
src/ucode1.c
41
src/ucode1.c
|
@ -343,38 +343,23 @@ static void RESAMPLE(uint32_t w1, uint32_t w2)
|
|||
|
||||
static void SETVOL(uint32_t w1, uint32_t w2)
|
||||
{
|
||||
/* Might be better to unpack these depending on the flags... */
|
||||
uint8_t flags = (uint8_t)((w1 >> 16) & 0xff);
|
||||
uint16_t vol = (int16_t)(w1 & 0xffff);
|
||||
uint16_t volrate = (uint16_t)((w2 & 0xffff));
|
||||
uint8_t flags = (w1 >> 16);
|
||||
|
||||
if (flags & A_AUX) {
|
||||
l_alist.dry = (int16_t)vol; /* m_MainVol */
|
||||
l_alist.wet = (int16_t)volrate; /* m_AuxVol */
|
||||
return;
|
||||
l_alist.dry = w1;
|
||||
l_alist.wet = w2;
|
||||
}
|
||||
else {
|
||||
unsigned lr = (flags & A_LEFT) ? 0 : 1;
|
||||
|
||||
/* Set the Source(start) Volumes */
|
||||
if (flags & A_VOL) {
|
||||
if (flags & A_LEFT)
|
||||
l_alist.vol[0] = (int16_t)vol;
|
||||
else
|
||||
/* A_RIGHT */
|
||||
l_alist.vol[1] = (int16_t)vol;
|
||||
return;
|
||||
}
|
||||
|
||||
/* 0x370 Loop Value (shared location)
|
||||
* 0x370 Target Volume (Left)
|
||||
*/
|
||||
|
||||
/* Set the Ramping values Target, Ramp */
|
||||
if (flags & A_LEFT) {
|
||||
l_alist.target[0] = (int16_t)w1;
|
||||
l_alist.rate[0] = (int32_t)w2;
|
||||
} else { /* A_RIGHT */
|
||||
l_alist.target[1] = (int16_t)w1;
|
||||
l_alist.rate[1] = (int32_t)w2;
|
||||
if (flags & A_VOL) {
|
||||
l_alist.vol[lr] = w1;
|
||||
l_alist.vol[lr] = w2;
|
||||
}
|
||||
else {
|
||||
l_alist.target[lr] = w1;
|
||||
l_alist.rate[lr] = w2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
27
src/ucode3.c
27
src/ucode3.c
|
@ -48,19 +48,22 @@ static struct {
|
|||
|
||||
static void SETVOL3(uint32_t w1, uint32_t w2)
|
||||
{
|
||||
uint8_t Flags = (uint8_t)(w1 >> 0x10);
|
||||
if (Flags & 0x4) { /* 288 */
|
||||
if (Flags & 0x2) { /* 290 */
|
||||
l_alist.vol[0] = (int16_t)w1; /* 0x50 */
|
||||
l_alist.dry = (int16_t)(w2 >> 0x10); /* 0x4E */
|
||||
l_alist.wet = (int16_t)w2; /* 0x4C */
|
||||
} else {
|
||||
l_alist.target[1] = (int16_t)w1; /* 0x46 */
|
||||
l_alist.rate[1] = (int32_t)w2; /* 0x48/0x4A */
|
||||
uint8_t flags = (w1 >> 16);
|
||||
|
||||
if (flags & 0x4) {
|
||||
if (flags & 0x2) {
|
||||
l_alist.vol[0] = w1;
|
||||
l_alist.dry = (w2 >> 16);
|
||||
l_alist.wet = w2;
|
||||
}
|
||||
} else {
|
||||
l_alist.target[0] = (int16_t)w1; /* 0x40 */
|
||||
l_alist.rate[0] = (int32_t)w2; /* 0x42/0x44 */
|
||||
else {
|
||||
l_alist.target[1] = w1;
|
||||
l_alist.rate[1] = w2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
l_alist.target[0] = w1;
|
||||
l_alist.rate[0] = w2;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue