jaudio_NES: improve jaudio_NES/dspdriver

This commit is contained in:
Cuyler36
2025-06-21 06:54:40 -04:00
parent 0ca2cb3551
commit 7d1e56c04a
2 changed files with 15 additions and 15 deletions
+1
View File
@@ -991,6 +991,7 @@ struct dspch_ {
u8 _03; // _03
u16 _04; // _04
u16 _06; // _06
// u32 _08; // _08
jc_* _08; // _08
DSPChannelCallback _0C; // _0C
+14 -15
View File
@@ -53,16 +53,16 @@ void InitDSPchannel()
*/
dspch_* AllocDSPchannel(u32 param_1, u32 param_2)
{
jc_* jc = (jc_*)param_2;
s32 i;
u32* p2 = &param_2;
s32* ip = &i;
if (param_1 == 0) {
for (i = 0; i < DSPCH_LENGTH; ++i) {
if (DSPCH[i]._01 == 0) {
DSPCH[i]._01 = TRUE;
DSPCH[i]._08 = (jc_*)param_2;
// @nonmatching - r0/r6 regswap
DSPCH[i]._01 = true;
DSPCH[i]._08 = jc;
DSPCH[i]._03 = 1;
DSP_AllocInit(i);
return &DSPCH[i];
@@ -316,13 +316,13 @@ void UpdateDSPchannelAll()
BreakLowerActiveDSPchannel(0x7e);
}
dspch_* chan;
for (u32 i = 0; i < DSPCH_LENGTH; i++) {
dspch_* chan = &DSPCH[i];
dspch_** chanptr = &chan;
chan = &DSPCH[i];
if (chan->_01 == FALSE) {
continue;
}
DSPchannel_* buf = GetDspHandle(chan->buffer_idx);
if (buf->done) {
if (chan->_0C) {
@@ -344,14 +344,13 @@ void UpdateDSPchannelAll()
}
if (chan->_0C) {
u16* ptr = &chan->_06;
u16 a = *ptr;
if (a) {
*ptr = a - 1;
if (chan->_06) {
chan->_06--;
}
if (*ptr == 0) {
*ptr = chan->_0C(chan, 0);
if (*ptr == 0) {
if (chan->_06 == 0) {
chan->_06 = chan->_0C(chan, 0);
if (chan->_06 == 0) {
buf->done = FALSE;
buf->enabled = FALSE;
__Entry_WaitChannel(1);