Exemple #1
0
SdTransIntrHandler TransIntrHandlers[2];
IntrCallback TransIntrCallbacks[2];
#ifndef ISJPCM
u16 SpdifSettings;
void *Spu2IntrData;
SdSpu2IntrHandler Spu2IntrHandler;
IntrCallback Spu2IrqCallback;
#endif
IntrData TransIntrData[2];

#ifndef ISJPCM
volatile u16 *ParamRegList[] =
	{
		SD_VP_VOLL(0, 0), SD_VP_VOLR(0, 0), SD_VP_PITCH(0, 0), SD_VP_ADSR1(0, 0),
		SD_VP_ADSR2(0, 0), SD_VP_ENVX(0, 0), SD_VP_VOLXL(0, 0), SD_VP_VOLXR(0, 0),
		SD_P_MMIX(0), SD_P_MVOLL(0), SD_P_MVOLR(0), SD_P_EVOLL(0),
		SD_P_EVOLR(0), SD_P_AVOLL(0), SD_P_AVOLR(0), SD_P_BVOLL(0),
		SD_P_BVOLR(0), SD_P_MVOLXL(0), SD_P_MVOLXR(0), SD_S_PMON_HI(0),
		SD_S_NON_HI(0), SD_A_KON_HI(0), SD_A_KON_HI(0), SD_S_ENDX_HI(0),
		SD_S_VMIXL_HI(0), SD_S_VMIXEL_HI(0), SD_S_VMIXR_HI(0), SD_S_VMIXER_HI(0),
		SD_A_ESA_HI(0), SD_A_EEA_HI(0), SD_A_TSA_HI(0), SD_CORE_IRQA(0),
		SD_VA_SSA_HI(0, 0), SD_VA_LSAX(0, 0), SD_VA_NAX(0, 0), SD_CORE_ATTR(0),
		SD_A_TSA_HI(0), SD_A_STD(0),
		// 1AE & 1B0 are both related to core attr & dma somehow
		U16_REGISTER(0x1AE), U16_REGISTER(0x1B0),
		(u16 *)0xBF900334

};
#endif

s32 TransInterrupt(void *data)
Exemple #2
0
// Core / Volume Registers
void InitCoreVolume(s32 flag)
{
	*SD_C_SPDIF_OUT = 0xC032;

	if(flag)
	{
		*SD_CORE_ATTR(0) = SD_SPU2_ON | SD_ENABLE_EFFECTS | SD_MUTE;
		*SD_CORE_ATTR(1) = SD_SPU2_ON | SD_ENABLE_EFFECTS | SD_MUTE | SD_ENABLE_EX_INPUT;
	}
	else
	{
		*SD_CORE_ATTR(0) = SD_SPU2_ON | SD_MUTE;
		*SD_CORE_ATTR(1) = SD_SPU2_ON | SD_MUTE | SD_ENABLE_EX_INPUT;
	}

	// HIgh is voices 0-15, LOw is 16-23, representing voices 0..23 (24)
	*SD_S_VMIXL_HI(0)	= 0xFFFF;
	*SD_S_VMIXL_LO(0)	= 0xFF;
	*SD_S_VMIXR_HI(0)	= 0xFFFF;
	*SD_S_VMIXR_LO(0)	= 0xFF;
	*SD_S_VMIXEL_HI(0)	= 0xFFFF;
	*SD_S_VMIXEL_LO(0)	= 0xFF;
	*SD_S_VMIXER_HI(0)	= 0xFFFF;
	*SD_S_VMIXER_LO(0)	= 0xFF;

	*SD_S_VMIXL_HI(1)	= 0xFFFF;
	*SD_S_VMIXL_LO(1)	= 0xFF;
	*SD_S_VMIXR_HI(1)	= 0xFFFF;
	*SD_S_VMIXR_LO(1)	= 0xFF;
	*SD_S_VMIXEL_HI(1)	= 0xFFFF;
	*SD_S_VMIXEL_LO(1)	= 0xFF;
	*SD_S_VMIXER_HI(1)	= 0xFFFF;
	*SD_S_VMIXER_LO(1)	= 0xFF;

	*SD_P_MMIX(0) = 0xFF0;
	*SD_P_MMIX(1) = 0xFFC;

	if(flag == 0)
	{
		*SD_P_MVOLL(0) = 0;
		*SD_P_MVOLR(0) = 0;
		*SD_P_MVOLL(1) = 0;
		*SD_P_MVOLR(1) = 0;

		*SD_P_EVOLL(0) = 0;
		*SD_P_EVOLL(1) = 0;

		*SD_P_EVOLR(0) = 0;
		*SD_P_EVOLR(1) = 0;

		// Effect End Address, Upper part
		*SD_A_EEA_HI(0) = 0xE;
		*SD_A_EEA_HI(1) = 0xF;
	}

	*SD_P_AVOLL(0) = 0;
	*SD_P_AVOLR(0) = 0;
	// Core 1 External Input Volume.
	// The external Input is Core 0's output.
	*SD_P_AVOLL(1) = 0x7FFF;
	*SD_P_AVOLR(1) = 0x7FFF;

	*SD_P_BVOLL(0) = 0;
	*SD_P_BVOLR(0) = 0;
	*SD_P_BVOLL(1) = 0;
	*SD_P_BVOLR(1) = 0;
}