mirror of
https://github.com/gligli/nulldc-360.git
synced 2025-04-02 11:11:56 -04:00
94 lines
3.1 KiB
C++
94 lines
3.1 KiB
C++
//8/7/2006
|
|
//since i got no internet , and im bored , im starting to work on some aica hle code :)
|
|
//Many thanks to ZeZu & CyRus 64 , most of the code here is based/derived from Icarus hle :)
|
|
|
|
#include "aica_hle.h"
|
|
_audio_drv_header *aud_drv;
|
|
bool arm7_on;
|
|
|
|
void InitHLE()
|
|
{
|
|
aud_drv=(struct _audio_drv_header *)(aica_mem + 0x20);
|
|
}
|
|
void ResetHLE()
|
|
{
|
|
}
|
|
void TermHLE()
|
|
{
|
|
}
|
|
u32 GetKatanaDriverVersion()
|
|
{
|
|
return (aud_drv->sndVersion<<8) | (aud_drv->sndMinorVersion);
|
|
}
|
|
void ARM_Katana_Driver_Info()
|
|
{
|
|
if (aud_drv->sndVersion>30 || GetKatanaDriverVersion()==0)
|
|
{
|
|
printf("<acHLE>:Invalid Katana Driver Version (%x)\n",GetKatanaDriverVersion());
|
|
return;
|
|
}
|
|
|
|
_audio_drv_strings drv_str;
|
|
|
|
memcpy((char *)&drv_str.sndLocalVersion,(char *)&aud_drv->sndLocalVersion,sizeof(drv_str.sndLocalVersion));
|
|
drv_str.sndLocalVersion[1]=0x0;
|
|
|
|
memcpy((char *)&drv_str.prodStage,(char *)&aud_drv->prodStage,sizeof(drv_str.prodStage));
|
|
drv_str.prodStage[4]=0x0;
|
|
|
|
memcpy((char *)&drv_str.sndCopyrightInfo,(char *)&aud_drv->sndCopyrightInfo,sizeof(drv_str.sndCopyrightInfo));
|
|
drv_str.sndCopyrightInfo[32]=0x0;
|
|
|
|
memcpy((char *)&drv_str.sndAuthorInfoDate,(char *)&aud_drv->sndAuthorInfoDate,sizeof(drv_str.sndAuthorInfoDate));
|
|
drv_str.sndAuthorInfoDate[10]=0x0;
|
|
|
|
memcpy((char *)&drv_str.sndAuthorInfoName,(char *)&aud_drv->sndAuthorInfoName,sizeof(drv_str.sndAuthorInfoName));
|
|
drv_str.sndAuthorInfoName[38]=0x0;
|
|
|
|
memcpy((char *)&drv_str.sndModifierInfo,(char *)&aud_drv->sndModifierInfo,sizeof(drv_str.sndModifierInfo));
|
|
drv_str.sndModifierInfo[48]=0x0;
|
|
|
|
memcpy((char *)&drv_str.sndModifierInfo2,(char *)&aud_drv->sndModifierInfo2,sizeof(drv_str.sndModifierInfo2));
|
|
drv_str.sndModifierInfo2[16]=0x0;
|
|
|
|
printf("*************AICA Audio driver (version: %d,%d local %s)************\n",aud_drv->sndVersion,aud_drv->sndMinorVersion,drv_str.sndLocalVersion);
|
|
printf("Name: %s (%s)\n",drv_str.sndModifierInfo,drv_str.sndModifierInfo2);
|
|
printf("Authors: %s\n",drv_str.sndAuthorInfoName);
|
|
printf("Date: %s\n",drv_str.sndAuthorInfoDate);
|
|
printf("Copyright: %s\n",drv_str.sndCopyrightInfo);
|
|
printf("Stage: %s\n",drv_str.prodStage);
|
|
printf("sndToolInterfaceWork: 0x%08x\n",aud_drv->sndToolInterfaceWork);
|
|
printf("hostSeqStatus: 0x%08x\n",aud_drv->hostSeqStatus);
|
|
printf("sndSystemStatus: 0x%08x\n",aud_drv->sndSystemStatus);
|
|
printf("seqModuleMap: 0x%08x\n",aud_drv->seqModuleMap);
|
|
printf("cmdBuffer: 0x%08x\n",aud_drv->cmdBuffer);
|
|
printf("cmdHistoryBuffer: 0x%08x\n",aud_drv->cmdHistoryBuffer);
|
|
printf("sndManbowLibraryWork: 0x%08x\n",aud_drv->sndManbowLibraryWork);
|
|
printf("sndManbowLibraryWorkSize: 0x%08x\n",aud_drv->sndManbowLibraryWorkSize);
|
|
printf("********************************END********************************\n");
|
|
}
|
|
|
|
bool HleEnabled()
|
|
{
|
|
return (aud_drv->sndVersion<30 && GetKatanaDriverVersion()!=0);
|
|
}
|
|
void Hle_process()
|
|
{
|
|
return ;
|
|
/*
|
|
if (!HleEnabled() || arm7_on==false)
|
|
return;
|
|
|
|
u32* cmd_start= (u32*)&aica_ram[aud_drv->cmdBuffer & AICA_MEM_MASK];
|
|
|
|
//u32 sz=aud_drv->
|
|
while (*cmd_start!=0 && *cmd_start!=0xFFFFFFFF )
|
|
//for (int i=0;i<64;i++)
|
|
{
|
|
char* data=(char*)cmd_start;
|
|
|
|
//if (*cmd_start>10)
|
|
*cmd_start=0xFFFFFFFF;
|
|
cmd_start++;
|
|
}*/
|
|
}
|