void setSoundVolume(int i) { if (!(chanOn & (1<<i)) || !chanEnabled[i]) { soundSetVolume(sound[i], 0); return; } int volume = 0; if (chanToOut1[i]) volume += chanVol[i]*SO1Vol; if (chanToOut2[i]) volume += chanVol[i]*SO2Vol; if (sound[i] != -1) { soundSetVolume(sound[i], volume/4); } }
int RainCommand(int command,int param1,int param2,int param3, char *filename,int fileofs,int filesize) { int result=0; int i; if (command==CMD_PLAY) _bprintf(hint,hintlen,"%s,%i,%i",filename,fileofs,filesize); else _bprintf(hint,hintlen,"%i(%i,%i)",command,param1,param2); switch (command) { case CMD_NONE: RainFreeStopped(); MIDASpoll(); break; case CMD_PLAY: rainhandles++; if (sounds<SOUNDS) { sound[sounds].type=None; sound[sounds].rainhandle=rainhandles; sound[sounds].datahandle=0; sound[sounds].playhandle=0; soundPlay(&sound[sounds],filename,fileofs,filesize,param1); soundSetVolume(&sound[sounds],param2); soundSetPanning(&sound[sounds],param3); sounds++; } result=rainhandles; break; case CMD_VOL: for(i=0;i<sounds;i++) if(sound[i].rainhandle==param1) { soundSetVolume(&sound[i],param2); } break; case CMD_PAN: for(i=0;i<sounds;i++) if(sound[i].rainhandle==param1) { soundSetPanning(&sound[i],param2); } break; case CMD_STOP: for(i=0;i<sounds;i++) if(sound[i].rainhandle==param1) { soundStop(&sound[i]); sound[i--]=sound[--sounds]; } break; case CMD_AMPLIFY: MIDASsetAmplification(AMPLIFY_ALL*AMPLIFY_MP3*param1); break; default: _bprintf(errBuf,errBufLen," Unknown command %i.",command); errAdd(errBuf); } MIDASreportErr(); return result; }
void Window::vApplyConfigVolume() { float fSoundVolume = m_poSoundConfig->oGetKey<float>("volume"); soundSetVolume(fSoundVolume); }
void VBA::loadSettings() { CString buffer; lastFullscreen = (VIDEO_SIZE)regQueryDwordValue("lastFullscreen", VIDEO_1024x768); languageOption = regQueryDwordValue("language", 1); if(languageOption < 0 || languageOption > 2) languageOption = 1; buffer = regQueryStringValue("languageName", ""); if(!buffer.IsEmpty()) { languageName = buffer.Left(3); } else languageName = ""; winSetLanguageOption(languageOption, true); syncToVideo = regQueryDwordValue("syncToVideo", false) ? true : false ; syncToAudio = regQueryDwordValue("syncToAudio", 1) ? true : false; fullScreenStretch = regQueryDwordValue("stretch", 0) ? true : false; videoOption = regQueryDwordValue("video", VIDEO_3X); if(videoOption < VIDEO_1X || videoOption > VIDEO_OTHER) videoOption = VIDEO_3X; fsAdapter = regQueryDwordValue("fsAdapter", 0); fsWidth = regQueryDwordValue("fsWidth", 800); fsHeight = regQueryDwordValue("fsHeight", 600); fsColorDepth = regQueryDwordValue("fsColorDepth", 32); fsFrequency = regQueryDwordValue("fsFrequency", 60); if(videoOption == VIDEO_OTHER) { if(fsWidth < 0 || fsWidth > 4095 || fsHeight < 0 || fsHeight > 4095) videoOption = 0; if(fsColorDepth != 16 && fsColorDepth != 24 && fsColorDepth != 32) videoOption = 0; } windowPositionX = regQueryDwordValue("windowX", 0); if(windowPositionX < 0) windowPositionX = 0; windowPositionY = regQueryDwordValue("windowY", 0); if(windowPositionY < 0) windowPositionY = 0; useBiosFileGBA = ( regQueryDwordValue("useBiosGBA", 0) == 1 ) ? true : false; skipBiosFile = regQueryDwordValue("skipBios", 0) ? true : false; buffer = regQueryStringValue("biosFileGBA", ""); if(!buffer.IsEmpty()) { biosFileNameGBA = buffer; } int res = regQueryDwordValue("soundEnable", 0x30f); soundSetEnable(res); long soundQuality = regQueryDwordValue("soundQuality", 1); soundSetSampleRate(44100 / soundQuality); soundSetVolume( (float)(regQueryDwordValue("soundVolume", 100)) / 100.0f ); soundInterpolation = 1 == regQueryDwordValue( "gbaSoundInterpolation", 1 ); soundFiltering = (float)regQueryDwordValue( "gbaSoundFiltering", 50 ) / 100.0f; gpuBilinear = ( 1 == regQueryDwordValue("gpuBilinear", 0) ) ? true : false ; gpuMotionBlur = ( 1 == regQueryDwordValue("gpuMotionBlur", 0) ) ? true : false; disableStatusMessage = regQueryDwordValue("disableStatus", 0) ? true : false; showSpeed = regQueryDwordValue("showSpeed", 0); if(showSpeed < 0 || showSpeed > 2) showSpeed = 0; showSpeedTransparent = regQueryDwordValue("showSpeedTransparent", TRUE) ? TRUE : FALSE; pauseWhenInactive = regQueryDwordValue("pauseWhenInactive", 1) ? true : false; recentFreeze = regQueryDwordValue("recentFreeze", false) ? true : false; switch(videoOption) { case VIDEO_320x240: fsWidth = 320; fsHeight = 240; fsColorDepth = 16; fsFrequency = 60; break; case VIDEO_640x480: fsWidth = 640; fsHeight = 480; fsColorDepth = 16; fsFrequency = 60; break; case VIDEO_800x600: fsWidth = 800; fsHeight = 600; fsColorDepth = 16; fsFrequency = 60; break; case VIDEO_1024x768: fsWidth = 1024; fsHeight = 768; fsColorDepth = 16; fsFrequency = 60; break; case VIDEO_1280x1024: fsWidth = 1280; fsHeight = 1024; fsColorDepth = 16; fsFrequency = 60; break; } for(int i = 0; i < 10; i++) { buffer.Format("recent%d", i); char *s = regQueryStringValue(buffer, NULL); if(s == NULL) break; recentFiles[i] = s; } joypadDefault = regQueryDwordValue("joypadDefault", 0); if(joypadDefault < 0 || joypadDefault > 3) joypadDefault = 0; autoLoadMostRecent = ( 1 == regQueryDwordValue("autoLoadMostRecent", 0) ) ? true : false; maxScale = regQueryDwordValue("maxScale", 0); xa2Device = regQueryDwordValue( "xa2Device", 0 ); xa2BufferCount = regQueryDwordValue( "xa2BufferCount", 4 ); xa2Upmixing = ( 1 == regQueryDwordValue( "xa2Upmixing", 0 ) ); }
void LoadConfig() { agbPrint = ReadPrefHex("agbPrint"); autoFireMaxCount = fromDec(ReadPrefString("autoFireMaxCount")); autoFrameSkip = ReadPref("autoFrameSkip", 0); autoLoadMostRecent = ReadPref("autoLoadMostRecent", 0); autoPatch = ReadPref("autoPatch", 1); autoSaveLoadCheatList = ReadPref("autoSaveCheatList", 1); aviRecordDir = ReadPrefString("aviRecordDir"); batteryDir = ReadPrefString("batteryDir"); biosFileNameGB = ReadPrefString("biosFileGB"); biosFileNameGBA = ReadPrefString("biosFileGBA"); biosFileNameGBC = ReadPrefString("biosFileGBC"); captureFormat = ReadPref("captureFormat", 0); cheatsEnabled = ReadPref("cheatsEnabled", 0); cpuDisableSfx = ReadPref("disableSfx", 0); cpuSaveType = ReadPrefHex("saveType"); disableMMX = ReadPref("disableMMX", 0); disableStatusMessages = ReadPrefHex("disableStatus"); filterMT = ReadPref("filterEnableMultiThreading", 0); filter = ReadPref("filter", 0); frameSkip = ReadPref("frameSkip", 0); fsAdapter = ReadPref("fsAdapter", 0); fsColorDepth = ReadPref("fsColorDepth", 32); fsFrequency = ReadPref("fsFrequency", 60); fsHeight = ReadPref("fsHeight", 600); fsWidth = ReadPref("fsWidth", 800); fullScreen = ReadPrefHex("fullScreen"); fullScreenStretch = ReadPref("stretch", 0); gbBorderAutomatic = ReadPref("borderAutomatic", 0); gbBorderOn = ReadPrefHex("borderOn"); gbColorOption = ReadPref("colorOption", 0); gbEmulatorType = ReadPref("emulatorType", 1); gbFrameSkip = ReadPref("gbFrameSkip", 0); gbPaletteOption = ReadPref("gbPaletteOption", 0); gbSoundSetDeclicking(ReadPref("gbSoundDeclicking", 1)); gb_effects_config.echo = (float)ReadPref("gbSoundEffectsEcho", 20) / 100.0f; gb_effects_config.enabled = ReadPref("gbSoundEffectsEnabled", 0); gb_effects_config.stereo = (float)ReadPref("gbSoundEffectsStereo", 15) / 100.0f; gb_effects_config.surround = ReadPref("gbSoundEffectsSurround", 0); gdbBreakOnLoad = ReadPref("gdbBreakOnLoad", 0); gdbPort = ReadPref("gdbPort", 55555); glFilter = ReadPref("glFilter", 1); ifbType = ReadPref("ifbType", 0); joypadDefault = ReadPref("joypadDefault", 0); languageOption = ReadPref("language", 1); linkAuto = ReadPref("LinkAuto", 1); linkHacks = ReadPref("LinkHacks", 0); linkHostAddr = ReadPrefString("LinkHostAddr", "localhost"); linkMode = ReadPref("LinkMode", 0); // LINK_DISCONNECTED = 0 linkNumPlayers = ReadPref("LinkNumPlayers", 2); linkTimeout = ReadPref("LinkTimeout", 1); loadDotCodeFile = ReadPrefString("loadDotCodeFile"); maxScale = ReadPref("maxScale", 0); movieRecordDir = ReadPrefString("movieRecordDir"); openGL = ReadPrefHex("openGL"); optFlashSize = ReadPrefHex("flashSize"); pauseWhenInactive = ReadPref("pauseWhenInactive", 1); recentFreeze = ReadPref("recentFreeze", 0); rewindTimer = ReadPref("rewindTimer", 0); romDirGB = ReadPrefString("romDirGB"); romDirGBA = ReadPrefString("romDirGBA"); romDirGBC = ReadPrefString("romDirGBC"); rtcEnabled = ReadPref("rtcEnabled", 0); saveDir = ReadPrefString("saveDir"); saveDotCodeFile = ReadPrefString("saveDotCodeFile"); screenShotDir = ReadPrefString("screenShotDir"); showSpeed = ReadPref("showSpeed", 0); showSpeedTransparent = ReadPref("showSpeedTransparent", 1); skipBios = ReadPref("skipBios", 0); skipSaveGameBattery = ReadPref("skipSaveGameBattery", 0); skipSaveGameCheats = ReadPref("skipSaveGameCheats", 0); soundFiltering = (float)ReadPref("gbaSoundFiltering", 50) / 100.0f; soundInterpolation = ReadPref("gbaSoundInterpolation", 1); soundRecordDir = ReadPrefString("soundRecordDir"); threadPriority = ReadPref("priority", 2); throttle = ReadPref("throttle", 100); tripleBuffering = ReadPref("tripleBuffering", 0); useBios = ReadPrefHex("useBiosGBA"); useBiosFileGB = ReadPref("useBiosGB", 0); useBiosFileGBA = ReadPref("useBiosGBA", 0); useBiosFileGBC = ReadPref("useBiosGBC", 0); videoOption = ReadPref("video", 2); // VIDEO_3X = 2 vsync = ReadPref("vsync", false); windowPositionX = ReadPref("windowX", 0); windowPositionY = ReadPref("windowY", 0); winFlashSize = ReadPref("flashSize", 0x10000); winGbBorderOn = ReadPref("borderOn", 0); winGbPrinterEnabled = ReadPref("gbPrinter", 0); int soundQuality = (ReadPrefHex("soundQuality")); switch (soundQuality) { case 1: case 2: case 4: break; default: log("Unknown sound quality %d. Defaulting to 22Khz\n", soundQuality); soundQuality = 2; break; } soundSetSampleRate(44100 / soundQuality); int volume = ReadPref("soundVolume", 100); float volume_percent = volume / 100.0f; if (volume_percent < 0.0 || volume_percent > SOUND_MAX_VOLUME) volume_percent = 1.0; soundSetVolume(volume_percent); soundSetEnable((ReadPrefHex("soundEnable", 0x30f)) & 0x30f); if ((ReadPrefHex("soundStereo"))) { gb_effects_config.enabled = true; } if ((ReadPrefHex("soundEcho"))) { gb_effects_config.enabled = true; } if ((ReadPrefHex("soundSurround"))) { gb_effects_config.surround = true; gb_effects_config.enabled = true; } if (optFlashSize == 0) flashSetSize(0x10000); else flashSetSize(0x20000); rtcEnable(rtcEnabled ? true : false); agbPrintEnable(agbPrint ? true : false); for (int i = 0; i < 24;) { systemGbPalette[i++] = (0x1f) | (0x1f << 5) | (0x1f << 10); systemGbPalette[i++] = (0x15) | (0x15 << 5) | (0x15 << 10); systemGbPalette[i++] = (0x0c) | (0x0c << 5) | (0x0c << 10); systemGbPalette[i++] = 0; } systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; optPrintUsage = 0; // TODO //int s = ReadPref("mapViewStretch", 0); //m_size = ReadPref("memViewerDataSize", 0); //m_stretch = ReadPref("GBOamViewStretch", 0); //m_stretch = ReadPref("tileViewStretch", 0); //numberType = ReadPref("cheatsNumberType", 2); //numberType = ReadPref("gbCheatsNumberType", 2); //restoreValues = ReadPref("cheatsRestore", 0) ? //scale = ReadPref("printerScale", 0); //searchType = ReadPref("cheatsSearchType", SEARCH_EQ); //searchType = ReadPref("gbCheatsSearchType", //selectedFilter = ReadPref(("selectedFilter"), 0); //sizeType = ReadPref("cheatsSizeType", 0); //sizeType = ReadPref("gbCheatsSizeType", 0); //updateValues = ReadPref("cheatsUpdate", 0); //updateValues = ReadPref("gbCheatsUpdate", 0); //valueType = ReadPref("cheatsValueType", 0); //valueType = ReadPref("gbCheatsValueType", 0); ValidateConfig(); }