int SPU_Init(int coreid, int buffersize) { int i, j; //for(int i=0;i<256;i++) // cos_lut[i] = cos(i/256.0*M_PI); SPU_core = new SPU_struct(740); SPU_Reset(); for(i = 0; i < 16; i++) { for(j = 0; j < 89; j++) { precalcdifftbl[j][i] = (((i & 0x7) * 2 + 1) * adpcmtbl[j] / 8); if(i & 0x8) precalcdifftbl[j][i] = -precalcdifftbl[j][i]; } } for(i = 0; i < 8; i++) { for(j = 0; j < 89; j++) { precalcindextbl[j][i] = MinMax((j + indextbl[i]), 0, 88); } } return SPU_ChangeSoundCore(coreid, buffersize); }
//static double cos_lut[256]; int SPU_Init(int coreid, int buffersize) { int i, j; //for some reason we dont use the cos lut anymore... did someone decide it was slow? //for(int i=0;i<256;i++) // cos_lut[i] = cos(i/256.0*M_PI); SPU_core = new SPU_struct((int)ceil(samples_per_hline)); SPU_Reset(); //create adpcm decode accelerator lookups for(i = 0; i < 16; i++) { for(j = 0; j < 89; j++) { precalcdifftbl[j][i] = (((i & 0x7) * 2 + 1) * adpcmtbl[j] / 8); if(i & 0x8) precalcdifftbl[j][i] = -precalcdifftbl[j][i]; } } for(i = 0; i < 8; i++) { for(j = 0; j < 89; j++) { precalcindextbl[j][i] = MinMax((j + indextbl[i]), 0, 88); } } return SPU_ChangeSoundCore(coreid, buffersize); }
extern "C" int SPU_Init(NDS_state *state, int coreid, int buffersize) { int i, j; //__asm int 3; //for(int i=0;i<256;i++) // cos_lut[i] = cos(i/256.0*M_PI); state->SPU_core = new SPU_struct(state, 44100); //pick a really big number just to make sure the plugin doesnt request more SPU_Reset(state); for(i = 0; i < 16; i++) { for(j = 0; j < 89; j++) { precalcdifftbl[j][i] = (((i & 0x7) * 2 + 1) * adpcmtbl[j] / 8); if(i & 0x8) precalcdifftbl[j][i] = -precalcdifftbl[j][i]; } } for(i = 0; i < 8; i++) { for(j = 0; j < 89; j++) { precalcindextbl[j][i] = MinMax((j + indextbl[i]), 0, 88); } } //return SPU_ChangeSoundCore(coreid, buffersize); return 0; }