/* Copyright 2021 flyinghead This file is part of Flycast. Flycast is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. Flycast is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Flycast. If not, see . */ #include "option.h" namespace config { // Dynarec Option DynarecEnabled("Dynarec.Enabled", true); Option DynarecIdleSkip("Dynarec.idleskip", true); Option DynarecUnstableOpt("Dynarec.unstable-opt"); Option DynarecSafeMode("Dynarec.safe-mode"); Option DisableVmem32("Dynarec.DisableVmem32"); // General Option Cable("Dreamcast.Cable", 3); // TV Composite Option Region("Dreamcast.Region", 1); // USA Option Broadcast("Dreamcast.Broadcast", 0); // NTSC Option Language("Dreamcast.Language", 1); // English Option FullMMU("Dreamcast.FullMMU"); Option ForceWindowsCE("Dreamcast.ForceWindowsCE"); Option AutoSavestate("Dreamcast.AutoSavestate"); // Sound Option DSPEnabled("aica.DSPEnabled", false); Option DisableSound("aica.NoSound"); #if HOST_CPU == CPU_ARM Option AudioBufferSize("aica.BufferSize", 5644); // 128 ms #else Option AudioBufferSize("aica.BufferSize", 2822); // 64 ms #endif Option AutoLatency("aica.AutoLatency", #ifdef __ANDROID__ true #else false #endif ); OptionString AudioBackend("backend", "auto", "audio"); // Rendering RendererOption RendererType; Option UseMipmaps("rend.UseMipmaps", true); Option Widescreen("rend.WideScreen"); Option ShowFPS("rend.ShowFPS"); Option RenderToTextureBuffer("rend.RenderToTextureBuffer"); Option RenderToTextureUpscale("rend.RenderToTextureUpscale", 1); Option TranslucentPolygonDepthMask("rend.TranslucentPolygonDepthMask"); Option ModifierVolumes("rend.ModifierVolumes", true); Option TextureUpscale("rend.TextureUpscale", 1); Option MaxFilteredTextureSize("rend.MaxFilteredTextureSize", 256); Option ExtraDepthScale("rend.ExtraDepthScale", 1.f); Option CustomTextures("rend.CustomTextures"); Option DumpTextures("rend.DumpTextures"); Option ScreenStretching("rend.ScreenStretching", 100); Option Fog("rend.Fog", true); Option FloatVMUs("rend.FloatVMUs"); Option Rotate90("rend.Rotate90"); Option PerStripSorting("rend.PerStripSorting"); Option DelayFrameSwapping("rend.DelayFrameSwapping"); Option WidescreenGameHacks("rend.WidescreenGameHacks"); std::array, 4> CrosshairColor { Option("rend.CrossHairColor1"), Option("rend.CrossHairColor2"), Option("rend.CrossHairColor3"), Option("rend.CrossHairColor4"), }; Option SkipFrame("ta.skip"); Option MaxThreads("pvr.MaxThreads", 3); Option AutoSkipFrame("pvr.AutoSkipFrame", 0); Option RenderResolution("rend.Resolution", 480); // Misc Option SerialConsole("Debug.SerialConsoleEnabled"); Option SerialPTY("Debug.SerialPTY"); Option UseReios("UseReios"); Option OpenGlChecks("OpenGlChecks", false, "validate"); Option, false> ContentPath("Dreamcast.ContentPath"); Option HideLegacyNaomiRoms("Dreamcast.HideLegacyNaomiRoms", true); // Network Option NetworkEnable("Enable", false, "network"); Option ActAsServer("ActAsServer", false, "network"); OptionString DNS("DNS", "46.101.91.123", "network"); OptionString NetworkServer("server", "", "network"); Option EmulateBBA("EmulateBBA", false, "network"); #ifdef SUPPORT_DISPMANX Option DispmanxMaintainAspect("maintain_aspect", true, "dispmanx"); #endif #ifdef USE_OMX Option OmxAudioLatency("audio_latency", 100, "omx"); Option OmxAudioHdmi("audio_hdmi", true, "omx"); #endif // Maple Option MouseSensitivity("MouseSensitivity", 100, "input"); Option VirtualGamepadVibration("VirtualGamepadVibration", 20, "input"); std::array, 4> MapleMainDevices { Option("device1", MDT_SegaController, "input"), Option("device2", MDT_None, "input"), Option("device3", MDT_None, "input"), Option("device4", MDT_None, "input"), }; std::array, 2>, 4> MapleExpansionDevices { Option("device1.1", MDT_SegaVMU, "input"), Option("device1.2", MDT_SegaVMU, "input"), Option("device2.1", MDT_None, "input"), Option("device2.2", MDT_None, "input"), Option("device3.1", MDT_None, "input"), Option("device3.2", MDT_None, "input"), Option("device4.1", MDT_None, "input"), Option("device4.2", MDT_None, "input"), }; } // namespace config