/* ===============================
	F-ZERO X ROM/64DD VERSION
	SOUND HEADER FILE
	PROGRAMED BY NINTENDO Co. Ltd.
	TARO BANDO
   =============================== */
#define	SOUND_SW	1

/* ===============================
	SYSTEM FUNCTION AREA
	(for Main Programmer Function)
   =============================== */
#ifndef _AUDIOOBJECT_
extern void Nas_InitAudio(u64 *ptr, s32 len);
extern void Nas_InitAudio_ROM(void);
extern void Nas_InitAudio_DD(u8 *seq,u8 *bank,u8 *wave);
extern void Nas_AudioInput(void);
extern RSPTask *Nas_AudioMainFZ(void);
extern void Nas_SetRomHandler( s32 (*dmaproc)());
extern void Nas_SetDiskHandler( s32 (*diskproc)());
#endif

/* ===============================
	USER FUNCTION AREA
	(for Main Programmer Function)
   =============================== */
extern void Na_Reset(void);
extern void Na_SeSeq_Start(void);
extern void Na_SeADDSeq_Start(void);
extern void Na_SeADDSeq_Stop(void);
extern void Na_BetaBgm_Start(u8);
extern void Na_BetaBgm_Stop(void);
extern void Na_BetaBgm_Stop2(void);
extern void Na_BetaBgm_Stop3(void);
//extern void Na_NormalBgm_Start(u8);
//extern void Na_NormalBgm_Stop(void);
extern void Na_PlyEng_Start(u8);
extern void Na_PlyEng_Stop(u8);
extern void Na_SystemSE_Start(u8);
extern void Na_SystemSE_Start_Inter(u8);
extern void Na_AddSE_Start(u8);		
extern void Na_PlyTrgSE_Start(u8, u8);
extern void Na_PlyLevelSE_Start(u8, u8);
extern void Na_PlyLevelSE_Stop(u8, u8);
extern void Na_Near_Enemy_Set(u8);
extern void Na_Near_Enemy_Pan(u8);
extern void Na_ChangeSoundMode(u8);
extern void Na_ChangePlayerMode(u8);
extern void Na_EngEcho_Start(u8);
extern void Na_EngEcho_Stop(u8);
extern void Na_Level_SE_Fadeout(void);
extern void Na_Player_Goal(u8);
extern void Na_SetOutMode(u8);
extern void Na_DDBgm_Start(u8);
extern void Na_DDBgm_Stop(void);
extern void Na_DDBgm_Ready(u8);
extern void Na_All_Sound_Off(void);
extern void Na_ROMBgm_Start(u8);
extern void Na_ROMBgm_Stop();
extern void Na_START_DEMO(void);
extern void Na_hanabi(u8 ,u8);
extern void Na_Guitor_Start(void);
extern void Na_chakuchi(u8, f32);
extern u8   Na_DD_Access(void);
extern void Na_Enemy_Trg_Enable(void);
extern void Na_PlyEng_Start_Win_Run(u8);
extern void Na_RETIRE(void);

/* ===============================
	USER FUNCTION AREA
	(for Sound Programmer Function)
   =============================== */
extern RSPTask *Nas_AudioMain(void);
extern void Nas_AudioInput(void);
extern void Na_SE_Start(u8,u8);
extern void Na_SE_Stop(u8);
extern void Nas_SubTr_Mute(s32,s32,s32);
extern void Na_PauseSet(u8);
extern void Na_SpecChange(s32);
#define Na_SoundOutModeSet(n) Nap_SetOutMode(n)

/* ===============================
	AUDIO SYSTEM DEFINE
	(for Sound Programmer)
   =============================== */
#define _AUDIOMESLISTSIZE_ 32

/* ===============================
	TRIGER SE DEFINE
	(for Main Programmer)
   =============================== */
#define SE_TRIG_NULL		0x00
#define SE_JIRAI			0x01
#define SE_KAITEN			0x02
#define SE_CRUSH1			0x03
#define SE_CRUSH2			0x04
#define SE_BAKUHATU			0x05
#define SE_SLIDE			0x06
#define SE_FUNSHA			0x07
#define SE_BAKUHATU2		0x08
#define SE_TWO				0x09
#define SE_ONE				0x0a
#define SE_GO				0x0b
#define SE_PAUSE_ON			0x0c
#define SE_PAUSE_OFF		0x0d
#define SE_PAUSE_OUT		0x0e
#define SE_GOAL_SE			0x0f
#define SE_CANCEL			0x10
#define VOICE_BOOST			0x11
#define VOICE_FINAL			0x12
#define SE_ALART1			0x13
#define SE_ALART2			0x14
#define SE_ALART3			0x15
#define SE_CLICK			0x16
#define SE_DEFORUME			0x17
#define SE_ICON1			0x18
#define SE_ICON2			0x19
#define SE_ICON3			0x1a
#define SE_ICON4			0x1b
#define SE_ICON5			0x1c
#define SE_ICON6			0x1d
#define SE_CURSOL			0x1e
#define SE_COUNT_UP			0x1f
#define SE_BUBU				0x20
#define SE_DECIDE			0x21
#define SE_LAP_DISP			0x22
#define SE_CURSOL_EDT		0x23
#define SE_DECIDE_EDT		0x24
#define SE_CANCEL_EDT		0x25
#define SE_CLICK_EDT		0x26
#define SE_POINT_EDT		0x27
#define SE_LIFTUP			0x28
#define SE_ACCELLON			0x29
#define VOICE_NEW_RECORD	0x2a
#define VOICE_SEE_YOU       0x2b
#define VOICE_LOST			0x2c
#define SE_HANABI			0x2d
#define SE_KAKUSHI_COMMAND	0x2e
#define SE_THREE			0x2f
#define VOICE_BINGO			0x30
#define SE_SLOT_PUSH		0x31
#define SE_HIBANA			0x32
#define VOICE_NUMBER_ONE	0x33
#define VOICE_FALL_MAN		0x34
#define VOICE_FALL_GIRL		0x35
#define SE_CHAKUCHI         0x36
#define SE_JUMP             0x37
#define VOICE_BEST_LAP		0x38
#define SE_GET_STAR			0x39
#define VOICE_BEHIND		0x3a
#define VOICE_NOBODY		0x3b
#define VOICE_CRAZY			0x3c
#define VOICE_FINISH		0x3d
#define SE_KETTEI			0x3e
#define SE_SCROLL			0x3f
#define SE_DAIUP			0x40
#define SE_RANKUP			0x41
#define SE_RANKDOWN			0x42
#define VOICE_YEAR			0x43

#define VOICE_HURRYUP		0x00
#define VOICE_DANGER		0x00
#define VOICE_EXTEND		0x00
#define VOICE_RANKUP_MAN	0x00
#define VOICE_RANKDOWN_MAN	0x00
#define VOICE_RANKUP_GIRL	0x00
#define VOICE_RANKDOWN_GIRL	0x00

/* ===============================
	64DD ADD TRIGER SE DEFINE
	(for Main Programmer)
   =============================== */
#define ADDSE_TRIG_NULL		0x00
#define ADDSE_TEST1			0x01
#define ADDSE_TEST2			0x02

/* ===============================
	LEVEL SE DEFINE
	(for Sound Programmer)
   =============================== */
#define SE_LEVEL_NULL			0x00
#define SE_TEKI_ENGINE00		0x01

#define SE_ENGINE00				0x02
#define SE_GYAKUSOU				0x03
#define SE_CHARGE				0x04
#define SE_DIRT					0x05
#define SE_DRIFT				0x06
#define SE_ENGINE_WIN_RUN		0x07
#define SE_KAZE					0x08
#define SE_BRAKE				0x09
#define SE_HEIKOU				0x0a
#define SE_WATER				0x0b

#define SE_2PM_ENGINE00			0x0c
#define SE_2PM_GYAKUSOU			0x0d
#define SE_2PM_CHARGE			0x0e
#define SE_2PM_DIRT				0x0f
#define SE_2PM_DRIFT			0x10
#define SE_2PM_ENGINE_WIN_RUN	0x11
#define SE_2PM_KAZE				0x12
#define SE_2PM_BRAKE			0x13
#define SE_2PM_HEIKOU			0x14
#define SE_2PM_WATER			0x15

#define SE_3P4PM_ENGINE00		0x16
#define SE_3P4PM_GYAKUSOU		0x17
#define SE_3P4PM_CHARGE			0x18
#define SE_3P4PM_DIRT			0x19
#define SE_3P4PM_DRIFT			0x1a
#define SE_3P4PM_ENGINE_WIN_RUN	0x1b
#define SE_3P4PM_KAZE			0x1c
#define SE_3P4PM_BRAKE			0x1d
#define SE_3P4PM_HEIKOU			0x1e
#define SE_3P4PM_WATER			0x1f
//#define SAP_LEV_SE_OFFSET		(SE_2PM_WATER - SE_WATER)
#define SAP_LEV_SE_OFFSET		0x0a

/* ===============================
	ROM STREEM DATA BGM DEFINE
	(for Main Programmer)
   =============================== */
#define BGM_MUTE_CITY		0x00
#define BGM_SILENCE			0x01
#define BGM_SAND_OCEAN		0x02
#define BGM_PORT_TOWN		0x03
#define BGM_BIG_BLUE		0x04
#define BGM_DEVILS_FOREST	0x05
#define BGM_RED_CANYON		0x06
#define BGM_SECTOR			0x07
#define BGM_WHITE_LAND		0x08
#define BGM_FIRE_FIELD		BGM_SAND_OCEAN
#ifdef DISK_FLAG
#define BGM_RAINBOW_ROAD	0x0c
#else
#define BGM_RAINBOW_ROAD	BGM_SECTOR
#endif
#define BGM_SPACE_PLANT		BGM_RED_CANYON
#define BGM_BIG_HAND		BGM_WHITE_LAND
#define BGM_TITLE			0x0d
#define BGM_SELECT			0x0e
#define BGM_OPTION			0x0f
#define BGM_GOAL_DEMO3		0x10
#define BGM_GOAL_DEMO		0x11
#define BGM_GAMEOVER		0x12
#define BGM_GOAL_DEMO2		0x13
#define BGM_GP_GAMEOVER		0x14
#define BGM_GP_END_DEMO		0x15
#define BGM_ENDING			0x16
#define BGM_START_DEMO		0x17
#define BGM_DEATHRACE		0x18

/* ===============================
	64DD STREEM DATA BGM DEFINE
	(for Main Programmer)
   =============================== */
#define DDBGM_MUTE_CITY		0x00
#define DDBGM_SILENCE		0x01
#define DDBGM_SAND_OCEAN	0x02
#define DDBGM_PORT_TOWN		0x03
#define DDBGM_BIG_BLUE		0x04
#define DDBGM_DEVILS_FOREST	0x05
#define DDBGM_RED_CANYON	0x06
#define DDBGM_SECTOR		0x07
#define DDBGM_WHITE_LAND	0x08
#define DDBGM_FIRE_FIELD	BGM_SAND_OCEAN
#define DDBGM_RAINBOW_ROAD	0x0c
#define DDBGM_SPACE_PLANT	BGM_RED_CANYON
#define DDBGM_BIG_HAND		BGM_WHITE_LAND
#define DDBGM_DEATHRACE		0x09

/* ===============================
	Normal BGM (SEQUENCE BGM) DEFINE
	(for Main Programmer)
   =============================== */
//#define SEQ_BGM_GP_GAMEOVER	0x02

/* ===============================
	 Output Mode Define
	(for Main Programmer)
   =============================== */
#define WIDE_MODE		0
#define HEADPHONE_MODE	1
#define STEREO_MODE		2
#define MONO_MODE		3

/* ===============================
	End Of Sound Header File
   =============================== */
