bool Config::Load(){ serverPort = 666; isPublic = true; memset(serverName,0,SERVERNAME_MAX); sprintf(serverName,"G Server"); enableLogging = true; ignoreUnknownPackets = false; spriteMaxX = 50; spriteMaxY = 50; usernameMax = 20; ConfigFile file; file.Construct(); if(file.Load(CONFIG_FILE)){ file.Get("serverPort",&serverPort); file.Get("isPublic",&isPublic); file.Get("serverName",serverName,SERVERNAME_MAX); file.Get("enableLogging",&enableLogging); file.Get("ignoreUnknownPackets",&ignoreUnknownPackets); file.Get("spriteMaxX",&spriteMaxX); file.Get("spriteMaxY",&spriteMaxY); file.Get("usernameMax",&usernameMax); }else{ fprintf(stderr,"WARNING: %s not found. Generating with default settings.\n",CONFIG_FILE); } file.Clear(); file.Set("serverPort",serverPort); file.Set("isPublic",isPublic); file.Set("serverName",serverName); file.Set("enableLogging",enableLogging); file.Set("ignoreUnknownPackets",ignoreUnknownPackets); file.Set("spriteMaxX",spriteMaxX); file.Set("spriteMaxY",spriteMaxY); file.Set("usernameMax",usernameMax); if(file.Save(CONFIG_FILE)){ file.Destruct(); return true; }else{ fprintf(stderr,"ERROR: Unable to save %s.\n",CONFIG_FILE); file.Destruct(); return false; } }
void S9xLoadConfigFiles (char **argv, int argc) { static ConfigFile conf; // static because some of its functions return pointers conf.Clear(); bool skip = false; for (int i = 0; i < argc; i++) { if (!strcasecmp(argv[i], "-nostdconf")) { skip = true; break; } } if (!skip) { #ifdef SYS_CONFIG_FILE try_load_config_file(SYS_CONFIG_FILE, conf); S9xParsePortConfig(conf, 0); #endif std::string fname; fname = S9xGetDirectory(DEFAULT_DIR); fname += SLASH_STR S9X_CONF_FILE_NAME; try_load_config_file(fname.c_str(), conf); } else fprintf(stderr, "Skipping standard config files.\n"); for (int i = 0; i < argc - 1; i++) if (!strcasecmp(argv[i], "-conf")) try_load_config_file(argv[++i], conf); // Parse config file here // ROM Settings.ForceInterleaved2 = conf.GetBool("ROM::Interleaved2", false); Settings.ForceInterleaveGD24 = conf.GetBool("ROM::InterleaveGD24", false); Settings.ApplyCheats = conf.GetBool("ROM::Cheat", false); Settings.NoPatch = !conf.GetBool("ROM::Patch", true); Settings.ForceLoROM = conf.GetBool("ROM::LoROM", false); Settings.ForceHiROM = conf.GetBool("ROM::HiROM", false); if (Settings.ForceLoROM) Settings.ForceHiROM = false; Settings.ForcePAL = conf.GetBool("ROM::PAL", false); Settings.ForceNTSC = conf.GetBool("ROM::NTSC", false); if (Settings.ForcePAL) Settings.ForceNTSC = false; if (conf.Exists("ROM::Header")) { Settings.ForceHeader = conf.GetBool("ROM::Header", false); Settings.ForceNoHeader = !Settings.ForceHeader; } if (conf.Exists("ROM::Interleaved")) { Settings.ForceInterleaved = conf.GetBool("ROM::Interleaved", false); Settings.ForceNotInterleaved = !Settings.ForceInterleaved; } rom_filename = conf.GetStringDup("ROM::Filename", NULL); // Sound Settings.SoundSync = conf.GetBool("Sound::Sync", true); Settings.SixteenBitSound = conf.GetBool("Sound::16BitSound", true); Settings.Stereo = conf.GetBool("Sound::Stereo", true); Settings.ReverseStereo = conf.GetBool("Sound::ReverseStereo", false); Settings.SoundPlaybackRate = conf.GetUInt("Sound::Rate", 32000); Settings.SoundInputRate = conf.GetUInt("Sound::InputRate", 32000); Settings.Mute = conf.GetBool("Sound::Mute", false); // Display Settings.SupportHiRes = conf.GetBool("Display::HiRes", true); Settings.Transparency = conf.GetBool("Display::Transparency", true); Settings.DisableGraphicWindows = !conf.GetBool("Display::GraphicWindows", true); Settings.DisplayFrameRate = conf.GetBool("Display::DisplayFrameRate", false); Settings.DisplayWatchedAddresses = conf.GetBool("Display::DisplayWatchedAddresses", false); Settings.DisplayPressedKeys = conf.GetBool("Display::DisplayInput", false); Settings.DisplayMovieFrame = conf.GetBool("Display::DisplayFrameCount", false); Settings.AutoDisplayMessages = conf.GetBool("Display::MessagesInImage", true); Settings.InitialInfoStringTimeout = conf.GetInt ("Display::MessageDisplayTime", 120); // Settings Settings.BSXBootup = conf.GetBool("Settings::BSXBootup", false); Settings.TurboMode = conf.GetBool("Settings::TurboMode", false); Settings.TurboSkipFrames = conf.GetUInt("Settings::TurboFrameSkip", 15); Settings.MovieTruncate = conf.GetBool("Settings::MovieTruncateAtEnd", false); Settings.MovieNotifyIgnored = conf.GetBool("Settings::MovieNotifyIgnored", false); Settings.WrongMovieStateProtection = conf.GetBool("Settings::WrongMovieStateProtection", true); Settings.StretchScreenshots = conf.GetInt ("Settings::StretchScreenshots", 1); Settings.SnapshotScreenshots = conf.GetBool("Settings::SnapshotScreenshots", true); Settings.DontSaveOopsSnapshot = conf.GetBool("Settings::DontSaveOopsSnapshot", false); Settings.AutoSaveDelay = conf.GetUInt("Settings::AutoSaveDelay", 0); if (conf.Exists("Settings::FrameTime")) Settings.FrameTimePAL = Settings.FrameTimeNTSC = conf.GetUInt("Settings::FrameTime", 16667); if (!strcasecmp(conf.GetString("Settings::FrameSkip", "Auto"), "Auto")) Settings.SkipFrames = AUTO_FRAMERATE; else Settings.SkipFrames = conf.GetUInt("Settings::FrameSkip", 0) + 1; // Controls Settings.MouseMaster = conf.GetBool("Controls::MouseMaster", true); Settings.SuperScopeMaster = conf.GetBool("Controls::SuperscopeMaster", true); Settings.JustifierMaster = conf.GetBool("Controls::JustifierMaster", true); Settings.MultiPlayer5Master = conf.GetBool("Controls::MP5Master", true); Settings.UpAndDown = conf.GetBool("Controls::AllowLeftRight", false); if (conf.Exists("Controls::Port1")) parse_controller_spec(0, conf.GetString("Controls::Port1")); if (conf.Exists("Controls::Port2")) parse_controller_spec(1, conf.GetString("Controls::Port2")); if (conf.Exists("Controls::Mouse1Crosshair")) parse_crosshair_spec(X_MOUSE1, conf.GetString("Controls::Mouse1Crosshair")); if (conf.Exists("Controls::Mouse2Crosshair")) parse_crosshair_spec(X_MOUSE2, conf.GetString("Controls::Mouse2Crosshair")); if (conf.Exists("Controls::SuperscopeCrosshair")) parse_crosshair_spec(X_SUPERSCOPE, conf.GetString("Controls::SuperscopeCrosshair")); if (conf.Exists("Controls::Justifier1Crosshair")) parse_crosshair_spec(X_JUSTIFIER1, conf.GetString("Controls::Justifier1Crosshair")); if (conf.Exists("Controls::Justifier2Crosshair")) parse_crosshair_spec(X_JUSTIFIER2, conf.GetString("Controls::Justifier2Crosshair")); // Hack Settings.DisableGameSpecificHacks = !conf.GetBool("Hack::EnableGameSpecificHacks", true); Settings.BlockInvalidVRAMAccessMaster = !conf.GetBool("Hack::AllowInvalidVRAMAccess", false); Settings.HDMATimingHack = conf.GetInt ("Hack::HDMATiming", 100); // Netplay #ifdef NETPLAY_SUPPORT Settings.NetPlay = conf.GetBool("Netplay::Enable"); Settings.Port = NP_DEFAULT_PORT; if (conf.Exists("Netplay::Port")) Settings.Port = -(int) conf.GetUInt("Netplay::Port"); Settings.ServerName[0] = '\0'; if (conf.Exists("Netplay::Server")) conf.GetString("Netplay::Server", Settings.ServerName, 128); #endif // Debug #ifdef DEBUGGER if (conf.GetBool("DEBUG::Debugger", false)) CPU.Flags |= DEBUG_MODE_FLAG; if (conf.GetBool("DEBUG::Trace", false)) { ENSURE_TRACE_OPEN(trace,"trace.log","wb") CPU.Flags |= TRACE_FLAG; } #endif S9xParsePortConfig(conf, 1); S9xVerifyControllers(); }
bool Emulator_Implementation_InitSettings() { LOG_DBG("Emulator_Implementation_InitSettings()"); memset((&Settings), 0, (sizeof(Settings))); currentconfig.Clear(); #ifdef SYS_CONFIG_FILE try_load_config_file(SYS_CONFIG_FILE, currentconfig); #endif //PS3 - General settings if (currentconfig.Exists("PS3General::KeepAspect")) { Settings.PS3KeepAspect = currentconfig.GetBool("PS3General::KeepAspect"); } else { Settings.PS3KeepAspect = true; } if (currentconfig.Exists("PS3General::Smooth")) { Settings.PS3Smooth = currentconfig.GetBool("PS3General::Smooth"); } else { Settings.PS3Smooth = false; } if (currentconfig.Exists("PS3General::OverscanEnabled")) { Settings.PS3OverscanEnabled = currentconfig.GetBool("PS3General::OverscanEnabled"); } else { Settings.PS3OverscanEnabled = false; } if (currentconfig.Exists("PS3General::OverscanAmount")) { Settings.PS3OverscanAmount = currentconfig.GetInt("PS3General::OverscanAmount"); } else { Settings.PS3OverscanAmount = 0; } if (currentconfig.Exists("FCEU::Controlstyle")) { Settings.FCEUControlstyle = currentconfig.GetInt("FCEU::Controlstyle"); control_style = (ControlStyle)(((int)Settings.FCEUControlstyle)); } else { Settings.FCEUControlstyle = CONTROL_STYLE_ORIGINAL; control_style = CONTROL_STYLE_ORIGINAL; } if (currentconfig.Exists("FCEU::DisableSpriteLimitation")) { Settings.FCEUDisableSpriteLimitation = currentconfig.GetBool("FCEU::DisableSpriteLimitation"); FCEUI_DisableSpriteLimitation(Settings.FCEUDisableSpriteLimitation); } else { Settings.FCEUDisableSpriteLimitation = false; } if (currentconfig.Exists("PS3General::PS3CurrentShader")) { Settings.PS3CurrentShader.assign(currentconfig.GetString("PS3General::PS3CurrentShader")); } else { Settings.PS3CurrentShader.assign(DEFAULT_SHADER_FILE); } if (currentconfig.Exists("PS3General::PS3CurrentResolution")) { Settings.PS3CurrentResolution = currentconfig.GetInt("PS3General::PS3CurrentResolution"); } else { Settings.PS3CurrentResolution = NULL; } if (currentconfig.Exists("FCEU::GameGenie")) { Settings.FCEUGameGenie = currentconfig.GetBool("FCEU::GameGenie"); FCEUI_SetGameGenie(Settings.FCEUGameGenie); } else { Settings.FCEUGameGenie = false; } FCEUI_SetGameGenie(Settings.FCEUGameGenie); if (currentconfig.Exists("PS3General::PS3PALTemporalMode60Hz")) { Settings.PS3PALTemporalMode60Hz = currentconfig.GetBool("PS3General::PS3PALTemporalMode60Hz"); } else { Settings.PS3PALTemporalMode60Hz = false; } //RSound Settings if(currentconfig.Exists("RSound::RSoundEnabled")) { Settings.RSoundEnabled = currentconfig.GetBool("RSound::RSoundEnabled"); } else { Settings.RSoundEnabled = false; } if(currentconfig.Exists("RSound::RSoundServerIPAddress")) { Settings.RSoundServerIPAddress = currentconfig.GetString("RSound::RSoundServerIPAddress"); } else { Settings.RSoundServerIPAddress = "0.0.0.0"; } if(currentconfig.Exists("PS3General::Throttled")) { Settings.Throttled = currentconfig.GetInt("PS3General::Throttled"); } else { Settings.Throttled = 1; } // PS3 Path Settings if (currentconfig.Exists("PS3Paths::PathSaveStates")) { Settings.PS3PathSaveStates = currentconfig.GetString("PS3Paths::PathSaveStates"); } else { Settings.PS3PathSaveStates = USRDIR; } if (currentconfig.Exists("PS3Paths::PathSRAM")) { Settings.PS3PathSRAM = currentconfig.GetString("PS3Paths::PathSRAM"); } else { Settings.PS3PathSRAM = USRDIR; } if (currentconfig.Exists("PS3Paths::PathCheats")) { Settings.PS3PathCheats = currentconfig.GetString("PS3Paths::PathCheats"); } else { Settings.PS3PathCheats = USRDIR; } if (currentconfig.Exists("PS3Paths::PathScreenshots")) { Settings.PS3PathScreenshots = currentconfig.GetString("PS3Paths::PathScreenshots"); } else { Settings.PS3PathScreenshots = USRDIR; } if (currentconfig.Exists("PS3Paths::PathROMDirectory")) { Settings.PS3PathROMDirectory = currentconfig.GetString("PS3Paths::PathROMDirectory"); } else { Settings.PS3PathROMDirectory = "/"; } if (currentconfig.Exists("PS3Paths::BaseDirectory")) { Settings.PS3PathBaseDirectory = currentconfig.GetString("PS3Paths::PathBaseDirectory"); } else { Settings.PS3PathBaseDirectory = USRDIR; } if (currentconfig.Exists("PS3General::ControlScheme")) { Settings.ControlScheme = currentconfig.GetInt("PS3General::ControlScheme"); } else { Settings.ControlScheme = CONTROL_SCHEME_DEFAULT; } Emulator_Implementation_SwitchControlScheme(); LOG_DBG("SUCCESS - Emulator_Implementation_InitSettings()"); return true; }