MCPcopy Create free account
hub / github.com/TASEmulators/fceux / SetSoundVariables

Function SetSoundVariables

src/sound.cpp:1216–1273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1214
1215
1216void SetSoundVariables(void)
1217{
1218 int x;
1219
1220 fhinc=PAL?16626:14915; // *2 CPU clock rate
1221 fhinc*=24;
1222
1223 if(FSettings.SndRate)
1224 {
1225 wlookup1[0]=0;
1226 for(x=1;x<32;x++)
1227 {
1228 wlookup1[x]=(double)16*16*16*4*95.52/((double)8128/(double)x+100);
1229 if(!FSettings.soundq) wlookup1[x]>>=4;
1230 }
1231 wlookup2[0]=0;
1232 for(x=1;x<203;x++)
1233 {
1234 wlookup2[x]=(double)16*16*16*4*163.67/((double)24329/(double)x+100);
1235 if(!FSettings.soundq) wlookup2[x]>>=4;
1236 }
1237 if(FSettings.soundq>=1)
1238 {
1239 DoNoise=RDoNoise;
1240 DoTriangle=RDoTriangle;
1241 DoPCM=RDoPCM;
1242 DoSQ1=RDoSQ1;
1243 DoSQ2=RDoSQ2;
1244 }
1245 else
1246 {
1247 DoNoise=DoTriangle=DoPCM=DoSQ1=DoSQ2=Dummyfunc;
1248 DoSQ1=RDoSQLQ;
1249 DoSQ2=RDoSQLQ;
1250 DoTriangle=RDoTriangleNoisePCMLQ;
1251 DoNoise=RDoTriangleNoisePCMLQ;
1252 DoPCM=RDoTriangleNoisePCMLQ;
1253 }
1254 }
1255 else
1256 {
1257 DoNoise=DoTriangle=DoPCM=DoSQ1=DoSQ2=Dummyfunc;
1258 return;
1259 }
1260
1261 MakeFilters(FSettings.SndRate);
1262
1263 if(GameExpSound.RChange)
1264 GameExpSound.RChange();
1265
1266 nesincsize=(int64)(((int64)1<<17)*(double)(PAL?PAL_CPU:NTSC_CPU)/(FSettings.SndRate * 16));
1267 memset(sqacc,0,sizeof(sqacc));
1268 memset(ChannelBC,0,sizeof(ChannelBC));
1269
1270 LoadDMCPeriod(DMCFormat&0xF); // For changing from PAL to NTSC
1271
1272 soundtsinc=(uint32)((uint64)(PAL?(long double)PAL_CPU*65536:(long double)NTSC_CPU*65536)/(FSettings.SndRate * 16));
1273}

Callers 3

FCEU_ResetVidSysFunction · 0.85
FCEUI_SoundFunction · 0.85
FCEUI_SetSoundQualityFunction · 0.85

Calls 2

MakeFiltersFunction · 0.85
LoadDMCPeriodFunction · 0.85

Tested by

no test coverage detected