#include "externals.h"\r
#include "registers.h"\r
#include "spu_config.h"\r
+#include "spu.h"\r
\r
static void SoundOn(int start,int end,unsigned short val);\r
static void SoundOff(int start,int end,unsigned short val);\r
break;\r
//-------------------------------------------------//\r
case H_SPUdata:\r
- *(unsigned short *)(spu.spuMemC + spu.spuAddr) = val;\r
+ *(unsigned short *)(spu.spuMemC + spu.spuAddr) = HTOLE16(val);\r
spu.spuAddr += 2;\r
spu.spuAddr &= 0x7fffe;\r
break;\r
\r
case H_SPUdata:\r
{\r
- unsigned short s = *(unsigned short *)(spu.spuMemC + spu.spuAddr);\r
+ unsigned short s = LE16TOH(*(unsigned short *)(spu.spuMemC + spu.spuAddr));\r
spu.spuAddr += 2;\r
spu.spuAddr &= 0x7fffe;\r
return s;\r
case H_SPUMute2:\r
log_unhandled("r isOn: %08lx\n", reg);\r
break;\r
+\r
+ case 0x0dac:\r
+ case H_SPUirqAddr:\r
+ case H_CDLeft:\r
+ case H_CDRight:\r
+ case H_ExtLeft:\r
+ case H_ExtRight:\r
+ break;\r
+\r
+ default:\r
+ if (r >= 0xda0)\r
+ log_unhandled("spu r %08lx\n", reg);\r
+ break;\r
}\r
\r
return spu.regArea[(r-0xc00)>>1];\r
spu.s_chan[ch].iRawPitch = NP;\r
spu.s_chan[ch].sinc = NP << 4;\r
spu.s_chan[ch].sinc_inv = 0;\r
- spu.SB[ch * SB_SIZE + 32] = 1; // -> freq change in simple interpolation mode: set flag\r
+ spu.s_chan[ch].bNewPitch = 1;\r
\r
// don't mess spu.dwChannelsAudible as adsr runs independently\r
}\r