From: notaz Date: Sun, 9 Jul 2023 15:57:54 +0000 (+0300) Subject: Merge pull request #292 from pcercuei/dfsound-big-endian X-Git-Tag: r24~262 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d66d894c6563cbfb78fe8ccc0b374809fc44b0d;hp=-c;p=pcsx_rearmed.git Merge pull request #292 from pcercuei/dfsound-big-endian dfsound: Fix issues on big-endian systems --- 4d66d894c6563cbfb78fe8ccc0b374809fc44b0d diff --combined plugins/dfsound/registers.c index 2f577494,badd0af0..adc9c3a5 --- a/plugins/dfsound/registers.c +++ b/plugins/dfsound/registers.c @@@ -22,6 -22,7 +22,7 @@@ #include "externals.h" #include "registers.h" #include "spu_config.h" + #include "spu.h" static void SoundOn(int start,int end,unsigned short val); static void SoundOff(int start,int end,unsigned short val); @@@ -127,7 -128,7 +128,7 @@@ void CALLBACK SPUwriteRegister(unsigne break; //-------------------------------------------------// case H_SPUdata: - *(unsigned short *)(spu.spuMemC + spu.spuAddr) = val; + *(unsigned short *)(spu.spuMemC + spu.spuAddr) = HTOLE16(val); spu.spuAddr += 2; spu.spuAddr &= 0x7fffe; break; @@@ -149,8 -150,6 +150,8 @@@ goto rvbd; //-------------------------------------------------// case H_SPUirqAddr: + //if (val & 1) + // log_unhandled("w irq with lsb: %08lx %04x\n", reg, val); spu.pSpuIrq=spu.spuMemC+(((unsigned long) val<<3)&~0xf); goto upd_irq; //-------------------------------------------------// @@@ -336,7 -335,7 +337,7 @@@ unsigned short CALLBACK SPUreadRegister case H_SPUdata: { - unsigned short s = *(unsigned short *)(spu.spuMemC + spu.spuAddr); + unsigned short s = LE16TOH(*(unsigned short *)(spu.spuMemC + spu.spuAddr)); spu.spuAddr += 2; spu.spuAddr &= 0x7fffe; return s; @@@ -506,7 -505,7 +507,7 @@@ static void SetPitch(int ch,unsigned sh spu.s_chan[ch].iRawPitch = NP; spu.s_chan[ch].sinc = NP << 4; spu.s_chan[ch].sinc_inv = 0; - spu.SB[ch * SB_SIZE + 32] = 1; // -> freq change in simple interpolation mode: set flag + spu.s_chan[ch].bNewPitch = 1; // don't mess spu.dwChannelsAudible as adsr runs independently }