BizHawk/BizHawk.MultiClient/Config.cs

1052 lines
40 KiB
C#
Raw Normal View History

2013-07-17 01:05:36 +00:00
using System.IO;
using System.Drawing;
using System.Collections.Generic;
2012-03-12 04:44:26 +00:00
namespace BizHawk.MultiClient
{
public class Config
{
2013-07-17 01:20:21 +00:00
public Config()
{
config.NewControllerConfig.ConfigCheckAllControlDefaults(this);
}
// Directories
public bool UseRecentForROMs = false;
public string LastRomPath = ".";
public string BasePath = ".";
public string BaseROMPath = ".";
public string BaseINTV = Path.Combine(".", "Intellivision");
public string PathINTVROMs = ".";
public string PathINTVSavestates = Path.Combine(".", "State");
public string PathINTVSaveRAM = Path.Combine(".", "SaveRAM");
public string PathINTVScreenshots = Path.Combine(".", "Screenshots");
public string PathINTVCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseNES = Path.Combine(".", "NES");
public string PathNESROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathNESSavestates = Path.Combine(".", "State");
public string PathNESSaveRAM = Path.Combine(".", "SaveRAM");
public string PathNESScreenshots = Path.Combine(".", "Screenshots");
public string PathNESCheats = Path.Combine(".", "Cheats");
public string PathNESPalette = Path.Combine(".", "Palettes");
2011-05-04 20:31:36 +00:00
public string BaseSNES = Path.Combine(".", "SNES");
public string PathSNESROMs = ".";
public string PathSNESSavestates = Path.Combine(".", "State");
public string PathSNESSaveRAM = Path.Combine(".", "SaveRAM");
public string PathSNESScreenshots = Path.Combine(".", "Screenshots");
public string PathSNESCheats = Path.Combine(".", "Cheats");
//public string PathSNESFirmwares = Path.Combine(".", "Firmwares");
public string BaseGBA = Path.Combine(".", "GBA");
public string PathGBAROMs = ".";
public string PathGBASavestates = Path.Combine(".", "State");
public string PathGBASaveRAM = Path.Combine(".", "SaveRAM");
public string PathGBAScreenshots = Path.Combine(".", "Screenshots");
public string PathGBACheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseSMS = Path.Combine(".", "SMS");
public string PathSMSROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathSMSSavestates = Path.Combine(".", "State");
public string PathSMSSaveRAM = Path.Combine(".", "SaveRAM");
public string PathSMSScreenshots = Path.Combine(".", "Screenshots");
public string PathSMSCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseGG = Path.Combine(".", "Game Gear");
public string PathGGROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathGGSavestates = Path.Combine(".", "State");
public string PathGGSaveRAM = Path.Combine(".", "SaveRAM");
public string PathGGScreenshots = Path.Combine(".", "Screenshots");
public string PathGGCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseSG = Path.Combine(".", "SG-1000");
public string PathSGROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathSGSavestates = Path.Combine(".", "State");
public string PathSGSaveRAM = Path.Combine(".", "SaveRAM");
public string PathSGScreenshots = Path.Combine(".", "Screenshots");
public string PathSGCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseGenesis = Path.Combine(".", "Genesis");
public string PathGenesisROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathGenesisSavestates = Path.Combine(".", "State");
public string PathGenesisSaveRAM = Path.Combine(".", "SaveRAM");
public string PathGenesisScreenshots = Path.Combine(".", "Screenshots");
public string PathGenesisCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BasePCE = Path.Combine(".", "PC Engine");
public string PathPCEROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathPCESavestates = Path.Combine(".", "State");
public string PathPCESaveRAM = Path.Combine(".", "SaveRAM");
public string PathPCEScreenshots = Path.Combine(".", "Screenshots");
public string PathPCECheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string BaseGameboy = Path.Combine(".", "Gameboy");
public string PathGBROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathGBSavestates = Path.Combine(".", "State");
public string PathGBSaveRAM = Path.Combine(".", "SaveRAM");
public string PathGBScreenshots = Path.Combine(".", "Screenshots");
public string PathGBCheats = Path.Combine(".", "Cheats");
public string PathGBPalettes = Path.Combine(".", "Palettes");
2012-03-12 04:44:26 +00:00
public string BaseTI83 = Path.Combine(".", "TI83");
public string PathTI83ROMs = ".";
2012-03-12 04:44:26 +00:00
public string PathTI83Savestates = Path.Combine(".", "State");
public string PathTI83SaveRAM = Path.Combine(".", "SaveRAM");
public string PathTI83Screenshots = Path.Combine(".", "Screenshots");
public string PathTI83Cheats = Path.Combine(".", "Cheats");
public string BaseAtari2600 = Path.Combine(".", "Atari 2600");
public string PathAtari2600ROMs = ".";
public string PathAtari2600Savestates = Path.Combine(".", "State");
public string PathAtari2600Screenshots = Path.Combine(".", "Screenshots");
public string PathAtari2600Cheats = Path.Combine(".", "Cheats");
public string BaseAtari7800 = Path.Combine(".", "Atari 7800");
public string PathAtari7800ROMs = ".";
public string PathAtari7800Savestates = Path.Combine(".", "State");
public string PathAtari7800SaveRAM = Path.Combine(".", "SaveRAM");
public string PathAtari7800Screenshots = Path.Combine(".", "Screenshots");
public string PathAtari7800Cheats = Path.Combine(".", "Cheats");
//public string PathAtari7800Firmwares = Path.Combine(".", "Firmwares");
public string BaseC64 = Path.Combine(".", "C64");
public string PathC64ROMs = ".";
public string PathC64Savestates = Path.Combine(".", "State");
public string PathC64Screenshots = Path.Combine(".", "Screenshots");
public string PathC64Cheats = Path.Combine(".", "Cheats");
//public string PathC64Firmwares = Path.Combine(".", "Firmwares");
public string BasePSX = Path.Combine(".", "PSX");
public string PathPSXROMs = ".";
public string PathPSXSavestates = Path.Combine(".", "State");
public string PathPSXSaveRAM = Path.Combine(".", "SaveRAM");
public string PathPSXScreenshots = Path.Combine(".", "Screenshots");
public string PathPSXCheats = Path.Combine(".", "Cheats");
//public string PathPSXFirmwares = Path.Combine(".", "Firmwares");
public string BaseCOL = Path.Combine(".", "Coleco");
public string PathCOLROMs = ".";
public string PathCOLSavestates = Path.Combine(".", "State");
public string PathCOLScreenshots = Path.Combine(".", "Screenshots");
public string PathCOLCheats = Path.Combine(".", "Cheats");
public string BaseN64 = Path.Combine(".", "N64");
public string PathN64ROMs = ".";
public string PathN64Savestates = Path.Combine(".", "State");
public string PathN64SaveRAM = Path.Combine(".", "SaveRAM");
public string PathN64Screenshots = Path.Combine(".", "Screenshots");
public string PathN64Cheats = Path.Combine(".", "Cheats");
public string BaseSaturn = Path.Combine(".", "Saturn");
public string PathSaturnROMs = ".";
public string PathSaturnSavestates = Path.Combine(".", "State");
public string PathSaturnSaveRAM = Path.Combine(".", "SaveRAM");
public string PathSaturnScreenshots = Path.Combine(".", "Screenshots");
public string PathSaturnCheats = Path.Combine(".", "Cheats");
2012-03-12 04:44:26 +00:00
public string MoviesPath = Path.Combine(".", "Movies");
public string MoviesBackupPath = Path.Combine(".", "Movies", "backup");
2012-03-12 04:44:26 +00:00
public string LuaPath = Path.Combine(".", "Lua");
public string WatchPath = ".";
public string AVIPath = ".";
public string LogPath = ".";
public string FirmwaresPath = Path.Combine(".", "Firmware");
2011-05-08 09:07:46 +00:00
2011-07-25 01:30:18 +00:00
//BIOS Paths
public string FilenamePCEBios = "[BIOS] Super CD-ROM System (Japan) (v3.0).pce";
public string FilenameFDSBios = "disksys.rom";
public string FilenameGBABIOS = "gbabios.rom";
public string FilenameCOLBios = "ColecoBios.bin";
public string FilenameINTVGROM = "grom.bin";
public string FilenameA78NTSCBios = "7800NTSCBIOS.bin";
public string FilenameA78PALBios = "7800PALBIOS.bin";
public string FilenameA78HSCBios = "7800highscore.bin";
public string FilenameINTVEROM = "erom.bin";
public string FilenameSaturnBios = "Sega Saturn BIOS v1.01 (JAP).bin";
2011-07-25 01:30:18 +00:00
2012-10-09 21:25:58 +00:00
public string FFMpegPath = "%exe%/dll/ffmpeg.exe";
//N64 Config Settings
public string N64VidPlugin = "Rice";
public int N64VideoSizeX = 320;
public int N64VideoSizeY = 240;
public N64RicePluginSettings RicePlugin = new N64RicePluginSettings();
public N64GlidePluginSettings GlidePlugin = new N64GlidePluginSettings();
// General Client Settings
public int Input_Hotkey_OverrideOptions = 0;
public bool StackOSDMessages = true;
public int TargetZoomFactor = 2;
public int TargetDisplayFilter = 0;
public bool AutoLoadMostRecentRom = false;
public RecentFiles RecentRoms = new RecentFiles(8);
public bool PauseWhenMenuActivated = true;
public bool SaveWindowPosition = true;
public bool StartPaused = false;
public int MainWndx = -1; //Negative numbers will be ignored
public int MainWndy = -1;
public bool RunInBackground = true;
public bool AcceptBackgroundInput = false;
public bool SingleInstanceMode = false;
public bool AllowUD_LR = false;
public bool ShowContextMenu = true;
public bool EnableBackupMovies = true;
public bool HotkeyConfigAutoTab = true;
2011-07-09 18:01:46 +00:00
public bool InputConfigAutoTab = true;
2011-09-17 00:04:50 +00:00
public bool ShowLogWindow = false;
public bool BackupSavestates = true;
public bool BackupSaveram = true;
public bool AutoSavestates = false;
2011-09-17 00:04:50 +00:00
public bool SaveScreenshotWithStates = true;
public int AutofireOn = 1;
public int AutofireOff = 1;
public bool AutofireLagFrames = true;
2011-09-17 00:04:50 +00:00
public int SaveSlot = 0; //currently selected savestate slot
2011-09-17 00:25:34 +00:00
public bool AutoLoadLastSaveSlot = false;
public bool WIN32_CONSOLE = true;
2012-03-17 21:59:56 +00:00
public bool SkipLagFrame = false;
2012-03-31 00:38:39 +00:00
public string MovieExtension = "bkm";
public bool SupressAskSave = false;
public bool AVI_CaptureOSD = false;
public bool Screenshot_CaptureOSD = false;
2011-01-11 02:55:51 +00:00
public enum SaveStateTypeE { Default, Binary, Text };
public SaveStateTypeE SaveStateType = SaveStateTypeE.Default;
// Run-Control settings
public int FrameProgressDelayMs = 500; //how long until a frame advance hold turns into a frame progress?
public int FrameSkip = 4;
public int SpeedPercent = 100;
public int SpeedPercentAlternate = 400;
public bool ClockThrottle = true;
public bool AutoMinimizeSkipping = true;
public bool VSyncThrottle = false;
//Rewind settings
public bool Rewind_UseDelta = true;
public bool RewindEnabledSmall = true;
public bool RewindEnabledMedium = true;
public bool RewindEnabledLarge = true;
public int RewindFrequencySmall = 1;
public int RewindFrequencyMedium = 2;
public int RewindFrequencyLarge = 60;
public int Rewind_MediumStateSize = 262144; //256kb
public int Rewind_LargeStateSize = 1048576; //1mb
/// <summary>use vsync. if VSyncThrottle = false, this will try to use vsync without throttling to it</summary>
public bool VSync = false;
// Display options
public int MessagesColor = -1;
public int AlertMessageColor = -65536;
public int LastInputColor = -23296;
2011-07-10 03:13:07 +00:00
public int MovieInput = -8355712;
public bool DisplayFPS = false;
public int DispFPSx = 0;
public int DispFPSy = 0;
public int DispFPSanchor = 0; //0 = UL, 1 = UR, 2 = DL, 3 = DR
public bool DisplayFrameCounter = false;
public int DispFrameCx = 0;
public int DispFrameCy = 14;
public int DispFrameanchor = 0;
public bool DisplayLagCounter = false;
public int DispLagx = 0;
public int DispLagy = 42;
public int DispLaganchor = 0;
public bool DisplayInput = false;
public int DispInpx = 0;
public int DispInpy = 28;
public int DispInpanchor = 0;
public bool DisplayRerecordCount = false;
public int DispRecx = 0;
public int DispRecy = 56;
public int DispRecanchor = 0;
public int DispMultix = 0;
public int DispMultiy = 14;
public int DispMultianchor = 1;
2011-08-21 01:07:58 +00:00
public bool DisplayGDI = false;
public bool SuppressGui = false;
public bool DisplayStatusBar = true;
public int DispRamWatchx = 0;
public int DispRamWatchy = 70;
public bool DisplayRamWatch = false;
public bool ShowMenuInFullscreen = false;
public int DispMessagex = 3;
public int DispMessagey = 0;
public int DispMessageanchor = 2;
2012-09-26 23:25:43 +00:00
public int DispAutoholdx = 0;
public int DispAutoholdy = 0;
public int DispAutoholdanchor = 1;
public bool DispBlurry = false; // make display look ugly
// Sound options
public bool SoundEnabled = true;
public bool MuteFrameAdvance = true;
public int SoundVolume = 100; //Range 0-100
public bool SoundThrottle = false;
public string SoundDevice = "";
// Log Window
public bool LogWindowSaveWindowPosition = true;
public int LogWindowWndx = -1;
public int LogWindowWndy = -1;
public int LogWindowWidth = -1;
public int LogWindowHeight = -1;
// Lua Console
public RecentFiles RecentLua = new RecentFiles(8);
2012-03-17 21:59:56 +00:00
public RecentFiles RecentLuaSession = new RecentFiles(8);
2012-03-19 16:49:47 +00:00
public bool AutoLoadLuaSession = false;
public bool AutoLoadLuaConsole = false;
public bool LuaConsoleSaveWindowPosition = true;
public int LuaConsoleWndx = -1; //Negative numbers will be ignored even with save window position set
public int LuaConsoleWndy = -1;
public int LuaConsoleWidth = -1;
public int LuaConsoleHeight = -1;
public bool DisableLuaScriptsOnLoad = false;
// RamWatch Settings
public bool AutoLoadRamWatch = false;
public RecentFiles RecentWatches = new RecentFiles(8);
public bool RamWatchSaveWindowPosition = true;
public int RamWatchWndx = -1; //Negative numbers will be ignored even with save window position set
public int RamWatchWndy = -1;
public int RamWatchWidth = -1;
public int RamWatchHeight = -1;
public bool RamWatchShowChangeColumn = true;
public bool RamWatchShowPrevColumn = false;
2012-07-04 23:11:17 +00:00
public bool RamWatchShowDiffColumn = false;
public bool RamWatchShowDomainColumn = true;
public int RamWatchAddressWidth = -1;
public int RamWatchValueWidth = -1;
public int RamWatchPrevWidth = -1;
public int RamWatchChangeWidth = -1;
2012-07-04 23:11:17 +00:00
public int RamWatchDiffWidth = -1;
public int RamWatchNotesWidth = -1;
2012-09-10 02:37:44 +00:00
public int RamWatchDomainWidth = -1;
2012-10-13 21:27:12 +00:00
public int RamWatchAddressIndex = 0;
public int RamWatchValueIndex = 1;
public int RamWatchPrevIndex = 2;
public int RamWatchChangeIndex = 3;
2012-07-04 23:11:17 +00:00
public int RamWatchDiffIndex = 4;
2012-09-10 02:37:44 +00:00
public int RamWatchDomainIndex = 5;
public int RamWatchNotesIndex = 6;
public int RamWatchPrev_Type = 1;
// RamSearch Settings
public bool AutoLoadRamSearch = false;
public bool RamSearchSaveWindowPosition = true;
public RecentFiles RecentSearches = new RecentFiles(8);
public int RamSearchWndx = -1; //Negative numbers will be ignored even with save window position set
public int RamSearchWndy = -1;
public int RamSearchWidth = -1; //Negative numbers will be ignored
public int RamSearchHeight = -1;
public int RamSearchPreviousAs = 0;
public bool RamSearchPreviewMode = true;
2012-06-07 20:24:29 +00:00
public bool AlwaysExcludeRamWatch = false;
public int RamSearchAddressWidth = -1;
public int RamSearchValueWidth = -1;
public int RamSearchPrevWidth = -1;
public int RamSearchChangesWidth = -1;
public int RamSearchAddressIndex = 0;
public int RamSearchValueIndex = 1;
public int RamSearchPrevIndex = 2;
public int RamSearchChangesIndex = 3;
public bool RamSearchFastMode = false;
// HexEditor Settings
public bool AutoLoadHexEditor = false;
public bool HexEditorSaveWindowPosition = true;
public int HexEditorWndx = -1; //Negative numbers will be ignored even with save window position set
public int HexEditorWndy = -1;
public int HexEditorWidth = -1;
public int HexEditorHeight = -1;
public bool HexEditorBigEndian = false;
public int HexEditorDataSize = 1;
//Hex Editor Colors
public Color HexBackgrndColor = Color.FromName("Control");
public Color HexForegrndColor = Color.FromName("ControlText");
public Color HexMenubarColor = Color.FromName("Control");
public Color HexFreezeColor = Color.LightBlue;
public Color HexHighlightColor = Color.Pink;
public Color HexHighlightFreezeColor = Color.Violet;
2012-09-30 03:09:41 +00:00
//Trace Logger Settings
public bool TraceLoggerAutoLoad = false;
public bool TraceLoggerSaveWindowPosition = true;
public int TraceLoggerMaxLines = 100000;
public int TraceLoggerWndx = -1;
public int TraceLoggerWndy = -1;
public int TraceLoggerWidth = -1;
public int TraceLoggerHeight = -1;
// Video dumping settings
2012-06-17 15:09:53 +00:00
public string VideoWriter = "";
public int JMDCompression = 3;
public int JMDThreads = 3;
2012-06-17 15:04:41 +00:00
public string FFmpegFormat = "";
public string FFmpegCustomCommand = "-c:a foo -c:v bar -f baz";
public string AVICodecToken = "";
public int GifWriterFrameskip = 3;
public int GifWriterDelay = -1;
// NESPPU Settings
public bool AutoLoadNESPPU = false;
public bool NESPPUSaveWindowPosition = true;
public int NESPPUWndx = -1;
public int NESPPUWndy = -1;
public int NESPPURefreshRate = 4;
// NESDebuger Settings
public bool AutoLoadNESDebugger = false;
public bool NESDebuggerSaveWindowPosition = true;
public int NESDebuggerWndx = -1;
public int NESDebuggerWndy = -1;
public int NESDebuggerWidth = -1;
public int NESDebuggerHeight = -1;
// NESNameTableViewer Settings
public bool AutoLoadNESNameTable = false;
public bool NESNameTableSaveWindowPosition = true;
public int NESNameTableWndx = -1;
public int NESNameTableWndy = -1;
2011-08-29 01:26:36 +00:00
public int NESNameTableRefreshRate = 4;
// NES Graphics settings
public bool NESAllowMoreThanEightSprites = false;
public bool NESClipLeftAndRight = false;
public bool NESAutoLoadPalette = true;
public bool NESDispBackground = true;
public bool NESDispSprites = true;
public int NESBackgroundColor = 0;
public string NESPaletteFile = "";
public int NTSC_NESTopLine = 8;
public int NTSC_NESBottomLine = 231;
public int PAL_NESTopLine = 8;
public int PAL_NESBottomLine = 231;
// gb gpu view settings
public bool AutoLoadGBGPUView = false;
public bool GBGPUViewSaveWindowPosition = true;
public int GBGPUViewWndx = -1;
public int GBGPUViewWndy = -1;
public Color GBGPUSpriteBack = Color.Lime;
// SNES Graphics Debugger Dialog Settings
public bool AutoLoadSNESGraphicsDebugger = false;
public bool SNESGraphicsDebuggerSaveWindowPosition = true;
public int SNESGraphicsDebuggerWndx = -1;
public int SNESGraphicsDebuggerWndy = -1;
public int SNESGraphicsDebuggerRefreshRate = 4;
public bool SNESGraphicsUseUserBackdropColor = false;
public int SNESGraphicsUserBackdropColor = -1;
public string SNESPalette = "BizHawk";
// SNES Graphics settings
//bsnes allows the layers to be enabled for each priority level.
//this may not be important for the bg (there are two priority levels)
//but it may be useful for OBJ, so we might want to control them separately
public bool SNES_ShowBG1_0 = true;
public bool SNES_ShowBG2_0 = true;
public bool SNES_ShowBG3_0 = true;
public bool SNES_ShowBG4_0 = true;
public bool SNES_ShowBG1_1 = true;
public bool SNES_ShowBG2_1 = true;
public bool SNES_ShowBG3_1 = true;
public bool SNES_ShowBG4_1 = true;
public bool SNES_ShowOBJ1 = true;
public bool SNES_ShowOBJ2 = true;
public bool SNES_ShowOBJ3 = true;
public bool SNES_ShowOBJ4 = true;
// SATURN GRAPHICS SETTINGS
public bool SaturnUseGL = false;
public int SaturnDispFactor = 1;
public bool SaturnDispFree = false;
public int SaturnGLW = 640;
public int SaturnGLH = 480;
2012-03-11 15:18:24 +00:00
// PCE Graphics settings
public bool PCEDispBG1 = true;
2012-10-13 21:27:12 +00:00
public bool PCEDispOBJ1 = true;
public bool PCEDispBG2 = true;
2012-10-13 21:27:12 +00:00
public bool PCEDispOBJ2 = true;
// PCE BG Viewer settings
public bool PCEBGViewerSaveWIndowPosition = true;
public bool PCEBGViewerAutoload = false;
public int PCEBGViewerWndx = -1;
public int PCEBGViewerWndy = -1;
public int PCEBGViewerRefreshRate = 16;
// SMS Graphics settings
public bool SMSDispBG = true;
public bool SMSDispOBJ = true;
// Coleco Settings
public bool ColecoSkipBiosIntro = false;
//GB Debugger settings
public bool AutoloadGBDebugger = false;
public bool GBDebuggerSaveWindowPosition = true;
2012-05-19 15:17:32 +00:00
public bool GameBoySkipBIOS = true;
// Cheats Dialog
public bool Cheats_ValuesAsHex = true;
public bool AutoLoadCheats = false;
public bool CheatsSaveWindowPosition = true;
public bool DisableCheatsOnLoad = false;
public bool LoadCheatFileByGame = true;
public bool CheatsAutoSaveOnClose = true;
public RecentFiles RecentCheats = new RecentFiles(8);
public int CheatsWndx = -1;
public int CheatsWndy = -1;
public int CheatsWidth = -1;
public int CheatsHeight = -1;
public int CheatsNameWidth = -1;
public int CheatsAddressWidth = -1;
public int CheatsValueWidth = -1;
public int CheatsCompareWidth = -1;
public int CheatsDomainWidth = -1;
public int CheatsOnWidth = -1;
public int CheatsNameIndex = 0;
public int CheatsAddressIndex = 1;
public int CheatsValueIndex = 2;
public int CheatsCompareIndex = 3;
public int CheatsOnIndex = 4;
public int CheatsDomainIndex = 5;
// TAStudio Dialog
public bool TAStudioSaveWindowPosition = true;
public bool AutoloadTAStudio = false;
public int TASWndx = -1;
public int TASWndy = -1;
public int TASWidth = -1;
public int TASHeight = -1;
public bool TASUpdatePads = true;
// VirtualPad Dialog
public bool VirtualPadSaveWindowPosition = true;
public bool AutoloadVirtualPad = false;
public bool VirtualPadSticky = true;
public int VPadWndx = -1;
public int VPadWndy = -1;
public int VPadWidth = -1;
public int VPadHeight = -1;
// NES Game Genie Encoder/Decoder
public bool NESGGAutoload = false;
public bool NESGGSaveWindowPosition = true;
public int NESGGWndx = -1;
public int NESGGWndy = -1;
// SNES Game Genie Encoder/Decoder
public bool SNESGGAutoload = false;
public bool SNESGGSaveWindowPosition = true;
public int SNESGGWndx = -1;
public int SNESGGWndy = -1;
// GB/GG Game Genie Encoder/Decoder
public bool GBGGAutoload = false;
public bool GBGGSaveWindowPosition = true;
public int GBGGWndx = -1;
public int GBGGWndy = -1;
// GEN Game Genie Encoder/Decoder
public bool GENGGAutoload = false;
public bool GENGGSaveWindowPosition = true;
public int GENGGWndx = -1;
public int GENGGWndy = -1;
//Movie Settings
public RecentFiles RecentMovies = new RecentFiles(8);
public bool AutoLoadMostRecentMovie = false;
public bool BindSavestatesToMovies = true;
public string DefaultAuthor = "default user";
public bool UseDefaultAuthor = true;
2011-07-10 00:04:33 +00:00
public bool DisplaySubtitles = true;
public bool VBAStyleMovieLoadState = false;
public bool MoviePlaybackPokeMode = false;
//Play Movie Dialog
public bool PlayMovie_IncludeSubdir = true;
public bool PlayMovie_ShowStateFiles = false;
public bool PlayMovie_MatchGameName = false;
//TI83
public bool TI83autoloadKeyPad = true;
public bool TI83KeypadSaveWindowPosition = true;
public int TI83KeyPadWndx = -1;
public int TI83KeyPadWndy = -1;
public bool TI83ToolTips = true;
// Client Hotkey Bindings
public string ToggleBackgroundInput = "";
2012-07-12 21:39:11 +00:00
public string IncreaseSpeedBinding = "Equals";
public string DecreaseSpeedBinding = "Minus";
public string HardResetBinding = "";
public string RebootCoreResetBinding = "Ctrl+R";
2012-09-30 07:05:18 +00:00
public string FastForwardBinding = "Tab, X1 RightShoulder";
public string RewindBinding = "Shift+R, X1 LeftShoulder";
public string EmulatorPauseBinding = "Pause";
public string FrameAdvanceBinding = "F";
public string TurboBinding = "";
public string MaxTurboBinding = "Shift+Tab";
public string ScreenshotBinding = "F12";
public string ToggleFullscreenBinding = "Alt+Return";
public string QuickSave = "I";
public string QuickLoad = "P";
public string SelectSlot0 = "D0";
public string SelectSlot1 = "D1";
public string SelectSlot2 = "D2";
public string SelectSlot3 = "D3";
public string SelectSlot4 = "D4";
public string SelectSlot5 = "D5";
public string SelectSlot6 = "D6";
public string SelectSlot7 = "D7";
public string SelectSlot8 = "D8";
public string SelectSlot9 = "D9";
public string SaveSlot0 = "Shift+F10";
public string SaveSlot1 = "Shift+F1";
public string SaveSlot2 = "Shift+F2";
public string SaveSlot3 = "Shift+F3";
public string SaveSlot4 = "Shift+F4";
public string SaveSlot5 = "Shift+F5";
public string SaveSlot6 = "Shift+F6";
public string SaveSlot7 = "Shift+F7";
public string SaveSlot8 = "Shift+F8";
public string SaveSlot9 = "Shift+F9";
public string LoadSlot0 = "F10";
public string LoadSlot1 = "F1";
public string LoadSlot2 = "F2";
public string LoadSlot3 = "F3";
public string LoadSlot4 = "F4";
public string LoadSlot5 = "F5";
public string LoadSlot6 = "F6";
public string LoadSlot7 = "F7";
public string LoadSlot8 = "F8";
public string LoadSlot9 = "F9";
public string ToolBox = "T";
public string SaveNamedState = "";
public string LoadNamedState = "";
public string PreviousSlot = "";
public string NextSlot = "";
public string RamWatch = "";
public string RamSearch = "";
public string RamPoke = "";
public string HexEditor = "";
public string LuaConsole = "";
public string Cheats = "";
2012-04-24 00:11:58 +00:00
public string TASTudio = "";
public string OpenROM = "Ctrl+O";
public string CloseROM = "Ctrl+W";
public string FrameCounterBinding = "";
public string FPSBinding = "";
public string LagCounterBinding = "";
public string InputDisplayBinding = "";
public string ReadOnlyToggleBinding = "Q";
public string PlayMovieBinding = "";
public string RecordMovieBinding = "";
public string StopMovieBinding = "";
public string PlayBeginningBinding = "";
public string VolUpBinding = "";
public string VolDownBinding = "";
public string SoftResetBinding = "";
public string ToggleMultiTrack = "";
public string MTRecordAll = "";
public string MTRecordNone = "";
public string MTIncrementPlayer = "";
public string MTDecrementPlayer = "";
2011-07-12 00:05:14 +00:00
public string AVIRecordBinding = "";
public string AVIStopBinding = "";
2011-10-01 03:43:37 +00:00
public string ToggleMenuBinding = "";
public string IncreaseWindowSize = "Alt+UpArrow";
public string DecreaseWindowSize = "Alt+DownArrow";
public string AutoholdBinding = "";
public string AutoholdAutofireBinding = "";
public string AutoholdClear = "";
public string ToggleSNESBG1Binding = "";
public string ToggleSNESBG2Binding = "";
public string ToggleSNESBG3Binding = "";
public string ToggleSNESBG4Binding = "";
public string ToggleSNESOBJ1Binding = "";
public string ToggleSNESOBJ2Binding = "";
public string ToggleSNESOBJ3Binding = "";
public string ToggleSNESOBJ4Binding = "";
public string SaveMovieBinding = "";
2012-11-23 17:03:10 +00:00
public string OpenVirtualPadBinding = "";
public string MoviePlaybackPokeModeBinding = "";
public string ClearFrameBinding = "";
// NES Sound settings
2013-05-10 18:38:58 +00:00
public int NESSquare1 = 376;
public int NESSquare2 = 376;
public int NESTriangle = 426;
public int NESNoise = 247;
public int NESDMC = 167;
public const int NESSquare1Max = 376;
public const int NESSquare2Max = 376;
public const int NESTriangleMax = 426;
public const int NESNoiseMax = 247;
public const int NESDMCMax = 167;
public struct AnalogBind
2013-07-24 00:08:50 +00:00
{
/// <summary>the physical stick that we're bound to</summary>
public string Value;
/// <summary>sensitivity and flip</summary>
public float Mult;
public AnalogBind(string Value, float Mult)
{
this.Value = Value;
this.Mult = Mult;
}
}
// [ControllerType][ButtonName] => Physical Bind
public Dictionary<string, Dictionary<string, string>> AllTrollers = new Dictionary<string, Dictionary<string, string>>();
public Dictionary<string, Dictionary<string, string>> AllTrollersAutoFire = new Dictionary<string, Dictionary<string, string>>();
2013-07-24 00:08:50 +00:00
public Dictionary<string, Dictionary<string, AnalogBind>> AllTrollersAnalog = new Dictionary<string, Dictionary<string, AnalogBind>>();
// SMS / GameGear Settings
public bool SmsEnableFM = true;
public bool SmsAllowOverlock = false;
public bool SmsForceStereoSeparation = false;
public bool SmsSpriteLimit = false;
public bool GGShowClippedRegions = false;
public bool GGHighlightActiveDisplayRegion = false;
// PCEngine Settings
2012-03-07 00:40:20 +00:00
public bool PceSpriteLimit = false;
public bool PceEqualizeVolume = false;
public bool PceArcadeCardRewindHack = true;
// Genesis Settings
2012-03-07 00:40:20 +00:00
//Atari 2600 Settings
public bool Atari2600_BW = false;
public bool Atari2600_LeftDifficulty = true;
public bool Atari2600_RightDifficulty = true;
//Atari 7800 Settings
//ColecoVision
//Intellivision
//NES settings
//SNES settings
public string SNESProfile = "Compatibility";
public bool SNESUseRingBuffer = true;
public bool SNESAlwaysDoubleSize = false;
//N64 settings
//TI 83 settings
//GB settings
public bool GB_ForceDMG = false;
public bool GB_GBACGB = false;
public bool GB_MulticartCompat = false;
public string GB_PaletteFile = "";
public bool GB_AsSGB = false;
public Emulation.Consoles.GB.GBColors.ColorType CGBColors = Emulation.Consoles.GB.GBColors.ColorType.gambatte;
2012-03-04 20:37:49 +00:00
2012-12-29 02:30:31 +00:00
//Dual Gb
2012-11-24 16:14:30 +00:00
//GBA settings
2013-05-01 02:53:53 +00:00
//Saturn
//Commodore 64 Settings
2012-03-04 20:37:49 +00:00
//GIF Animator Settings
public int GifAnimatorNumFrames;
public int GifAnimatorFrameSkip;
public int GifAnimatorSpeed;
public bool GifAnimatorReversable;
//LuaWriter Settings
public int LuaDefaultTextColor = -16777216;
public bool LuaDefaultTextBold = false;
public int LuaWriterBackColor = -1;
public int LuaKeyWordColor = -16776961;
2012-10-13 21:27:12 +00:00
public bool LuaKeyWordBold = false;
public int LuaCommentColor = -16744448;
2012-10-13 21:27:12 +00:00
public bool LuaCommentBold = false;
public int LuaStringColor = -8355712;
2012-10-13 21:27:12 +00:00
public bool LuaStringBold = false;
public int LuaSymbolColor = -16777216;
2012-10-13 21:27:12 +00:00
public bool LuaSymbolBold = false;
public int LuaLibraryColor = -16711681;
public bool LuaLibraryBold = false;
public int LuaDecimalColor = -23296;
public bool LuaDecimalBold = false;
public float LuaWriterFontSize = 11;
public string LuaWriterFont = "Courier New";
public float LuaWriterZoom = 1;
public bool LuaWriterStartEmpty = false;
//Atari 2600 Settings
public bool Atari2600_ShowBG = true;
public bool Atari2600_ShowPlayer1 = true;
public bool Atari2600_ShowPlayer2 = true;
public bool Atari2600_ShowMissle1 = true;
public bool Atari2600_ShowMissle2 = true;
public bool Atari2600_ShowBall = true;
2012-10-30 23:38:53 +00:00
public bool Atari2600_ShowPlayfield = true;
}
public enum PLUGINTYPE { RICE, GLIDE };
public interface iPluginSettings
{
PLUGINTYPE PluginType { get; }
Dictionary<string, object> GetPluginSettings();
}
public class N64RicePluginSettings : iPluginSettings
{
public PLUGINTYPE PluginType
{
get { return PLUGINTYPE.RICE; }
}
public void FillPerGameHacks(GameInfo game)
{
if (Global.Config.RicePlugin.UseDefaultHacks)
{
DisableTextureCRC = game.GetBool("RiceDisableTextureCRC", false);
DisableCulling = game.GetBool("RiceDisableCulling", false);
IncTexRectEdge = game.GetBool("RiceIncTexRectEdge", false);
ZHack = game.GetBool("RiceZHack", false);
TextureScaleHack = game.GetBool("RiceTextureScaleHack", false);
PrimaryDepthHack = game.GetBool("RicePrimaryDepthHack", false);
Texture1Hack = game.GetBool("RiceTexture1Hack", false);
FastLoadTile = game.GetBool("RiceFastLoadTile", false);
UseSmallerTexture = game.GetBool("RiceUseSmallerTexture", false);
VIWidth = game.GetInt("RiceVIWidth", -1);
VIHeight = game.GetInt("RiceVIHeight", -1);
UseCIWidthAndRatio = game.GetInt("RiceUseCIWidthAndRatio", 0);
FullTMEM = game.GetInt("RiceFullTMEM", 0);
TxtSizeMethod2 = game.GetBool("RiceTxtSizeMethod2", false);
EnableTxtLOD = game.GetBool("RiceEnableTxtLOD", false);
FastTextureCRC = game.GetInt("RiceFastTextureCRC", 0);
EmulateClear = game.GetBool("RiceEmulateClear", false);
ForceScreenClear = game.GetBool("RiceForceScreenClear", false);
AccurateTextureMappingHack = game.GetInt("RiceAccurateTextureMappingHack", 0);
NormalBlender = game.GetInt("RiceNormalBlender", 0);
DisableBlender = game.GetBool("RiceDisableBlender", false);
ForceDepthBuffer = game.GetBool("RiceForceDepthBuffer", false);
DisableObjBG = game.GetBool("RiceDisableObjBG", false);
FrameBufferOption = game.GetInt("RiceFrameBufferOption", 0);
RenderToTextureOption = game.GetInt("RiceRenderToTextureOption", 0);
ScreenUpdateSettingHack = game.GetInt("RiceScreenUpdateSettingHack", 0);
EnableHacksForGame = game.GetInt("RiceEnableHacksForGame", 0);
}
}
public Dictionary<string, object> GetPluginSettings()
{
//TODO: deal witn the game depedent settings
Dictionary<string, object> dictionary = new Dictionary<string, object>();
2013-05-27 19:17:19 +00:00
System.Reflection.FieldInfo[] members = Global.Config.RicePlugin.GetType().GetFields();
foreach (System.Reflection.FieldInfo member in members)
{
2013-05-27 19:17:19 +00:00
object field = Global.Config.RicePlugin.GetType().GetField(member.Name).GetValue(Global.Config.RicePlugin);
dictionary.Add(member.Name, field);
}
return dictionary;
}
public int FrameBufferSetting = 0;
public int FrameBufferWriteBackControl = 0;
public int RenderToTexture = 0;
public int ScreenUpdateSetting = 4;
public int Mipmapping = 2;
public int FogMethod = 0;
public int ForceTextureFilter = 0;
public int TextureEnhancement = 0;
public int TextureEnhancementControl = 0;
public int TextureQuality = 0;
public int OpenGLDepthBufferSetting = 16;
public int MultiSampling = 0;
public int ColorQuality = 0;
public int OpenGLRenderSetting = 0;
public int AnisotropicFiltering = 0;
public bool NormalAlphaBlender = false;
public bool FastTextureLoading = false;
public bool AccurateTextureMapping = true;
public bool InN64Resolution = false;
public bool SaveVRAM = false;
public bool DoubleSizeForSmallTxtrBuf = false;
public bool DefaultCombinerDisable = false;
public bool EnableHacks = true;
public bool WinFrameMode = false;
public bool FullTMEMEmulation = false;
public bool OpenGLVertexClipper = false;
public bool EnableSSE = true;
public bool EnableVertexShader = false;
public bool SkipFrame = false;
public bool TexRectOnly = false;
public bool SmallTextureOnly = false;
public bool LoadHiResCRCOnly = true;
public bool LoadHiResTextures = false;
public bool DumpTexturesToFiles = false;
public bool UseDefaultHacks = true;
public bool DisableTextureCRC = false;
public bool DisableCulling = false;
public bool IncTexRectEdge = false;
public bool ZHack = false;
public bool TextureScaleHack = false;
public bool PrimaryDepthHack = false;
public bool Texture1Hack = false;
public bool FastLoadTile = false;
public bool UseSmallerTexture = false;
public int VIWidth = -1;
public int VIHeight = -1;
public int UseCIWidthAndRatio = 0;
public int FullTMEM = 0;
public bool TxtSizeMethod2 = false;
public bool EnableTxtLOD = false;
public int FastTextureCRC = 0;
public bool EmulateClear = false;
public bool ForceScreenClear = false;
public int AccurateTextureMappingHack = 0;
public int NormalBlender = 0;
public bool DisableBlender = false;
public bool ForceDepthBuffer = false;
public bool DisableObjBG = false;
public int FrameBufferOption = 0;
public int RenderToTextureOption = 0;
public int ScreenUpdateSettingHack = 0;
public int EnableHacksForGame = 0;
}
public class N64GlidePluginSettings : iPluginSettings
{
public PLUGINTYPE PluginType
{
get { return PLUGINTYPE.GLIDE; }
}
public void FillPerGameHacks(GameInfo game)
{
if (Global.Config.GlidePlugin.UseDefaultHacks)
{
alt_tex_size = Global.Game.GetBool("Glide_alt_tex_size", false);
buff_clear = Global.Game.GetBool("Glide_buff_clear", true);
decrease_fillrect_edge = Global.Game.GetBool("Glide_decrease_fillrect_edge", false);
detect_cpu_write = Global.Game.GetBool("Glide_detect_cpu_write", false);
fb_clear = Global.Game.GetBool("Glide_fb_clear", false);
fb_hires = Global.Game.GetBool("Glide_fb_clear", true);
fb_read_alpha = Global.Game.GetBool("Glide_fb_read_alpha", false);
fb_smart = Global.Game.GetBool("Glide_fb_smart", false);
fillcolor_fix = Global.Game.GetBool("Glide_fillcolor_fix", false);
fog = Global.Game.GetBool("Glide_fog", true);
force_depth_compare = Global.Game.GetBool("Glide_force_depth_compare", false);
force_microcheck = Global.Game.GetBool("Glide_force_microcheck", false);
fb_hires_buf_clear = Global.Game.GetBool("Glide_fb_hires_buf_clear", true);
fb_ignore_aux_copy = Global.Game.GetBool("Glide_fb_ignore_aux_copy", false);
fb_ignore_previous = Global.Game.GetBool("Glide_fb_ignore_previous", false);
increase_primdepth = Global.Game.GetBool("Glide_increase_primdepth", false);
increase_texrect_edge = Global.Game.GetBool("Glide_increase_texrect_edge", false);
fb_optimize_texrect = Global.Game.GetBool("Glide_fb_optimize_texrect", true);
fb_optimize_write = Global.Game.GetBool("Glide_fb_optimize_write", false);
PPL = Global.Game.GetBool("Glide_PPL", false);
soft_depth_compare = Global.Game.GetBool("Glide_soft_depth_compare", false);
use_sts1_only = Global.Game.GetBool("Glide_use_sts1_only", false);
wrap_big_tex = Global.Game.GetBool("Glide_wrap_big_tex", false);
depth_bias = Global.Game.GetInt("Glide_depth_bias", 20);
filtering = Global.Game.GetInt("Glide_filtering", 1);
fix_tex_coord = Global.Game.GetInt("Glide_fix_tex_coord", 0);
lodmode = Global.Game.GetInt("Glide_lodmode", 0);
stipple_mode = Global.Game.GetInt("Glide_stipple_mode", 2);
stipple_pattern = Global.Game.GetInt("Glide_stipple_pattern", 1041204192);
swapmode = Global.Game.GetInt("Glide_swapmode", 1);
enable_hacks_for_game = Global.Game.GetInt("Glide_enable_hacks_for_game", 0);
}
}
public Dictionary<string, object> GetPluginSettings()
{
//TODO: deal witn the game depedent settings
Dictionary<string, object> dictionary = new Dictionary<string, object>();
2013-05-27 19:17:19 +00:00
System.Reflection.FieldInfo[] members = Global.Config.GlidePlugin.GetType().GetFields();
foreach (System.Reflection.FieldInfo member in members)
{
2013-05-27 19:17:19 +00:00
object field = Global.Config.GlidePlugin.GetType().GetField(member.Name).GetValue(Global.Config.GlidePlugin);
dictionary.Add(member.Name, field);
}
return dictionary;
}
public int wfmode = 1;
public bool wireframe = false;
public int card_id = 0;
public bool flame_corona = false;
public int ucode = 2;
public bool autodetect_ucode = true;
public bool motionblur = false;
public bool fb_read_always = false;
public bool unk_as_red = false;
public bool filter_cache = false;
public bool fast_crc = false;
public bool disable_auxbuf = false;
public bool fbo = false;
public bool noglsl = true;
public bool noditheredalpha = true;
public int tex_filter = 0;
public bool fb_render = false;
public bool wrap_big_tex = false;
public bool use_sts1_only = false;
public bool soft_depth_compare = false;
public bool PPL = false;
public bool fb_optimize_write = false;
public bool fb_optimize_texrect = true;
public bool increase_texrect_edge = false;
public bool increase_primdepth = false;
public bool fb_ignore_previous = false;
public bool fb_ignore_aux_copy = false;
public bool fb_hires_buf_clear = true;
public bool force_microcheck = false;
public bool force_depth_compare = false;
public bool fog = true;
public bool fillcolor_fix = false;
public bool fb_smart = false;
public bool fb_read_alpha = false;
public bool fb_get_info = false;
public bool fb_hires = true;
public bool fb_clear = false;
public bool detect_cpu_write = false;
public bool decrease_fillrect_edge = false;
public bool buff_clear = true;
public bool alt_tex_size = false;
public bool UseDefaultHacks = true;
public int enable_hacks_for_game = 0;
public int swapmode = 1;
public int stipple_pattern = 1041204192;
public int stipple_mode = 2;
public int scale_y = 100000;
public int scale_x = 100000;
public int offset_y = 0;
public int offset_x = 0;
public int lodmode = 0;
public int fix_tex_coord = 0;
public int filtering = 1;
public int depth_bias = 20;
}
}