| | //--------------------------------------------------------------------------------------------------------------
void displayMenu(void)
{
slInitSystem(TV_320x224,NULL,1);
SetVblank();
SndIniDt snd_init;
SndPcmStartPrm pcm_start;
SndPcmChgPrm pcm_chg;
SYS_CHGUIPR(pri_tbl); /* 轄槹D先xマ更 */
move_pcm_adr = (Uint16 *)0x06030000; /* E`l]ウ */
l_move_pcm_adr = (Uint16 *)0x06065000; /* 左`l]ウ */
set_imask(0);
INT_ChgMsk(INT_MSK_NULL, INT_MSK_SND); /* TEh願込ン */
INT_SetScuFunc(INT_SCU_SND, PcmIntr); /* 願込ン傷o^ */
INT_ChgMsk(INT_MSK_SND,INT_MSK_NULL); /* TEh願込ン */
CDC_CdInit(0x00,0x00,0x05,0x0f);
GFS_DIRTBL_TYPE(&dirtbl) = GFS_DIR_NAME;
GFS_DIRTBL_DIRNAME(&dirtbl) = dirname;
GFS_DIRTBL_NDIR(&dirtbl) = MAX_DIR;
GFS_Init(MAX_OPEN, lib_work, &dirtbl);
slSynch();
int fid = GFS_NameToId(SDDRV_NAME);
char toto[80];
int ii=0;
for (ii = 0; ii<12; ii++)
{
sprintf(toto,"fid=%d 1 :%s",fid,GFS_IdToName(ii));
DBG_SetCursol( 15, ii+5 );
DBG_Printf(toto);
}
GFS_Load(GFS_NameToId(SDDRV_NAME),0,(void *) SDDRV_ADDR,SDDRV_SIZE);
GFS_Load(GFS_NameToId(SDMAP_NAME),0,(void *) SDMAP_ADDR,SDMAP_SIZE);
if (GFS_Load(GFS_NameToId(SDDRV_NAME),0,(void *) SDDRV_ADDR,SDDRV_SIZE)<0)
DBG_Printf("drv not loaded");
if (GFS_Load(GFS_NameToId(SDMAP_NAME),0,(void *) SDMAP_ADDR,SDMAP_SIZE)<0)
DBG_Printf("map not loaded");
move_pcm_adr = (Uint16 *)0x6020000; /* E`l]ウ */
set_imask(0);
INT_ChgMsk(INT_MSK_NULL, INT_MSK_SND); /* TEh願込ン */
INT_SetScuFunc(INT_SCU_SND, PcmIntr); /* 願込ン傷o^ */ INT_ChgMsk(INT_MSK_SND,INT_MSK_NULL); /* TEh願込ン */
SND_INI_PRG_ADR(snd_init) = (Uint16 *)SDDRV_ADDR;
SND_INI_PRG_SZ(snd_init) = (Uint16) SDDRV_SIZE;
SND_INI_ARA_ADR(snd_init) = (Uint16 *)SDMAP_ADDR;
SND_INI_ARA_SZ(snd_init) = (Uint16) SDMAP_SIZE;
SND_Init(&snd_init);
SND_ChgMap(0);
SND_Init(&snd_init);
// FNT_Print256_2bpp((volatile Uint8 *)SCL_VDP2_VRAM_A1,
// (Uint8 *)"init done",40,2,colors);
//SCL_DisplayFrame();
SND_ChgMap(0);
slSynch();
SND_RESET_INT(); /* 轄槹Xeー^X鎧bg */
SND_SET_ENA_INT(SND_INT_PCM_ADR); /* PCM轄槹(TEh) */
move_bnk = 0;
l_move_bnk = 0;
/* RIGHT`l */
r_PcmIntr(); /* E`l] */
r_PcmIntr(); /* E`l] */
/* LEFT`l */
l_PcmIntr(); /* 左`l] */
l_PcmIntr(); /* 左`l] */
SND_PRM_MODE(pcm_start) = SND_MD_STEREO | SND_MD_16;
SND_PRM_SADR(pcm_start) = 0x1000;
SND_PRM_SIZE(pcm_start) = 0x2000;
SND_PRM_NUM(pcm_chg) = 2;
SND_PRM_LEV(pcm_chg) = 7;
SND_PRM_PAN(pcm_chg) = 0;
SND_PRM_PICH(pcm_chg) = 0;
SND_L_EFCT_IN(pcm_chg) = 0;
SND_L_EFCT_LEV(pcm_chg) = 7;
SND_R_EFCT_IN(pcm_chg) = 0;
SND_R_EFCT_LEV(pcm_chg) = 7;
//CyberWarriorX> It's basically like a kind of lookup table for the driver
// You tell it what parts of sound ram are tone bank, sequence banks, dsp program,
#define SND_KD_TONE 0x0 // ケ色
#define SND_KD_SEQ 0x1 // VーPX
#define SND_KD_DSP_PRG 0x2 // DSPv弘
if (GFS_Load(GFS_NameToId("AUDIO2.PCM"),0,(void *) 0x6030000,0x40000)<0)
DBG_Printf("AUDIO2.PCM B not loaded");
SND_StartPcm(&pcm_start, &pcm_chg); /* PCM開始 */
while(1){
if(l_move_pcm_adr > (Uint16 * volatile)0x06080000 ||
move_pcm_adr > (Uint16 * volatile)0x06080000 ){
SND_StopPcm(2);
DBG_Printf("Finished");
}
}
}
#ifndef ACTION_REPLAY
//-------------------------------------------------------------------------------------------------------------------------------------
void ClrVram(volatile Uint8 *buff)
{
Uint32 i;
for(i=0;i<(512 * 512);i++) buff[i]=0x00;
}
void wait(long wait)
{
long i=0;
while(i |