2011-01-11 02:55:51 +00:00
namespace BizHawk.MultiClient
2011-02-19 20:31:32 +00:00
{
2011-01-11 02:55:51 +00:00
public class Config
{
2011-02-19 20:31:32 +00:00
public Config ( )
{
SMSController [ 0 ] = new SMSControllerTemplate ( 1 ) ;
SMSController [ 1 ] = new SMSControllerTemplate ( 2 ) ;
2011-02-19 21:27:10 +00:00
PCEController [ 0 ] = new PCEControllerTemplate ( 1 ) ;
PCEController [ 1 ] = new PCEControllerTemplate ( 2 ) ;
PCEController [ 2 ] = new PCEControllerTemplate ( 3 ) ;
PCEController [ 3 ] = new PCEControllerTemplate ( 4 ) ;
PCEController [ 4 ] = new PCEControllerTemplate ( 5 ) ;
2011-02-19 20:31:32 +00:00
}
2011-01-11 02:55:51 +00:00
// General Client Settings
2011-01-26 05:06:44 +00:00
public int TargetZoomFactor = 2 ;
2011-01-11 02:55:51 +00:00
public string LastRomPath = "." ;
2011-01-18 01:55:01 +00:00
public bool AutoLoadMostRecentRom = false ; //TODO: eventually make a class or struct for all the auto-loads, which will include recent roms, movies, etc, as well as autoloading any modeless dialog
2011-01-18 03:40:53 +00:00
public RecentFiles RecentRoms = new RecentFiles ( 8 ) ;
2011-02-15 17:04:07 +00:00
public bool PauseWhenMenuActivated = true ;
2011-02-18 05:12:23 +00:00
public bool SaveWindowPosition = true ;
2011-02-18 05:16:21 +00:00
public bool StartPaused = false ;
2011-02-18 02:10:46 +00:00
public int MainWndx = - 1 ; //Negative numbers will be ignored
public int MainWndy = - 1 ;
2011-01-11 02:55:51 +00:00
2011-02-15 16:41:03 +00:00
// Display options
public bool DisplayFPS = false ;
public bool DisplayFrameCounter = false ;
public bool DisplayLagCounter = false ;
public bool DisplayInput = false ;
2011-02-15 20:18:12 +00:00
// Sound options
public bool SoundEnabled = true ;
public bool MuteFrameAdvance = true ;
2011-01-19 04:18:33 +00:00
// RamWatch Settings
public bool AutoLoadRamWatch = false ;
public RecentFiles RecentWatches = new RecentFiles ( 8 ) ;
2011-01-20 00:40:23 +00:00
public int RamWatchWndx = - 1 ; //Negative numbers will be ignored even with save window position set
public int RamWatchWndy = - 1 ;
2011-01-20 02:22:15 +00:00
public int RamWatchWidth = - 1 ; //Negative numbers will be ignored
public int RamWatchHeight = - 1 ;
2011-01-19 04:18:33 +00:00
2011-01-28 03:52:43 +00:00
// RamSearch Settings
public bool AutoLoadRamSearch = false ;
2011-02-18 19:53:41 +00:00
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 ;
2011-01-28 03:52:43 +00:00
2011-02-11 02:30:45 +00:00
//Movie Settings
public RecentFiles RecentMovies = new RecentFiles ( 8 ) ;
2011-01-11 02:55:51 +00:00
// Client Hotkey Bindings
2011-02-15 20:51:07 +00:00
//TODO: These should be allowed to be "", not every hotkey should have to be mapped somewhere
public string HardResetBinding = "LeftShift+Tab" ; //TODO: This needs to be Ctrl+R but how?
public string FastForwardBinding = "J1 B6, Tab" ;
public string RewindBinding = "J1 B5, LeftShift+R, RightShift+R" ;
2011-01-28 06:46:33 +00:00
public string EmulatorPauseBinding = "Pause" ;
2011-01-11 02:55:51 +00:00
public string FrameAdvanceBinding = "F" ;
public string ScreenshotBinding = "F12" ;
2011-01-29 08:42:35 +00:00
public string ToggleFullscreenBinding = "LeftAlt+Return, RightAlt+Return" ;
2011-02-15 17:15:51 +00:00
public string QuickSave = "I" ;
public string QuickLoad = "P" ;
2011-02-15 17:38:30 +00:00
public string SelectSlot0 = "0" ;
public string SelectSlot1 = "1" ;
public string SelectSlot2 = "2" ;
public string SelectSlot3 = "3" ;
public string SelectSlot4 = "4" ;
public string SelectSlot5 = "5" ;
public string SelectSlot6 = "6" ;
public string SelectSlot7 = "7" ;
public string SelectSlot8 = "8" ;
public string SelectSlot9 = "9" ;
2011-02-20 02:59:15 +00:00
public string SaveSlot0 = "SHIFT+F0" ;
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 = "CTRL+F0" ;
public string LoadSlot1 = "CTRL+F1" ;
public string LoadSlot2 = "CTRL+F2" ;
public string LoadSlot3 = "CTRL+F3" ;
public string LoadSlot4 = "CTRL+F4" ;
public string LoadSlot5 = "CTRL+F5" ;
public string LoadSlot6 = "CTRL+F6" ;
public string LoadSlot7 = "CTRL+F7" ;
public string LoadSlot8 = "CTRL+F8" ;
public string LoadSlot9 = "CTRL+F9" ;
2011-01-11 02:55:51 +00:00
2011-02-19 20:31:32 +00:00
2011-01-11 02:55:51 +00:00
// SMS / GameGear Settings
2011-01-28 06:46:33 +00:00
public bool SmsEnableFM = true ;
public bool SmsAllowOverlock = false ;
2011-02-14 05:02:26 +00:00
public bool SmsForceStereoSeparation = false ;
2011-02-19 20:31:32 +00:00
public string SmsReset = "Reset, Tab" ;
2011-01-11 02:55:51 +00:00
public string SmsPause = "J1 B10, Space" ;
2011-02-19 20:31:32 +00:00
public SMSControllerTemplate [ ] SMSController = new SMSControllerTemplate [ 2 ] ;
2011-01-11 02:55:51 +00:00
// PCEngine Settings
2011-02-19 21:27:10 +00:00
public PCEControllerTemplate [ ] PCEController = new PCEControllerTemplate [ 5 ] ;
2011-01-11 02:55:51 +00:00
// Genesis Settings
public string GenP1Up = "J1 Up, UpArrow" ;
public string GenP1Down = "J1 Down, DownArrow" ;
public string GenP1Left = "J1 Left, LeftArrow" ;
public string GenP1Right = "J1 Right, RightArrow" ;
public string GenP1A = "J1 B1, Z" ;
public string GenP1B = "J1 B2, X" ;
public string GenP1C = "J1 B9, C" ;
2011-02-19 22:07:52 +00:00
public string GenP1Start = "J1 B10, Return" ;
//GameBoy Settings
public NESControllerTemplate GameBoyController = new NESControllerTemplate ( 1 ) ;
2011-01-11 02:55:51 +00:00
}
2011-02-19 22:07:52 +00:00
2011-02-19 20:31:32 +00:00
public class SMSControllerTemplate
{
public string Up ;
public string Down ;
public string Left ;
public string Right ;
public string B1 ;
public string B2 ;
public SMSControllerTemplate ( int i )
{
Up = string . Format ( "J{0} Up" , i ) ;
Down = string . Format ( "J{0} Down" , i ) ;
Left = string . Format ( "J{0} Left" , i ) ;
Right = string . Format ( "J{0} Right" , i ) ;
B1 = string . Format ( "J{0} B1" , i ) ;
B2 = string . Format ( "J{0} B2" , i ) ;
}
}
2011-02-19 21:27:10 +00:00
public class PCEControllerTemplate
{
public string Up ;
public string Down ;
public string Left ;
public string Right ;
public string I ;
public string II ;
public string Run ;
public string Select ;
public PCEControllerTemplate ( int i )
{
Up = string . Format ( "J{0} Up" , i ) ;
Down = string . Format ( "J{0} Down" , i ) ;
Left = string . Format ( "J{0} Left" , i ) ;
Right = string . Format ( "J{0} Right" , i ) ;
I = string . Format ( "J{0} I" , i ) ;
II = string . Format ( "J{0} II" , i ) ;
Run = string . Format ( "J{0} Run" , i ) ;
Select = string . Format ( "J{0} Select" , i ) ;
}
}
2011-02-19 22:07:52 +00:00
public class NESControllerTemplate
{
public string Up ;
public string Down ;
public string Left ;
public string Right ;
public string A ;
public string B ;
public string Start ;
public string Select ;
public NESControllerTemplate ( int i )
{
Up = string . Format ( "J{0} Up" , i ) ;
Down = string . Format ( "J{0} Down" , i ) ;
Left = string . Format ( "J{0} Left" , i ) ;
Right = string . Format ( "J{0} Right" , i ) ;
A = string . Format ( "J{0} A" , i ) ;
B = string . Format ( "J{0} B" , i ) ;
Start = string . Format ( "J{0} Start" , i ) ;
Select = string . Format ( "J{0} Select" , i ) ;
}
}
2011-02-19 20:31:32 +00:00
2011-01-11 02:55:51 +00:00
}