/* ##############################################################

           Wave Race 64               AUDIO MACRO SET
  
		    1996/08/02 version.

   ############################################################## */

 
/* #define _AUDIOMESLISTSIZE_ 32 */

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      Communication Types 
 	  Definition
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@  */
   
typedef struct
    {
/* common parameters  */

	s8 speed;
	s8 power;
	s8 angle;
	s8 contact;
	s8 boost;

/* this is old parameter */

        u8 boostvol;		
	s8 oldboost;
	s8 onwater;
	s8 oldpower;
	s8 oldturbolevel;
        s16 jumptimer;
        s16 crashtimer;

/* Are below parameters player only? */
        s8 turbolevel;	/*** Power - Up ***/
        s8 sink;
        s8 splashside;
        s8 splashpow;
        s8 crashtype;
        s8 crashpow;
        s8 crashside;
        s8 crashstatus;	/** 0: kasuri
			    1: burasagari
			    2: tentou	  **/
        
        s8 oldcrashtype;
	s8 oldcrashstatus;
	s8 man;
        s8 rank;
	s8 oldrank;
        s8 character;	    /** 0-3 **/
        s8 uso_boost;	    /** 1: Uso boost sound (trig) **/

	s8 inner_mode_counter;  /** !=0 ---> uso_inner counter. **/	
	s8 inner_speed;		/** uso_inner speed. **/	
	s8 oldspeed;


	f32 vib_power;	    /*** 0.0(MIN) -  1.00f (MAX) ***/
	f32 vib_power_water;	    /*** 0.0(MIN) -  1.00f (MAX) ***/

	s8  rank_changing_timer;
    }
    NA_Playersound_;


typedef struct
    {
	f32 distance;	/*** far from camera. ***/
	s8 contact_old;
  	s8 contact;	/*** water in/ out status  1: in water 0: out  ***/
  	s8 speed;	/*** dolphin move speed	   0-127	       ***/
  	s8 pan;		/*** x direction on screen 0:Left - 127:Right  ***/
        s8 action;	/*** cry / crash / etc...  0:No action (TRIG)  ***/
    }
    NA_Dolphinsound_;
         



#ifndef _AUDIOOBJECT_

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          Interface Grobals
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

#ifndef _INC_AUDIOEXT_

#if 0
   
extern u32   NA_RANDOM;
extern int   NA_CURINTSET;
extern int   NA_SMES_INPUT[_AUDIOMESLISTSIZE_];
extern short NA_SMES_OUTPUT[_AUDIOMESLISTSIZE_];

#endif


#endif

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
          System Function
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */


extern void     Nas_InitAudio(void);
/* extern void     Nas_InitGAudio(void); */
 extern RSPTask  *Nas_AudioMain(void);

extern void     Nas_AudioInput(void);

extern void     Nas_SceneSetup(s32 scenenum, s32 optionnum);
extern void	Nas_SyncFadeOut(s32 scenenum);
extern void	Nas_DemoStageSetup(s32 racemode,s32 coursenum);


extern void     Nas_SeSeqStart(s32);

extern void     Nas_SetAudioMode(s32 mode);
extern void     Nas_SetAudioMode_Silent(s32 mode);

extern void     Nas_RaceBgmOn(void);
extern void     Nas_RaceBgmOff(void);

extern void     Nas_PlayBgmDirect(s32 musnumber);


extern void     Nas_StartReset(void);

extern void     Nas_SetBgmVolume(s32 level);

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     External Sound Functions
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

extern void Na_RadioBgmNoiseMode(s32);

extern void Nas_GoalFanfare();

extern void Nas_BgmSeqFadeout(s32);
extern void Nas_Bgm2SeqFadeout(s32);
extern void Na_EngineStart(NA_Playersound_ *);
extern void Na_Engine2Start(NA_Playersound_ *);
extern void Na_DolphinEngineStart(NA_Playersound_ *);

extern void Na_EnemyParam(f32 *, f32 *,  f32 *,  f32 *, u8);
extern void Na_EngineStop(void);
extern void Na_Engine2Stop(void);

extern void Na_Player1Sound(NA_Playersound_ *);
extern void Na_Player2Sound(NA_Playersound_ *);

extern void Na_PauseStart(void);
extern void Na_PauseEnd(void);
extern void Na_SystemSound(s32 num, s32 option);
extern void Na_Sys2Sound(s32 num);

extern void Na_RingSound(s32 renzoku);
extern void Na_Cheer(s32 type);


extern void Na_EnemyEngineStart(NA_Playersound_ *);
extern void Na_PlayerSound(NA_Playersound_ *, u8 );
extern void Na_EnemySound(NA_Playersound_ *);
extern void Na_EnemyEngineStop(void);

extern void Na_DolphinInit(NA_Dolphinsound_ *);
extern void Na_DolphinSound(NA_Dolphinsound_ *);


extern void Na_RadioBgmVolume(f32 vol);
extern void Na_RadioBgmTuning(f32 tune);

extern void Na_Tunnel_In(s32 player);
extern void Na_Tunnel_Out(s32 player);

extern void Na_GateOpen(void);

extern void Na_HeriStart(void);
extern void Na_HeriStop(void);
extern void Na_HeriParam(f32 distance, f32 speed);

extern void Na_AnnounceVoice(s32 num);

extern void Na_KamomeSound(s32 power, s32 pan);
extern void Na_KamomeSound_Random(void);

extern void Na_KamoStart(void);
extern void Na_KamoStop(void);
extern void Na_KamoParam(f32 distance);

void Na_ObjDolphinWaterIn(f32 kyori,s32 pan);
void Na_ObjOrcaWaterIn(f32 kyori,s32 pan);

extern void Na_GoNextRound(void);

extern void Na_NiceAction(void);
extern void Na_NiceJump(void);

extern void Na_SecondLap(s32 dtime);

extern void Na_SyncRetireDown(void);

extern void Na_ScRetireMenu(void);
extern void Na_EndingMes(void);


#endif

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
       Sound Macros 
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */
  

/*** These are new macros in 10/17 ***/

#define Na_MusicStart(h,a,t)   NA_SMES_INPUT[NA_CURINTSET++]= (0x10000000) | ( (u8)h <<  24) | ( (u8)(a) << 16)   | (u16)(t)
#define Na_MusicStop(h,t)      NA_SMES_INPUT[NA_CURINTSET++]= (0x20000000) | ( (u8)h <<  24)                    | (u16)(t)

#define Na_MusicVolDown(h,t,v)  NA_SMES_INPUT[NA_CURINTSET++]= (0x30000000) | ( (u8)h <<  24) | ( (u8)(v) << 16)   | (u16)(t)
#define Na_MusicVolRecover(h,t) NA_SMES_INPUT[NA_CURINTSET++]= (0x30ff0000) | ( (u8)h <<  24) | (u16)(t)
#define Na_MusicTempo(h,t,v)  NA_SMES_INPUT[NA_CURINTSET++]= (0x40000000) | ( (u8)h <<  24) | ( (u8)(v) << 16)   | (u16)(t)


#define Na_SeStart(h,s,p,n,v)  NA_SMES_INPUT[NA_CURINTSET++]= (0x80000000) | ( (u8)h <<  24) | ( (u8)(p) << 20)   | ( (u8)s << 16) | ( (u8)(n) << 8) | (u16)(v) 
#define Na_SeStop(h,s,p)       NA_SMES_INPUT[NA_CURINTSET++]= (0x90000000) | ( (u8)h <<  24) | ( (u8)(p) << 20)   | ( (u8)s << 16)
#define Na_SetEffect(h,s,c,p)  NA_SMES_INPUT[NA_CURINTSET++]= (0xD0000000) | ( (u8)h <<  24) | ( (u8)(c) << 20)   | ( (u8)(s) << 16) | ( (u16)(p) )  
#define Na_CheckSEStatus(h, n) NA_SMES_INPUT[NA_CURINTSET++]= (0xE0000000) | ( (u8)h <<  24) | ( (u8)n << 16)
#define Na_AllMusicClear()     NA_SMES_INPUT[NA_CURINTSET++]= (0xF0000000)

#define Na_PauseStartMusic(h)  NA_SMES_INPUT[NA_CURINTSET++]= (0xF2010000) | ( (u8)h << 8 )
#define Na_PauseEndMusic(h)    NA_SMES_INPUT[NA_CURINTSET++]= (0xF2000000) | ( (u8)h << 8 )
#define Na_PortUnlock(h, sb)   NA_SMES_INPUT[NA_CURINTSET++]= (0xF3000000) | ( (u8)h <<  16) |   ( (u16)(sb) )
#define Na_PortLock(h, sb)   NA_SMES_INPUT[NA_CURINTSET++]= (0xF4000000) | ( (u8)h <<  16) |   ( (u16)(sb) )

#define Na_UnMuteSubTrack(h, sb) NA_SMES_INPUT[NA_CURINTSET++]= (0xF5000000) | ( (u8)h <<  16) |   ( (u8)(sb) )
#define Na_MuteSubTrack(h, sb)   NA_SMES_INPUT[NA_CURINTSET++]= (0xF5000100) | ( (u8)h <<  16) |   ( (u8)(sb) )


#define Na_WritePort(h,s,p, d) NA_SMES_INPUT[NA_CURINTSET++]= (0xC0000000) | ( (u8)h <<  24) |  ( (u8)s << 16)     | ( (u8)(p) << 8)   |  (u8)(d) 

#define Na_DataHeapClear()      NA_SMES_INPUT[NA_CURINTSET++]= (0xF6000000)
#define Na_ScenePrepare(sn)     NA_SMES_INPUT[NA_CURINTSET++]= (0xF7000000) | (u8)(sn) 

#define Na_SpecChange(n)        NA_SMES_INPUT[NA_CURINTSET++]= (0xFF000000) | ( (u8)n << 16 )  





/*** These are patches for old version ***/

#define Na_Se1Start(h, s, n, v) Na_SeStart(h, s, NA_PORT_TRIG1, (n), (v))
#define Na_SeLStart(h, s, n)    Na_SeStart(h, s, NA_PORT_LEVEL1, (n), 127)
#define Na_SeLStop(h, s, n)     Na_SeStop(h,  s, NA_PORT_LEVEL1)    



/* #################################################### 
	      Middle Level Macros

   [Pitch]  0 (low)   <---------------> 32767 (high) 
   [Volume] 0 (small) <---------------> 32767 (large)
   [Pan]    0 (left)  <- 64 (center) -> 127 (right)

   #################################################### */

#define Na_SeSetup()            Na_MusicStart(NA_SE_HANDLE, NA_SEQ_SE, 0)
#define Na_BgmStart(M)          Na_MusicStart(NA_BGM_HANDLE, (M), 0)
#define Na_BgmStop()            \
{				 \
 Na_MusicStop(NA_BGM_HANDLE, 60); \
 Na_MusicStop(NA_BGM2_HANDLE, 60); \
}

#define Na_LockSe()	        Na_PortLock(NA_SE_HANDLE, 0x017b)
#define Na_UnlockSe()	        Na_PortUnlock(NA_SE_HANDLE, 0x017b)



/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     High Level Macros for
      Wave Race 64 only
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@  */


/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
     Externals declarations for
         Audio Function
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */
 

#define Na_SetAModeStereo() Nas_SetAudioMode(0)
#define Na_SetAModeHeadPhone() Nas_SetAudioMode(1)
#define Na_SetAModeMono() Nas_SetAudioMode(3)


#define Na_PanSet(sub,pan) Na_SetEffect(NA_SE_HANDLE, sub,NA_CHGSEL_PAN, pan)

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
    [SE:Group1]
    [ TRIG-SE:Sub0, 2, 3, 5]
    [ LEVELSE:Sub1, 4, 6]
   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */

#define NA_SE_HANDLE       0x00
#define NA_BGM_HANDLE      0x01
#define NA_BGM2_HANDLE     0x02
#define NA_FANFARE_HANDLE  0x03

/* @@@@@@@@@@@@@@@@@@@@
       Subtracks
   @@@@@@@@@@@@@@@@@@@@ */

#define NA_ENGINE1_SUB 0x00
#define NA_PL1ACT_SUB  0x02
#define NA_ENGINE2_SUB 0x03
#define NA_PL2ACT_SUB  0x05

#define NA_ENEMY_SUB   0x0d

#define NA_CRASH_SUB   0x06
#define NA_OBJECT_SUB  0x07

#define NA_PLVOICE_SUB  0x0a
#define NA_CHEER_SUB   0x0b
#define NA_VOICE_SUB   0x0c
#define NA_SYSTEM_SUB  0x0f


/* @@@@@@@@@@@@@@@@@@@@
       Ports
   @@@@@@@@@@@@@@@@@@@@ */

#define NA_PORT_TRIG1     0x00	    /* Single SE Mode */
#define NA_PORT_LEVEL1    0x00
#define NA_PORT_TRIGM     0x08+0x01    /* Multi SE  Mode */
#define NA_PORT_LEVELM    0x08+0x01

#define NA_PORT_VOLUME    0x03


/* @@@@@@@@@@@@@@@@@@@@
    BGM NAME ALIAS
   @@@@@@@@@@@@@@@@@@@@ */

#define NA_MAX_BGMNUM	    0x19	/*** MAX-2 ***/

#define NA_SEQ_SE           0x00	/* Bank 0,1,2,3 */
#define NA_SEQ_BANKTEST	    0x01	/** for SE-Debug **/

#define NA_SEQ_ENDSE        0x02	/* Bank 0,1,2,3 */

#define NA_SEQ_BGM_TITLE    0x03
#define NA_SEQ_BGM_SELECT   0x04
#define NA_SEQ_BGM_DEMO     0x05
#define NA_SEQ_BGM_TOUR     0x06
#define NA_SEQ_BGM_VS       0x06
#define NA_SEQ_BGM_ATTACK   0x06
#define NA_SEQ_BGM_STUNT    0x06


#define NA_SEQ_FAN_GOAL        0x0f  /** 1st - 4th **/
#define NA_SEQ_FAN_RETIRE      0x13
#define NA_SEQ_FAN_NEWRECORD   0x14
#define NA_SEQ_FAN_VSGOAL      0x15
#define NA_SEQ_FAN_FINALLAP    0x1a
#define NA_SEQ_FAN_DAMEGOAL    0x1b  /** 1st - 4th **/

#define NA_SEQ_BGM_RESULT   0x16
#define NA_SEQ_BGM_OVER     0x17
#define NA_SEQ_BGM_MENU     0x18
#define NA_SEQ_BGM_OPENING   0x19

/* #define NA_SEQ_BGM_RETIREHEAD  0x1c */

#define NA_SEQ_BGM_ENDING    0x1c
#define NA_SEQ_FAN_END1	     0x1d
#define NA_SEQ_FAN_END2	     0x1e
#define NA_SEQ_FAN_END3	     0x1f
#define NA_SEQ_FAN_END4	     0x20




#if 0
#define NA_SEQ_BGM_SELECT   0x02


#define NA_SEQ_BGM_PLAY1    0x02
#define NA_SEQ_BGM_PLAY2    0x03
#define NA_SEQ_BGM_RESULT   0x04
#define NA_SEQ_FAN_GOAL     0x05
#endif





/* @@@@@@@@@@@@@@@@@@@@
    SCENE NAME ALIAS
   @@@@@@@@@@@@@@@@@@@@ */

#define NA_SCENE_NULL       0xff	/** Null scene for Debug **/

#define NA_SCENE_TITLE      0x00	/** Title  Demo    **/
#define NA_SCENE_SELECT     0x01	/** Select Machine **/
#define NA_SCENE_DEMO       0x02	/** GameStart Demo **/
#define NA_SCENE_RESULT     0x03	/** Result,Score   **/
#define NA_SCENE_RETIRE     0x04	/** Retire Start   **/	
#define NA_SCENE_GAMEOVER   0x05	/** Game Over ...  **/

#define NA_SCENE_GOAL       0x06	/** Goal In !      **/
#define NA_SCENE_RACE	    0x07	/** Tour Mode Play **/

#define NA_SCENE_RESET	    0x08	/** Reset N64 Logo **/
#define NA_SCENE_MENU       0x09	/** Title  Demo    **/



#define NA_SCENE_MSELECT    0x01
#define NA_SCENE_CSELECT    0x0a

#define NA_SCENE_ENDING	    0x0b

#define NA_SCENE_NAMEENTRY  0x0c

#if 0
#define NA_SCENE_ATTACK     0x06		/* Bank 0,1,2,3 */
#define NA_SCENE_PLAY1      0x01		/* Bank 0,1,2,3 */
#define NA_SCENE_PLAY2      0x02		/* Bank 0,1,2,3 */
#endif

/* @@@@@@@@@@@@@@@@@@@@
    MODE  NAME ALIAS
   @@@@@@@@@@@@@@@@@@@@ */

#define NA_MODE_TOUR	    0x00	/** Tour Mode Play **/
#define NA_MODE_VS	    0x01	/** VS   Mode Play **/
#define NA_MODE_ATTACK      0x02	/** Attack Mode Play **/
#define NA_MODE_STUNT       0x03	/** Stunt Mode Play **/


/* @@@@@@@@@@@@@@@@@@@@@@@
    PLAYER SE NAME ALIAS
   @@@@@@@@@@@@@@@@@@@@@@@ */

#if 0
#define NA_WATER_MACHINEDROP 0x00
#define NA_WATER_MACHINEDROP_MID 0x03
#define NA_WATER_MACHINEDROP_SMALL 0x05
#define NA_WATER_MACHINEDROP_VERYSMALL 0x05
#else
#define NA_WATER_MACHINEDROP 11
#define NA_WATER_MACHINEDROP_MID 12
#define NA_WATER_MACHINEDROP_SMALL 13
#define NA_WATER_MACHINEDROP_VERYSMALL 14
#endif

#define NA_STARTBOOST	     0x0f

#define NA_WATER_MANDROP     0x01

#define NA_BREAK_ICE	     0x02

#define NA_CRASH_HARD        0x10
#define NA_CRASH_OTHER       0x14
#define NA_CRASH_BUOY        0x18
#define NA_CRASH_FANCE       0x1C
#define NA_CRASH_WOOD	     0x20
#define NA_CRASH_KANBAN      0x24
#define NA_CRASH_MIZUKUSA    0x28	/*** Touch Mizukusa ***/
#define NA_CRASH_WALL1       0x2C
#define NA_CRASH_WALL2       0x30
#define NA_CRASH_WALL3       0x34
#define NA_CRASH_WALL4       0x38 
#define NA_CRASH_ICEWALL     0x3C
#define NA_CRASH_ICE	     0x3C	/*** -> will change */



#define NA_CRASH_JUMP	     0x40	/*** -> may be 0x40. ***/
#define NA_CRASH_PRISM       0x41

#define NA_CRASH_NULL	     0x00

/* @@@@@@@@@@@@@@@@@@@@@@@@
    CRASH/SPLASH SIDE ALIAS
   @@@@@@@@@@@@@@@@@@@@@@@@  */

#define NA_SIDE_LEFT  0x00
#define NA_SIDE_FRONT 0x01
#define NA_SIDE_RIGHT 0x02
#define NA_SIDE_REAR  0x03

/* @@@@@@@@@@@@@@@@@@@@@
     OBJECT SOUND    
   @@@@@@@@@@@@@@@@@@@@@ */

#define NA_OBJ_KAMOME 0x00


#define NA_OBJ_GATEOPEN 0x10
#define NA_OBJ_HERICOPTER 0x11
#define NA_OBJ_KAMO	  0x12
#define NA_OBJ_ICEBREAK   0x13
#define NA_OBJ_DOLIN	  0x14
#define NA_OBJ_ORCAIN     0x15



#define NA_OBJ_GOMI	/* ->main.c - 13 */


/* @@@@@@@@@@@@@@@@@@@@@@@@@@@
       SYSTEM SOUND
   @@@@@@@@@@@@@@@@@@@@@@@@@@@ */

/* ............................. Global use */
 
#define NA_SYS_CAMROOTON    0x03
#define NA_SYS_CAMROOTOFF   0x04

#define NA_SYS_CURMOVE	    0x10
#define NA_SYS_DECIDE	    0x11
#define NA_SYS_DECIDE2	    0x37

#define NA_SYS_CANCEL	    0x16
#define NA_SYS_SCROLL	    0x1d
#define NA_SYS_ZOOMIN	    0x1d
#define NA_SYS_ZOOMOUT	    0x1e

#define NA_SYS_NAME_LROT    0x2e
#define NA_SYS_NAME_RROT    0x2f
#define NA_SYS_NAME_TYPE    0x1a
#define NA_SYS_NAME_BS	    0x12
#define NA_SYS_NAME_END	    0x30

#define NA_SYS_WIPE	    0x2a
#define NA_SYS_WIPE2	    0x31  /* CROSS-WIPE */
#define NA_SYS_WIPE3	    0x38  /* RESULT-> DEMO */

#define NA_SYS_PAUSE	    0x20
#define NA_SYS_LAP	    0x21
#define NA_SYS_COUT	    0x0a
#define NA_SYS_EXTEND	    0x33
#define NA_SYS_REVERSE	    0x35

#define NA_SYS_SIGNAL1	    0x22
#define NA_SYS_SIGNAL2	    0x23

#define NA_SYS_PASS	    0x26
#define NA_SYS_PASS_R	    0x26
#define NA_SYS_PASS_L	    0x27

#define NA_SYS_MISS	    0x28 /* 1a */
#define NA_SYS_MISS_L	    0x28
#define NA_SYS_MISS_R	    0x29

#define NA_SYS_TITLELOGO    0x2d

#define NA_SYS_DEMO1	    0x34

#define NA_SYS_FASTLAP	    0x39
#define NA_SYS_WIPE4	    0x3A  /* DEMO -> RACE */

#define NA_SYS_GHOSTWIN     0x3B  /* */

/* ............................. Voice System */

#define NA_SYS2_PACKERR    0x00
#define NA_SYS2_COPY       0x01
#define NA_SYS2_ERASE      0x02
#define NA_SYS2_CONFIRM    0x03

/* ............................. Inner use */

#define NA_SYS_RING	   0x25
#define NA_SYS_TURBOUP     0x2c
#define NA_SYS_TURBODOWN   0x01
#define NA_SYS_TURBOMAX    0x36

#define NA_SYS_LOGO    0x2b

#define NA_SYS_GWIN	   0x3B
#define NA_SYS_WIPE5	   0x3C	/** WINDOW SCROLL **/
#define NA_SYS_GHOSTAPP     0x3D  /* */
#define NA_SYS_GHOSTDIS     0x3E  /* */



/* @@@@@@@@@@@@@@@@@@@@@@@@@@@
       VOICE SOUND
   @@@@@@@@@@@@@@@@@@@@@@@@@@@ */

/* ------------------------ Random Kinds of voice **/

#define NAV_NUMS_START  2
#define NAV_NUMS_LAP    2
#define NAV_NUMS_PASS   4
#define NAV_NUMS_MISS3  2
#define NAV_NUMS_POWMAX 1
#define NAV_NUMS_COUT   2
#define NAV_NUMS_EXTEND 2
#define NAV_NUMS_GOAL1  2
#define NAV_NUMS_GOALOUT 2

#define NAV_NUMS_GONEXT 1

#define NAV_NUMS_RANKUP   4
#define NAV_NUMS_RANKDOWN 2

#define NAV_NUMS_HEAVYCRASH 3

#define NAV_NUMS_JNICE 3
#define NAV_NUMS_SNICE 4

#define NAV_NUMS_LAPTIME 2
#define NAV_NUMS_REVERSE 2

/* ------------------------ Body **/


#define NA_VOICE_TITLELOGO   0
#define NA_VOICE_TOUR	     1	/*   1- 8 ***/
#define NA_VOICE_TOUR_LAST   9
#define NA_VOICE_SIGNALGO   10
#define NA_VOICE_SIGNALDOWN 11	/*  11-13 **/
#define NA_VOICE_GOAL1      14  /*  14-16 **/
#define NA_VOICE_GOAL1_NOMISS 16
#define NA_VOICE_GOAL       17  /*  17-19 **/
#define NA_VOICE_GOALOUT    20  /*  20-21 **/
#define NA_VOICE_GOALRECORD 22  
#define NA_VOICE_REVERSE    23  /*  23-24 **/

#define NA_VOICE_MISS1	    25
#define NA_VOICE_MISS2	    26
#define NA_VOICE_MISS3	    27	/*  27-28 **/

#define NA_VOICE_COURSEOUT  29  /*  20-22 **/

#define NA_VOICE_GAMEOVER   31

#define NA_VOICE_LANDING    32  /*  32 only **/

#define NA_VOICE_RETIRE	    34  /*  34-35 **/

#define NA_VOICE_START1	    36  /*  36-38 **/
#define NA_VOICE_START4	    39  /*  39-41 **/
#define NA_VOICE_STARTN	    42  /*  42-44 **/

#define NA_VOICE_LAP1       45  /*  45-47 **/
#define NA_VOICE_LAP4	    48  /*  48-50 **/
#define NA_VOICE_LAPM	    51  /*  51-53 **/
#define NA_VOICE_LAPN	    54  /*  54-56 **/

#define NA_VOICE_LAPFINAL1  57
#define NA_VOICE_LAPFINAL4  58
#define NA_VOICE_LAPFINALM  59	/** 59-60 **/

#define NA_VOICE_LAPFAST    61
#define NA_VOICE_LAPTIME    62  /** 62-63 **/

#define NA_VOICE_CHECKPOINT 64  /** 64-65 **/

#define NA_VOICE_RANKUP	    66  /** 66-70 **/
#define NA_VOICE_RANKUP3RD  71 
#define NA_VOICE_RANKUP2ND  72 
#define NA_VOICE_RANKUP1ST  73	/** 73-74 **/

#define NA_VOICE_RANKDOWN     75 /** 75-76 **/
#define NA_VOICE_RANKDOWN2ND  77 
#define NA_VOICE_RANKDOWN3RD  78 
#define NA_VOICE_RANKDOWN4TH  79

 

#define NA_VOICE_HEAVYCRASH  80 /** 80-85 **/ 	/* pattern 4 */
#define NA_VOICE_RESULT	     86
#define NA_VOICE_RESULTOUT   91

#define NA_VOICE_GONEXT      92 /** 92-93 **/

#define NA_VOICE_TURBOMAX   94  /*  94 only **/

#define NA_VOICE_PASS	    97  /** 97-100 **/

#define NA_VOICE_JNICE	    102
#define NA_VOICE_RING	    105
#define NA_VOICE_SNICE	    108	/** --111 **/


/* -------------------------- ENDING VOICE */

#define NA_ENDVOICE_PRISE 0
#define NA_ENDVOICE_STEP  4
#define NA_ENDVOICE_1ST   4
#define NA_ENDVOICE_1STEX 5
#define NA_ENDVOICE_2ND   6
#define NA_ENDVOICE_3RD   7
#define NA_ENDVOICE_4TH   7

/* -------------------------- VERSUS TIME LAP --*/

#define NA_VSVOICE_BEHIND   0
#define NA_VSVOICE_AHEAD    1
#define NA_VSVOICE_SECS     2
#define NA_VSVOICE_YOUARE   20
#define NA_VSVOICE_FARLOSE  21
#define NA_VSVOICE_NEAR     22 /** 22-24 **/
#define NA_VSVOICE_FARWIN   25




/* #define NA_VOICE_AKINO	    90 */
/* #define NA_VOICE_DEMO	   101 */







#define NA_ANNS_DOLPHINPARK  0
#define NA_ANNS_TOUR	    16
#define NA_ANNS_SURE	    11
#define NA_ANNS_CSELECT     12
#define NA_ANNS_MSELECT     13
#define NA_ANNS_AUDIOMODE   26	    



#define NA_CVOICE_MALE   120
#define NA_CVOICE_FEMALE   124


#if 0
#define NA_VOICE_LIGHTCRASH  87	        /* pattern 3 */
#define NA_VOICE_MISS0	    66	    /* ---> Retire */
#define NA_VOICE_GAMEOVER   95
#define NA_VOICE_NICE	0x10

#define NA_VOICE_LAP	0x00
#define NA_VOICE_MISS	0x08


#define NA_VOICE_HIT	0x0c
#define NA_VOICE_PAUSE	0x14

#define NA_VOICE_COMEON 0x20

#endif

/* @@@@@@@@@@@@@@@@@@@@@@@@@@@
       CHEER SOUND
   @@@@@@@@@@@@@@@@@@@@@@@@@@@ */


#if 0
 #define NA_CHEER_PLAY1START  0x00
 #define NA_CHEER_JUMP	     0x02
#endif

/*................................ Scene Mode */
#define NA_CHEER_STOP	     0xFF
#define NA_CHEER_FEW	     0x00
#define NA_CHEER_NORMAL	     0x04
#define NA_CHEER_MANY	     0x08

/*................................ Type */

#define NA_CHEER_C	     0x00
#define NA_CHEER_B	     0x01
#define NA_CHEER_A	     0x02



#define NA_CHEER_GOAL	    0x0f

#define NA_CHEER_PLAY1START  0x10
	 
#define NA_CHEER_PASS        12
#define NA_CHEER_PASSED      13

#define NA_CHEER_NICEJUMP    19
 #define NA_CHEER_LAP	     18


/* @@@@@@@@@@@@@@@@@@@@@@@
    DOLPHIN ACTION
   @@@@@@@@@@@@@@@@@@@@@@@ */

#define NA_DOLPHIN_CRY	    0x0a
#define NA_DOLPHIN_IN       0x09
#define NA_DOLPHIN_OUT      0x08

/* @@@@@@@@@@@@@@@@@@@@@@@
    LEVEL CTRL TYPE ALIAS
   @@@@@@@@@@@@@@@@@@@@@@@ */
   
#define NA_CHGSEL_PITCH  0x01
#define NA_CHGSEL_POWER  0x02
#define NA_CHGSEL_PAN    0x03

/* @@@@@@@@@@@@@@@@@@@@@@@
          Const.
   @@@@@@@@@@@@@@@@@@@@@@@ */


#define NAV_PRIO_POWMAX 32
#define NAV_TIME_POWMAX 30

#define NAV_PRIO_LAP	100
#define NAV_TIME_LAP    50

#define NAV_PRIO_PASS   10
#define NAV_TIME_PASS   20

#define NAV_PRIO_MISS   40
#define NAV_TIME_MISS   40

#define NAV_PRIO_COUT   20
#define NAV_TIME_COUT   40

#define NAV_PRIO_SIGNAL2 100
#define NAV_TIME_SIGNAL2 60

#define NAV_PRIO_START  90
#define NAV_TIME_START  60


#define NAV_PRIO_RANKUP    70
#define NAV_TIME_RANKUP    30

#define NAV_PRIO_RANKDOWN    60
#define NAV_TIME_RANKDOWN    30

#define NAV_PRIO_CRASH	     80
#define NAV_TIME_CRASH	     40
