2011-02-21 09:48:53 +00:00
using System ;
using System.Drawing ;
using System.IO ;
using System.Windows.Forms ;
2013-11-04 01:39:19 +00:00
using BizHawk.Client.Common ;
using BizHawk.Emulation.Common ;
2013-12-20 22:49:35 +00:00
using BizHawk.Emulation.Cores.Calculators ;
2014-01-07 00:22:46 +00:00
using BizHawk.Emulation.Cores.ColecoVision ;
2013-11-13 03:32:25 +00:00
using BizHawk.Emulation.Cores.Nintendo.Gameboy ;
2013-12-20 22:49:35 +00:00
using BizHawk.Emulation.Cores.Nintendo.NES ;
using BizHawk.Emulation.Cores.Nintendo.SNES ;
2013-12-22 20:41:21 +00:00
using BizHawk.Emulation.Cores.PCEngine ;
2013-12-24 01:06:17 +00:00
using BizHawk.Emulation.Cores.Sega.MasterSystem ;
2014-01-09 23:50:10 +00:00
using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES ;
using BizHawk.Client.EmuHawk.config.NES ;
2014-06-29 02:12:23 +00:00
using BizHawk.Emulation.Common.IEmulatorExtensions ;
2011-02-21 09:48:53 +00:00
2013-11-03 03:54:37 +00:00
namespace BizHawk.Client.EmuHawk
2011-02-21 09:48:53 +00:00
{
partial class MainForm
{
2013-10-27 07:54:00 +00:00
#region File Menu
private void FileSubMenu_DropDownOpened ( object sender , EventArgs e )
{
OpenRomMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Open ROM" ] . Bindings ;
CloseRomMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Close ROM" ] . Bindings ;
MovieSubMenu . Enabled =
AVSubMenu . Enabled =
ScreenshotSubMenu . Enabled =
CloseRomMenuItem . Enabled =
2013-11-03 02:51:21 +00:00
! ( Global . Emulator is NullEmulator ) ;
2013-10-27 07:54:00 +00:00
}
private void RecentRomMenuItem_DropDownOpened ( object sender , EventArgs e )
{
RecentRomSubMenu . DropDownItems . Clear ( ) ;
RecentRomSubMenu . DropDownItems . AddRange (
ToolHelpers . GenerateRecentMenu ( Global . Config . RecentRoms , LoadRomFromRecent )
) ;
RecentRomSubMenu . DropDownItems . Add (
ToolHelpers . GenerateAutoLoadItem ( Global . Config . RecentRoms )
) ;
}
private void SaveStateSubMenu_DropDownOpened ( object sender , EventArgs e )
{
SaveState0MenuItem . Font = new Font (
SaveState0MenuItem . Font . FontFamily ,
SaveState0MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 0 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState1MenuItem . Font = new Font (
SaveState1MenuItem . Font . FontFamily ,
SaveState1MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 1 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState2MenuItem . Font = new Font (
SaveState2MenuItem . Font . FontFamily ,
SaveState2MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 2 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState3MenuItem . Font = new Font (
SaveState3MenuItem . Font . FontFamily ,
SaveState3MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 3 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
2014-01-01 03:03:10 +00:00
2013-10-27 07:54:00 +00:00
SaveState4MenuItem . Font = new Font (
SaveState4MenuItem . Font . FontFamily ,
SaveState4MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 4 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
2014-01-01 03:03:10 +00:00
2013-10-27 07:54:00 +00:00
SaveState5MenuItem . Font = new Font (
SaveState5MenuItem . Font . FontFamily ,
SaveState5MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 5 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState6MenuItem . Font = new Font (
SaveState6MenuItem . Font . FontFamily ,
SaveState6MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 6 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState7MenuItem . Font = new Font (
SaveState7MenuItem . Font . FontFamily ,
SaveState7MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 7 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState8MenuItem . Font = new Font (
SaveState8MenuItem . Font . FontFamily ,
SaveState8MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 8 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState9MenuItem . Font = new Font (
SaveState9MenuItem . Font . FontFamily ,
SaveState9MenuItem . Font . Size ,
2013-11-27 23:35:32 +00:00
_stateSlots . HasSlot ( 9 ) ? ( FontStyle . Italic | FontStyle . Bold ) : FontStyle . Regular
2013-10-27 07:54:00 +00:00
) ;
SaveState1MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 1" ] . Bindings ;
SaveState2MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 2" ] . Bindings ;
SaveState3MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 3" ] . Bindings ;
SaveState4MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 4" ] . Bindings ;
SaveState5MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 5" ] . Bindings ;
SaveState6MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 6" ] . Bindings ;
SaveState7MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 7" ] . Bindings ;
SaveState8MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 8" ] . Bindings ;
SaveState9MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 9" ] . Bindings ;
SaveState0MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save State 0" ] . Bindings ;
SaveNamedStateMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save Named State" ] . Bindings ;
SaveNamedStateMenuItem . Enabled =
SaveState1MenuItem . Enabled =
SaveState2MenuItem . Enabled =
SaveState3MenuItem . Enabled =
SaveState4MenuItem . Enabled =
SaveState5MenuItem . Enabled =
SaveState6MenuItem . Enabled =
SaveState7MenuItem . Enabled =
SaveState8MenuItem . Enabled =
SaveState9MenuItem . Enabled =
SaveState0MenuItem . Enabled =
2013-11-03 02:51:21 +00:00
! ( Global . Emulator is NullEmulator ) ;
2013-10-27 07:54:00 +00:00
}
private void LoadStateSubMenu_DropDownOpened ( object sender , EventArgs e )
{
LoadState1MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 1" ] . Bindings ;
LoadState2MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 2" ] . Bindings ;
LoadState3MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 3" ] . Bindings ;
LoadState4MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 4" ] . Bindings ;
LoadState5MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 5" ] . Bindings ;
LoadState6MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 6" ] . Bindings ;
LoadState7MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 7" ] . Bindings ;
LoadState8MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 8" ] . Bindings ;
LoadState9MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 9" ] . Bindings ;
LoadState0MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load State 0" ] . Bindings ;
LoadNamedStateMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Load Named State" ] . Bindings ;
AutoloadLastSlotMenuItem . Checked = Global . Config . AutoLoadLastSaveSlot ;
2013-11-03 02:51:21 +00:00
LoadNamedStateMenuItem . Enabled = ! ( Global . Emulator is NullEmulator ) ;
2013-11-27 23:35:32 +00:00
LoadState1MenuItem . Enabled = _stateSlots . HasSlot ( 1 ) ;
LoadState2MenuItem . Enabled = _stateSlots . HasSlot ( 2 ) ;
LoadState3MenuItem . Enabled = _stateSlots . HasSlot ( 3 ) ;
LoadState4MenuItem . Enabled = _stateSlots . HasSlot ( 4 ) ;
LoadState5MenuItem . Enabled = _stateSlots . HasSlot ( 5 ) ;
LoadState6MenuItem . Enabled = _stateSlots . HasSlot ( 6 ) ;
LoadState7MenuItem . Enabled = _stateSlots . HasSlot ( 7 ) ;
LoadState8MenuItem . Enabled = _stateSlots . HasSlot ( 8 ) ;
LoadState9MenuItem . Enabled = _stateSlots . HasSlot ( 9 ) ;
LoadState0MenuItem . Enabled = _stateSlots . HasSlot ( 0 ) ;
2013-10-27 07:54:00 +00:00
}
private void SaveSlotSubMenu_DropDownOpened ( object sender , EventArgs e )
{
SelectSlot0MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 0" ] . Bindings ;
SelectSlot1MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 1" ] . Bindings ;
SelectSlot2MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 2" ] . Bindings ;
SelectSlot3MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 3" ] . Bindings ;
SelectSlot4MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 4" ] . Bindings ;
SelectSlot5MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 5" ] . Bindings ;
SelectSlot6MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 6" ] . Bindings ;
SelectSlot7MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 7" ] . Bindings ;
SelectSlot8MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 8" ] . Bindings ;
SelectSlot9MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Select State 9" ] . Bindings ;
PreviousSlotMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Previous Slot" ] . Bindings ;
NextSlotMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Next Slot" ] . Bindings ;
SaveToCurrentSlotMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Quick Save" ] . Bindings ;
LoadCurrentSlotMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Quick Load" ] . Bindings ;
2013-11-03 02:51:21 +00:00
SaveToCurrentSlotMenuItem . Enabled = LoadCurrentSlotMenuItem . Enabled = ! ( Global . Emulator is NullEmulator ) ;
2013-10-27 07:54:00 +00:00
SelectSlot0MenuItem . Checked = false ;
SelectSlot1MenuItem . Checked = false ;
SelectSlot2MenuItem . Checked = false ;
SelectSlot3MenuItem . Checked = false ;
SelectSlot4MenuItem . Checked = false ;
SelectSlot5MenuItem . Checked = false ;
SelectSlot6MenuItem . Checked = false ;
SelectSlot7MenuItem . Checked = false ;
SelectSlot8MenuItem . Checked = false ;
SelectSlot9MenuItem . Checked = false ;
SelectSlot1MenuItem . Checked = false ;
switch ( Global . Config . SaveSlot )
{
case 0 :
SelectSlot0MenuItem . Checked = true ;
break ;
case 1 :
SelectSlot1MenuItem . Checked = true ;
break ;
case 2 :
SelectSlot2MenuItem . Checked = true ;
break ;
case 3 :
SelectSlot3MenuItem . Checked = true ;
break ;
case 4 :
SelectSlot4MenuItem . Checked = true ;
break ;
case 5 :
SelectSlot5MenuItem . Checked = true ;
break ;
case 6 :
SelectSlot6MenuItem . Checked = true ;
break ;
case 7 :
SelectSlot7MenuItem . Checked = true ;
break ;
case 8 :
SelectSlot8MenuItem . Checked = true ;
break ;
case 9 :
SelectSlot9MenuItem . Checked = true ;
break ;
}
}
private void MovieSubMenu_DropDownOpened ( object sender , EventArgs e )
{
FullMovieLoadstatesMenuItem . Enabled = ! Global . MovieSession . MultiTrack . IsActive ;
2013-11-23 18:18:58 +00:00
StopMovieWithoutSavingMenuItem . Enabled = Global . MovieSession . Movie . IsActive & & Global . MovieSession . Movie . Changes ;
2013-10-27 07:54:00 +00:00
StopMovieMenuItem . Enabled
= PlayFromBeginningMenuItem . Enabled
= SaveMovieMenuItem . Enabled
= Global . MovieSession . Movie . IsActive ;
2014-07-10 20:06:23 +00:00
PlayMovieMenuItem . Enabled =
RecordMovieMenuItem . Enabled =
RecentMovieSubMenu . Enabled =
! Global . MovieSession . Movie . IsActive ;
2013-12-03 18:08:45 +00:00
ReadonlyMenuItem . Checked = Global . MovieSession . ReadOnly ;
2013-10-27 07:54:00 +00:00
AutomaticallyBackupMoviesMenuItem . Checked = Global . Config . EnableBackupMovies ;
FullMovieLoadstatesMenuItem . Checked = Global . Config . VBAStyleMovieLoadState ;
ReadonlyMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle read-only" ] . Bindings ;
RecordMovieMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Record Movie" ] . Bindings ;
PlayMovieMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Play Movie" ] . Bindings ;
StopMovieMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Stop Movie" ] . Bindings ;
PlayFromBeginningMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Play from beginning" ] . Bindings ;
SaveMovieMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Save Movie" ] . Bindings ;
}
private void RecentMovieSubMenu_DropDownOpened ( object sender , EventArgs e )
{
2014-07-10 20:06:23 +00:00
RecentMovieSubMenu . DropDownItems . Clear ( ) ;
RecentMovieSubMenu . DropDownItems . AddRange (
2013-10-27 07:54:00 +00:00
ToolHelpers . GenerateRecentMenu ( Global . Config . RecentMovies , LoadMoviesFromRecent )
) ;
2014-07-10 20:06:23 +00:00
RecentMovieSubMenu . DropDownItems . Add (
2013-10-27 07:54:00 +00:00
ToolHelpers . GenerateAutoLoadItem ( Global . Config . RecentMovies )
) ;
}
2014-07-14 00:35:33 +00:00
private void MovieEndSubMenu_DropDownOpened ( object sender , EventArgs e )
{
MovieEndFinishMenuItem . Checked = Global . Config . MovieEndAction = = MovieEndAction . Finish ;
MovieEndRecordMenuItem . Checked = Global . Config . MovieEndAction = = MovieEndAction . Record ;
MovieEndStopMenuItem . Checked = Global . Config . MovieEndAction = = MovieEndAction . Stop ;
MovieEndPauseMenuItem . Checked = Global . Config . MovieEndAction = = MovieEndAction . Pause ;
}
2013-10-27 07:54:00 +00:00
private void AVSubMenu_DropDownOpened ( object sender , EventArgs e )
{
RecordAVMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Record A/V" ] . Bindings ;
StopAVIMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Stop A/V" ] . Bindings ;
CaptureOSDMenuItem . Checked = Global . Config . AVI_CaptureOSD ;
2013-11-27 23:35:32 +00:00
if ( _currAviWriter = = null )
2013-10-27 07:54:00 +00:00
{
RecordAVMenuItem . Enabled = true ;
StopAVIMenuItem . Enabled = false ;
}
else
{
RecordAVMenuItem . Enabled = false ;
StopAVIMenuItem . Enabled = true ;
}
}
private void ScreenshotSubMenu_DropDownOpening ( object sender , EventArgs e )
{
ScreenshotCaptureOSDMenuItem1 . Checked = Global . Config . Screenshot_CaptureOSD ;
ScreenshotMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Screenshot" ] . Bindings ;
}
private void OpenRomMenuItem_Click ( object sender , EventArgs e )
2013-07-16 01:59:59 +00:00
{
2013-11-27 23:35:32 +00:00
OpenRom ( ) ;
2013-07-16 01:59:59 +00:00
}
2012-09-06 08:32:25 +00:00
2013-10-27 07:54:00 +00:00
private void CloseRomMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-11-27 23:35:32 +00:00
CloseRom ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-12-30 16:49:13 +00:00
private void Savestate1MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave1" ) ; }
private void Savestate2MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave2" ) ; }
private void Savestate3MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave3" ) ; }
private void Savestate4MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave4" ) ; }
private void Savestate5MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave5" ) ; }
private void Savestate6MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave6" ) ; }
private void Savestate7MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave7" ) ; }
private void Savestate8MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave8" ) ; }
private void Savestate9MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave9" ) ; }
private void Savestate0MenuItem_Click ( object sender , EventArgs e ) { SaveQuickSave ( "QuickSave0" ) ; }
2013-10-27 07:54:00 +00:00
private void SaveNamedStateMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-10-27 07:54:00 +00:00
SaveStateAs ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-12-30 16:49:13 +00:00
private void Loadstate1MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave1" ) ; }
private void Loadstate2MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave2" ) ; }
private void Loadstate3MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave3" ) ; }
private void Loadstate4MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave4" ) ; }
private void Loadstate5MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave5" ) ; }
private void Loadstate6MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave6" ) ; }
private void Loadstate7MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave7" ) ; }
private void Loadstate8MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave8" ) ; }
private void Loadstate9MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave9" ) ; }
private void Loadstate0MenuItem_Click ( object sender , EventArgs e ) { LoadQuickSave ( "QuickSave0" ) ; }
2013-10-27 07:54:00 +00:00
private void LoadNamedStateMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-10-27 07:54:00 +00:00
LoadStateAs ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void AutoloadLastSlotMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . AutoLoadLastSaveSlot ^ = true ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void SelectSlotMenuItems_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-10-27 07:54:00 +00:00
if ( sender = = SelectSlot0MenuItem ) Global . Config . SaveSlot = 0 ;
else if ( sender = = SelectSlot1MenuItem ) Global . Config . SaveSlot = 1 ;
else if ( sender = = SelectSlot2MenuItem ) Global . Config . SaveSlot = 2 ;
else if ( sender = = SelectSlot3MenuItem ) Global . Config . SaveSlot = 3 ;
else if ( sender = = SelectSlot4MenuItem ) Global . Config . SaveSlot = 4 ;
else if ( sender = = SelectSlot5MenuItem ) Global . Config . SaveSlot = 5 ;
else if ( sender = = SelectSlot6MenuItem ) Global . Config . SaveSlot = 6 ;
else if ( sender = = SelectSlot7MenuItem ) Global . Config . SaveSlot = 7 ;
else if ( sender = = SelectSlot8MenuItem ) Global . Config . SaveSlot = 8 ;
else if ( sender = = SelectSlot9MenuItem ) Global . Config . SaveSlot = 9 ;
UpdateStatusSlots ( ) ;
SaveSlotSelectedMessage ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void PreviousSlotMenuItem_Click ( object sender , EventArgs e )
2011-07-11 07:35:14 +00:00
{
2013-10-27 07:54:00 +00:00
PreviousSlot ( ) ;
2011-07-11 07:35:14 +00:00
}
2013-10-27 07:54:00 +00:00
private void NextSlotMenuItem_Click ( object sender , EventArgs e )
2011-07-11 07:35:14 +00:00
{
2013-10-27 07:54:00 +00:00
NextSlot ( ) ;
2011-07-11 07:35:14 +00:00
}
2013-10-27 07:54:00 +00:00
private void SaveToCurrentSlotMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-12-30 16:49:13 +00:00
SaveQuickSave ( "QuickSave" + Global . Config . SaveSlot ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-26 15:57:43 +00:00
2013-10-27 07:54:00 +00:00
private void LoadCurrentSlotMenuItem_Click ( object sender , EventArgs e )
{
2013-12-30 16:49:13 +00:00
LoadQuickSave ( "QuickSave" + Global . Config . SaveSlot ) ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void ReadonlyMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2013-10-27 07:54:00 +00:00
ToggleReadOnly ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void RecordMovieMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2014-06-29 02:12:23 +00:00
if ( ! Global . Emulator . Attributes ( ) . Released )
{
var result = MessageBox . Show
( this , "Thanks for using Bizhawk! The emulation core you have selected " +
"is currently BETA-status. We appreciate your help in testing Bizhawk. " +
"You can record a movie on this core if you'd like to, but expect to " +
"encounter bugs and sync problems. Continue?" , "BizHawk" , MessageBoxButtons . YesNo ) ;
if ( result ! = DialogResult . Yes )
{
return ;
}
}
else if ( Global . Emulator is LibsnesCore )
{
var ss = ( LibsnesCore . SnesSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
if ( ss . Profile = = "Performance" & & ! Global . Config . DontAskPerformanceCoreRecordingNag )
{
var box = new MsgBox (
"While the performance core is faster, it is recommended that you use the Compatibility profile when recording movies for better accuracy and stability\n\nSwitch to Compatibility?" ,
"Stability Warning" ,
MessageBoxIcon . Warning ) ;
box . SetButtons (
new [ ] { "Switch" , "Continue" , "Cancel" } ,
new [ ] { DialogResult . Yes , DialogResult . No , DialogResult . Cancel } ) ;
box . SetCheckbox ( "Don't ask me again" ) ;
box . MaximumSize = new Size ( 450 , 350 ) ;
box . SetMessageToAutoSize ( ) ;
var result = box . ShowDialog ( ) ;
Global . Config . DontAskPerformanceCoreRecordingNag = box . CheckboxChecked ;
if ( result = = DialogResult . Yes )
{
ss . Profile = "Compatibility" ;
Global . Emulator . PutSyncSettings ( ss ) ;
}
else if ( result = = DialogResult . Cancel )
{
return ;
}
}
}
new RecordMovie ( ) . ShowDialog ( ) ;
2013-10-26 15:57:43 +00:00
}
2013-10-27 07:54:00 +00:00
private void PlayMovieMenuItem_Click ( object sender , EventArgs e )
2013-10-26 15:57:43 +00:00
{
2014-06-29 02:12:23 +00:00
new PlayMovie ( ) . ShowDialog ( ) ;
2013-10-27 07:54:00 +00:00
}
private void StopMovieMenuItem_Click ( object sender , EventArgs e )
{
StopMovie ( ) ;
}
private void PlayFromBeginningMenuItem_Click ( object sender , EventArgs e )
{
2013-11-01 18:52:26 +00:00
RestartMovie ( ) ;
2013-10-27 07:54:00 +00:00
}
private void ImportMovieMenuItem_Click ( object sender , EventArgs e )
{
var ofd = new OpenFileDialog
{
InitialDirectory = PathManager . GetRomsPath ( Global . Emulator . SystemId ) ,
Multiselect = true ,
Filter = FormatFilter (
2014-07-17 00:07:24 +00:00
"Movie Files" , "*.fm2;*.mc2;*.mcm;*.mmv;*.gmv;*.vbm;*.lsmv;*.fcm;*.fmv;*.vmv;*.nmv;*.smv;*.ymv;*.zmv;*.bkm" ,
2013-10-27 07:54:00 +00:00
"FCEUX" , "*.fm2" ,
"PCEjin/Mednafen" , "*.mc2;*.mcm" ,
"Dega" , "*.mmv" ,
"Gens" , "*.gmv" ,
"Visual Boy Advance" , "*.vbm" ,
"LSNES" , "*.lsmv" ,
"FCEU" , "*.fcm" ,
"Famtasia" , "*.fmv" ,
"VirtuaNES" , "*.vmv" ,
"Nintendulator" , "*.nmv" ,
"Snes9x" , "*.smv" ,
2014-07-17 00:07:24 +00:00
"Yabause" , "*.ymv" ,
2013-10-27 07:54:00 +00:00
"ZSNES" , "*.zmv" ,
2014-07-17 00:07:24 +00:00
"BizHawk Bkm" , "*.bkm" ,
2013-10-27 07:54:00 +00:00
"All Files" , "*.*" ) ,
RestoreDirectory = false
} ;
2013-11-28 22:39:00 +00:00
var result = ofd . ShowHawkDialog ( ) ;
2013-11-27 23:35:32 +00:00
if ( result = = DialogResult . OK )
2013-10-27 07:45:59 +00:00
{
2013-11-27 23:35:32 +00:00
foreach ( var fn in ofd . FileNames )
2013-10-27 07:54:00 +00:00
{
ProcessMovieImport ( fn ) ;
}
2013-10-26 15:57:43 +00:00
}
}
2013-10-27 07:54:00 +00:00
private void SaveMovieMenuItem_Click ( object sender , EventArgs e )
{
SaveMovie ( ) ;
}
2013-10-27 15:23:41 +00:00
private void StopMovieWithoutSavingMenuItem_Click ( object sender , EventArgs e )
2013-10-27 07:54:00 +00:00
{
2013-11-23 18:18:58 +00:00
StopMovie ( saveChanges : false ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-26 20:33:25 +00:00
2013-10-27 07:54:00 +00:00
private void AutomaticMovieBackupMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . EnableBackupMovies ^ = true ;
}
private void FullMovieLoadstatesMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . VBAStyleMovieLoadState ^ = true ;
}
2014-07-14 00:35:33 +00:00
private void MovieEndFinishMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . MovieEndAction = MovieEndAction . Finish ;
}
private void MovieEndRecordMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . MovieEndAction = MovieEndAction . Record ;
}
private void MovieEndStopMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . MovieEndAction = MovieEndAction . Stop ;
}
private void MovieEndPauseMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . MovieEndAction = MovieEndAction . Pause ;
}
2013-10-27 07:54:00 +00:00
private void RecordAVMenuItem_Click ( object sender , EventArgs e )
{
2014-07-14 00:35:33 +00:00
RecordAv ( ) ;
2013-10-27 07:54:00 +00:00
}
private void StopAVMenuItem_Click ( object sender , EventArgs e )
{
2014-07-14 00:35:33 +00:00
StopAv ( ) ;
2013-10-27 07:54:00 +00:00
}
2014-06-18 02:28:07 +00:00
private void SynclessRecordingMenuItem_Click ( object sender , EventArgs e )
{
new SynclessRecordingTools ( ) . Run ( ) ;
}
2013-10-27 07:54:00 +00:00
private void CaptureOSDMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . AVI_CaptureOSD ^ = true ;
}
private void ScreenshotMenuItem_Click ( object sender , EventArgs e )
{
TakeScreenshot ( ) ;
}
private void ScreenshotAsMenuItem_Click ( object sender , EventArgs e )
{
2013-11-27 23:35:32 +00:00
var path = String . Format ( PathManager . ScreenshotPrefix ( Global . Game ) + ".{0:yyyy-MM-dd HH.mm.ss}.png" , DateTime . Now ) ;
2013-10-27 07:54:00 +00:00
2013-11-27 23:35:32 +00:00
var sfd = new SaveFileDialog
2013-10-27 07:54:00 +00:00
{
InitialDirectory = Path . GetDirectoryName ( path ) ,
FileName = Path . GetFileName ( path ) ,
Filter = "PNG File (*.png)|*.png"
} ;
2013-11-28 22:39:00 +00:00
var result = sfd . ShowHawkDialog ( ) ;
2013-10-27 07:54:00 +00:00
if ( result = = DialogResult . OK )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
TakeScreenshot ( sfd . FileName ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
}
private void ScreenshotClipboardMenuItem_Click ( object sender , EventArgs e )
{
TakeScreenshotToClipboard ( ) ;
}
private void ScreenshotCaptureOSDMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . Screenshot_CaptureOSD ^ = true ;
}
private void ExitMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
if ( GlobalWin . Tools . AskSave ( ) )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
Close ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:45:59 +00:00
}
2013-10-26 20:33:25 +00:00
2013-10-27 07:54:00 +00:00
#endregion
#region Emulation Menu
private void emulationToolStripMenuItem_DropDownOpened ( object sender , EventArgs e )
2013-10-27 07:45:59 +00:00
{
2013-11-03 02:51:21 +00:00
RebootCoreMenuItem . Enabled = ! ( Global . Emulator is NullEmulator ) ;
2013-10-27 07:54:00 +00:00
2013-11-27 23:35:32 +00:00
PauseMenuItem . Checked = _didMenuPause ? _wasPaused : EmulatorPaused ;
2013-10-27 07:54:00 +00:00
SoftResetMenuItem . Enabled = Global . Emulator . ControllerDefinition . BoolButtons . Contains ( "Reset" ) & &
( ! Global . MovieSession . Movie . IsPlaying | | Global . MovieSession . Movie . IsFinished ) ;
HardResetMenuItem . Enabled = Global . Emulator . ControllerDefinition . BoolButtons . Contains ( "Power" ) & &
( ! Global . MovieSession . Movie . IsPlaying | | Global . MovieSession . Movie . IsFinished ) ;
PauseMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Pause" ] . Bindings ;
RebootCoreMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Reboot Core" ] . Bindings ;
SoftResetMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Soft Reset" ] . Bindings ;
HardResetMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Hard Reset" ] . Bindings ;
2011-07-10 21:00:28 +00:00
}
2013-10-27 07:54:00 +00:00
private void PauseMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 07:54:00 +00:00
if ( EmulatorPaused )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
UnpauseEmulator ( ) ;
2013-10-26 20:33:25 +00:00
}
else
{
2013-10-27 07:54:00 +00:00
PauseEmulator ( ) ;
2013-10-26 20:33:25 +00:00
}
}
2013-10-27 07:54:00 +00:00
private void PowerMenuItem_Click ( object sender , EventArgs e )
{
RebootCore ( ) ;
}
private void SoftResetMenuItem_Click ( object sender , EventArgs e )
{
SoftReset ( ) ;
}
2013-10-26 20:33:25 +00:00
2013-10-27 07:54:00 +00:00
private void HardResetMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
HardReset ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
#endregion
#region View
private void ViewSubMenu_DropDownOpened ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
DisplayFPSMenuItem . Checked = Global . Config . DisplayFPS ;
DisplayFrameCounterMenuItem . Checked = Global . Config . DisplayFrameCounter ;
DisplayLagCounterMenuItem . Checked = Global . Config . DisplayLagCounter ;
DisplayInputMenuItem . Checked = Global . Config . DisplayInput ;
DisplayRerecordCountMenuItem . Checked = Global . Config . DisplayRerecordCount ;
DisplaySubtitlesMenuItem . Checked = Global . Config . DisplaySubtitles ;
DisplayFPSMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Display FPS" ] . Bindings ;
DisplayFrameCounterMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Frame Counter" ] . Bindings ;
DisplayLagCounterMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Lag Counter" ] . Bindings ;
DisplayInputMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Input Display" ] . Bindings ;
SwitchToFullscreenMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Full Screen" ] . Bindings ;
DisplayStatusBarMenuItem . Checked = Global . Config . DisplayStatusBar ;
DisplayLogWindowMenuItem . Checked = Global . Config . ShowLogWindow ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void WindowSizeSubMenu_DropDownOpened ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
x1MenuItem . Checked =
x2MenuItem . Checked =
x3MenuItem . Checked =
x4MenuItem . Checked =
x5MenuItem . Checked = false ;
switch ( Global . Config . TargetZoomFactor )
{
case 1 : x1MenuItem . Checked = true ; break ;
case 2 : x2MenuItem . Checked = true ; break ;
case 3 : x3MenuItem . Checked = true ; break ;
case 4 : x4MenuItem . Checked = true ; break ;
case 5 : x5MenuItem . Checked = true ; break ;
case 10 : mzMenuItem . Checked = true ; break ;
}
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void WindowSize_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
if ( sender = = x1MenuItem ) Global . Config . TargetZoomFactor = 1 ;
if ( sender = = x2MenuItem ) Global . Config . TargetZoomFactor = 2 ;
if ( sender = = x3MenuItem ) Global . Config . TargetZoomFactor = 3 ;
if ( sender = = x4MenuItem ) Global . Config . TargetZoomFactor = 4 ;
if ( sender = = x5MenuItem ) Global . Config . TargetZoomFactor = 5 ;
if ( sender = = mzMenuItem ) Global . Config . TargetZoomFactor = 10 ;
2013-10-27 07:45:59 +00:00
FrameBufferResized ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void SwitchToFullscreenMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
ToggleFullscreen ( ) ;
}
2013-10-26 20:33:25 +00:00
2013-10-27 07:54:00 +00:00
private void DisplayFPSMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
ToggleFPS ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayFrameCounterMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
ToggleFrameCounter ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayLagCounterMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
ToggleLagCounter ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayInputMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
ToggleInputDisplay ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayRerecordsMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
Global . Config . DisplayRerecordCount ^ = true ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplaySubtitlesMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-10-27 07:54:00 +00:00
Global . Config . DisplaySubtitles ^ = true ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayStatusBarMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . DisplayStatusBar ^ = true ;
2014-01-01 03:03:10 +00:00
2013-11-27 23:35:32 +00:00
if ( ! _inFullscreen )
2013-10-27 07:54:00 +00:00
{
2013-10-27 15:53:37 +00:00
MainStatusBar . Visible = Global . Config . DisplayStatusBar ;
2013-10-27 07:54:00 +00:00
PerformLayout ( ) ;
FrameBufferResized ( ) ;
}
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void DisplayLogWindowMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . ShowLogWindow ^ = true ;
if ( Global . Config . ShowLogWindow )
{
2014-05-06 01:27:56 +00:00
LogConsole . ShowConsole ( ) ;
2013-10-27 07:54:00 +00:00
}
else
{
2014-05-06 01:27:56 +00:00
LogConsole . HideConsole ( ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
#endregion
#region Config
private void ConfigSubMenu_DropDownOpened ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
ControllersMenuItem . Enabled = ! ( Global . Emulator is NullEmulator ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void FrameSkipMenuItem_DropDownOpened ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
MinimizeSkippingMenuItem . Checked = Global . Config . AutoMinimizeSkipping ;
ClickThrottleMenuItem . Checked = Global . Config . ClockThrottle ;
VsyncThrottleMenuItem . Checked = Global . Config . VSyncThrottle ;
NeverSkipMenuItem . Checked = Global . Config . FrameSkip = = 0 ;
Frameskip1MenuItem . Checked = Global . Config . FrameSkip = = 1 ;
Frameskip2MenuItem . Checked = Global . Config . FrameSkip = = 2 ;
Frameskip3MenuItem . Checked = Global . Config . FrameSkip = = 3 ;
Frameskip4MenuItem . Checked = Global . Config . FrameSkip = = 4 ;
Frameskip5MenuItem . Checked = Global . Config . FrameSkip = = 5 ;
Frameskip6MenuItem . Checked = Global . Config . FrameSkip = = 6 ;
Frameskip7MenuItem . Checked = Global . Config . FrameSkip = = 7 ;
Frameskip8MenuItem . Checked = Global . Config . FrameSkip = = 8 ;
Frameskip9MenuItem . Checked = Global . Config . FrameSkip = = 9 ;
MinimizeSkippingMenuItem . Enabled = ! NeverSkipMenuItem . Checked ;
if ( ! MinimizeSkippingMenuItem . Enabled ) MinimizeSkippingMenuItem . Checked = true ;
AudioThrottleMenuItem . Enabled = Global . Config . SoundEnabled ;
AudioThrottleMenuItem . Checked = Global . Config . SoundThrottle ;
VsyncEnabledMenuItem . Checked = Global . Config . VSync ;
Speed100MenuItem . Checked = Global . Config . SpeedPercent = = 100 ;
Speed100MenuItem . Image = ( Global . Config . SpeedPercentAlternate = = 100 ) ? Properties . Resources . FastForward : null ;
Speed150MenuItem . Checked = Global . Config . SpeedPercent = = 150 ;
Speed150MenuItem . Image = ( Global . Config . SpeedPercentAlternate = = 150 ) ? Properties . Resources . FastForward : null ;
Speed200MenuItem . Checked = Global . Config . SpeedPercent = = 200 ;
Speed200MenuItem . Image = ( Global . Config . SpeedPercentAlternate = = 200 ) ? Properties . Resources . FastForward : null ;
Speed75MenuItem . Checked = Global . Config . SpeedPercent = = 75 ;
Speed75MenuItem . Image = ( Global . Config . SpeedPercentAlternate = = 75 ) ? Properties . Resources . FastForward : null ;
Speed50MenuItem . Checked = Global . Config . SpeedPercent = = 50 ;
Speed50MenuItem . Image = ( Global . Config . SpeedPercentAlternate = = 50 ) ? Properties . Resources . FastForward : null ;
2014-06-21 20:18:14 +00:00
Speed50MenuItem . Enabled =
Speed75MenuItem . Enabled =
Speed100MenuItem . Enabled =
Speed150MenuItem . Enabled =
Speed200MenuItem . Enabled =
Global . Config . ClockThrottle ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void KeyPriorityMenuItem_DropDownOpened ( object sender , EventArgs e )
{
switch ( Global . Config . Input_Hotkey_OverrideOptions )
{
default :
case 0 :
BothHkAndControllerMenuItem . Checked = true ;
InputOverHkMenuItem . Checked = false ;
HkOverInputMenuItem . Checked = false ;
break ;
case 1 :
BothHkAndControllerMenuItem . Checked = false ;
InputOverHkMenuItem . Checked = true ;
HkOverInputMenuItem . Checked = false ;
break ;
case 2 :
BothHkAndControllerMenuItem . Checked = false ;
InputOverHkMenuItem . Checked = false ;
HkOverInputMenuItem . Checked = true ;
break ;
}
}
2013-10-26 20:33:25 +00:00
2014-05-10 14:50:47 +00:00
private void CoresSubMenu_DropDownOpened ( object sender , EventArgs e )
{
GBInSGBMenuItem . Checked = Global . Config . GB_AsSGB ;
NesInQuickNESMenuItem . Checked = Global . Config . NES_InQuickNES ;
}
2013-10-27 07:54:00 +00:00
private void ControllersMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-11-27 23:35:32 +00:00
var controller = new ControllerConfig ( Global . Emulator . ControllerDefinition ) ;
2013-10-27 07:54:00 +00:00
if ( controller . ShowDialog ( ) = = DialogResult . OK )
{
InitControls ( ) ;
2013-12-24 21:59:41 +00:00
InputManager . SyncControls ( ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void HotkeysMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2014-05-10 14:50:47 +00:00
if ( new HotkeyConfig ( ) . ShowDialog ( ) = = DialogResult . OK )
2013-10-27 07:54:00 +00:00
{
InitControls ( ) ;
2013-12-24 21:59:41 +00:00
InputManager . SyncControls ( ) ;
2013-10-27 07:54:00 +00:00
}
}
2014-05-10 14:50:47 +00:00
private void FirmwaresMenuItem_Click ( object sender , EventArgs e )
{
new FirmwaresConfig ( ) . ShowDialog ( ) ;
}
2013-10-27 07:54:00 +00:00
private void MessagesMenuItem_Click ( object sender , EventArgs e )
{
new MessageConfig ( ) . ShowDialog ( ) ;
}
private void PathsMenuItem_Click ( object sender , EventArgs e )
{
new PathConfig ( ) . ShowDialog ( ) ;
}
private void SoundMenuItem_Click ( object sender , EventArgs e )
{
2014-05-10 14:50:47 +00:00
if ( new SoundConfig ( ) . ShowDialog ( ) = = DialogResult . OK )
2013-10-27 07:54:00 +00:00
{
RewireSound ( ) ;
}
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void AutofireMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
new AutofireConfig ( ) . ShowDialog ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void RewindOptionsMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2013-10-27 07:54:00 +00:00
new RewindConfig ( ) . ShowDialog ( ) ;
2013-10-26 20:33:25 +00:00
}
2014-05-10 14:50:47 +00:00
private void FileExtensionsMenuItem_Click ( object sender , EventArgs e )
2013-10-26 20:33:25 +00:00
{
2014-05-10 14:50:47 +00:00
new FileExtensionPreferences ( ) . ShowDialog ( ) ;
}
private void CustomizeMenuItem_Click ( object sender , EventArgs e )
{
new EmuHawkOptions ( ) . ShowDialog ( ) ;
2013-10-26 20:33:25 +00:00
}
2013-10-27 07:54:00 +00:00
private void ClickThrottleMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . ClockThrottle ^ = true ;
if ( Global . Config . ClockThrottle )
{
2013-11-27 23:35:32 +00:00
var old = Global . Config . SoundThrottle ;
2013-10-27 07:54:00 +00:00
Global . Config . SoundThrottle = false ;
if ( old )
{
RewireSound ( ) ;
}
old = Global . Config . VSyncThrottle ;
Global . Config . VSyncThrottle = false ;
if ( old )
{
2014-01-27 06:03:18 +00:00
GlobalWin . PresentationPanel . Resized = true ;
2013-10-27 07:54:00 +00:00
}
}
2014-05-06 01:27:56 +00:00
2013-10-27 07:54:00 +00:00
LimitFrameRateMessage ( ) ;
2012-07-12 19:23:39 +00:00
}
2013-10-27 07:54:00 +00:00
private void AudioThrottleMenuItem_Click ( object sender , EventArgs e )
2012-11-12 17:57:11 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . SoundThrottle ^ = true ;
RewireSound ( ) ;
if ( Global . Config . SoundThrottle )
2012-11-12 17:57:11 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . ClockThrottle = false ;
2013-11-27 23:35:32 +00:00
var old = Global . Config . VSyncThrottle ;
2013-10-27 07:54:00 +00:00
Global . Config . VSyncThrottle = false ;
if ( old )
{
2014-01-27 06:03:18 +00:00
GlobalWin . PresentationPanel . Resized = true ;
2013-10-27 07:54:00 +00:00
}
2012-11-12 17:57:11 +00:00
}
}
2013-10-27 07:54:00 +00:00
private void VsyncThrottleMenuItem_Click ( object sender , EventArgs e )
2012-11-12 17:57:11 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . VSyncThrottle ^ = true ;
2014-01-27 06:03:18 +00:00
GlobalWin . PresentationPanel . Resized = true ;
2013-10-27 07:54:00 +00:00
if ( Global . Config . VSyncThrottle )
{
Global . Config . ClockThrottle = false ;
2013-11-27 23:35:32 +00:00
var old = Global . Config . SoundThrottle ;
2013-10-27 07:54:00 +00:00
Global . Config . SoundThrottle = false ;
if ( old )
{
RewireSound ( ) ;
}
}
2014-05-10 14:50:47 +00:00
2013-10-27 07:54:00 +00:00
VsyncMessage ( ) ;
2012-11-12 17:57:11 +00:00
}
2013-10-27 07:54:00 +00:00
private void VsyncEnabledMenuItem_Click ( object sender , EventArgs e )
2012-11-12 17:57:11 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . VSync ^ = true ;
if ( ! Global . Config . VSyncThrottle ) // when vsync throttle is on, vsync is forced to on, so no change to make here
2013-10-26 20:33:25 +00:00
{
2014-01-27 06:03:18 +00:00
GlobalWin . PresentationPanel . Resized = true ;
2013-10-26 20:33:25 +00:00
}
2012-11-12 17:57:11 +00:00
}
2013-10-27 07:54:00 +00:00
private void MinimizeSkippingMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . AutoMinimizeSkipping ^ = true ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void NeverSkipMenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 0 ; FrameSkipMessage ( ) ; }
private void Frameskip1MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 1 ; FrameSkipMessage ( ) ; }
private void Frameskip2MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 2 ; FrameSkipMessage ( ) ; }
private void Frameskip3MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 3 ; FrameSkipMessage ( ) ; }
private void Frameskip4MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 4 ; FrameSkipMessage ( ) ; }
private void Frameskip5MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 5 ; FrameSkipMessage ( ) ; }
private void Frameskip6MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 6 ; FrameSkipMessage ( ) ; }
private void Frameskip7MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 7 ; FrameSkipMessage ( ) ; }
private void Frameskip8MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 8 ; FrameSkipMessage ( ) ; }
private void Frameskip9MenuItem_Click ( object sender , EventArgs e ) { Global . Config . FrameSkip = 9 ; FrameSkipMessage ( ) ; }
private void Speed50MenuItem_Click ( object sender , EventArgs e ) { ClickSpeedItem ( 50 ) ; }
private void Speed75MenuItem_Click ( object sender , EventArgs e ) { ClickSpeedItem ( 75 ) ; }
private void Speed100MenuItem_Click ( object sender , EventArgs e ) { ClickSpeedItem ( 100 ) ; }
private void Speed150MenuItem_Click ( object sender , EventArgs e ) { ClickSpeedItem ( 150 ) ; }
private void Speed200MenuItem_Click ( object sender , EventArgs e ) { ClickSpeedItem ( 200 ) ; }
private void BothHkAndControllerMenuItem_Click ( object sender , EventArgs e )
2012-07-12 19:02:30 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . Input_Hotkey_OverrideOptions = 0 ;
UpdateKeyPriorityIcon ( ) ;
2012-07-12 19:02:30 +00:00
}
2013-10-27 07:54:00 +00:00
private void InputOverHkMenuItem_Click ( object sender , EventArgs e )
2012-07-12 18:39:24 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . Input_Hotkey_OverrideOptions = 1 ;
UpdateKeyPriorityIcon ( ) ;
2012-07-12 18:39:24 +00:00
}
2013-10-27 07:54:00 +00:00
private void HkOverInputMenuItem_Click ( object sender , EventArgs e )
2011-06-26 01:22:52 +00:00
{
2013-10-27 07:54:00 +00:00
Global . Config . Input_Hotkey_OverrideOptions = 2 ;
UpdateKeyPriorityIcon ( ) ;
2011-06-26 01:22:52 +00:00
}
2011-02-21 09:48:53 +00:00
2014-05-10 14:50:47 +00:00
private void GBInSGBMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . GB_AsSGB ^ = true ;
FlagNeedsReboot ( ) ;
}
private void NesInQuickNESMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . NES_InQuickNES ^ = true ;
FlagNeedsReboot ( ) ;
}
private void N64VideoPluginSettingsMenuItem_Click ( object sender , EventArgs e )
{
N64PluginSettingsMenuItem_Click ( sender , e ) ;
}
2013-10-27 07:54:00 +00:00
private void SaveConfigMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 07:54:00 +00:00
SaveConfig ( ) ;
2013-11-03 16:07:58 +00:00
GlobalWin . OSD . AddMessage ( "Saved settings" ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void LoadConfigMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-22 02:47:35 +00:00
Global . Config = ConfigService . Load < Config > ( PathManager . DefaultIniPath ) ;
2013-10-27 07:54:00 +00:00
Global . Config . ResolveDefaults ( ) ;
2013-11-03 16:07:58 +00:00
GlobalWin . OSD . AddMessage ( "Config file loaded" ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
#endregion
#region Tools
private void toolsToolStripMenuItem_DropDownOpened ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 07:54:00 +00:00
ToolBoxMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "ToolBox" ] . Bindings ;
RamWatchMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Ram Watch" ] . Bindings ;
RamSearchMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Ram Search" ] . Bindings ;
HexEditorMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Hex Editor" ] . Bindings ;
LuaConsoleMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Lua Console" ] . Bindings ;
CheatsMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Cheats" ] . Bindings ;
TAStudioMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "TAStudio" ] . Bindings ;
VirtualPadMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Virtual Pad" ] . Bindings ;
TraceLoggerMenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Trace Logger" ] . Bindings ;
TraceLoggerMenuItem . Enabled = Global . Emulator . CoreComm . CpuTraceAvailable ;
2014-01-01 03:03:10 +00:00
CheatsMenuItem . Enabled =
2013-12-21 16:42:36 +00:00
HexEditorMenuItem . Enabled =
RamSearchMenuItem . Enabled =
RamWatchMenuItem . Enabled =
TAStudioMenuItem . Enabled =
VirtualPadMenuItem . Enabled =
! ( Global . Emulator is NullEmulator ) ;
2014-06-04 17:02:54 +00:00
batchRunnerToolStripMenuItem . Visible = VersionInfo . DeveloperBuild ;
2014-06-17 16:16:26 +00:00
TAStudioMenuItem . Visible = VersionInfo . DeveloperBuild ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void ToolBoxMenuItem_Click ( object sender , EventArgs e )
2013-09-14 02:31:21 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < ToolBox > ( ) ;
2013-09-14 02:31:21 +00:00
}
2011-09-19 00:39:28 +00:00
2013-10-27 07:54:00 +00:00
private void RamWatchMenuItem_Click ( object sender , EventArgs e )
2013-09-14 02:31:21 +00:00
{
2013-11-28 20:02:32 +00:00
GlobalWin . Tools . LoadRamWatch ( true ) ;
2013-09-14 02:31:21 +00:00
}
2011-09-19 00:39:28 +00:00
2013-10-27 07:54:00 +00:00
private void RamSearchMenuItem_Click ( object sender , EventArgs e )
2013-09-14 02:31:21 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < RamSearch > ( ) ;
2013-09-14 02:31:21 +00:00
}
2011-09-19 00:39:28 +00:00
2013-10-27 07:54:00 +00:00
private void HexEditorMenuItem_Click ( object sender , EventArgs e )
2013-09-14 02:31:21 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < HexEditor > ( ) ;
2013-09-14 02:31:21 +00:00
}
2011-09-19 00:39:28 +00:00
2013-10-27 07:54:00 +00:00
private void TraceLoggerMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-22 23:34:22 +00:00
GlobalWin . Tools . LoadTraceLogger ( ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void TAStudioMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-29 23:35:42 +00:00
GlobalWin . Tools . Load < TAStudio > ( ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void VirtualPadMenuItem_Click ( object sender , EventArgs e )
2012-09-08 19:02:28 +00:00
{
2014-06-22 13:57:23 +00:00
GlobalWin . Tools . Load < VirtualpadTool > ( ) ;
2012-09-08 19:02:28 +00:00
}
2013-10-27 07:54:00 +00:00
private void CheatsMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < Cheats > ( ) ;
2013-10-27 07:54:00 +00:00
}
2011-02-21 09:48:53 +00:00
2013-10-27 07:54:00 +00:00
private void LuaConsoleMenuItem_Click ( object sender , EventArgs e )
{
OpenLuaConsole ( ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 07:54:00 +00:00
private void CreateDualGbXmlMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Sound . StopSound ( ) ;
2013-11-09 00:27:07 +00:00
using ( var dlg = new DualGBXMLCreator ( ) )
2013-10-27 07:54:00 +00:00
{
2014-05-11 18:30:00 +00:00
var result = dlg . ShowDialog ( this ) ;
2014-06-29 02:12:23 +00:00
if ( result = = DialogResult . OK )
2014-05-11 18:30:00 +00:00
{
GlobalWin . OSD . AddMessage ( "XML File saved" ) ;
}
else
{
GlobalWin . OSD . AddMessage ( "Dual GB creator aborted" ) ;
}
2013-10-27 07:54:00 +00:00
}
2014-05-10 14:50:47 +00:00
2013-11-03 16:07:58 +00:00
GlobalWin . Sound . StartSound ( ) ;
2011-02-21 09:48:53 +00:00
}
2014-05-10 14:50:47 +00:00
private void batchRunnerToolStripMenuItem_Click ( object sender , EventArgs e )
{
new BatchRun ( ) . ShowDialog ( ) ;
}
2013-10-27 07:54:00 +00:00
#endregion
2013-10-27 13:53:28 +00:00
#region NES
2013-12-20 22:49:35 +00:00
private void NESSubMenu_DropDownOpened ( object sender , EventArgs e )
{
FDSControlsMenuItem . Enabled = Global . Emulator . BoardName = = "FDS" ;
2014-01-06 23:56:30 +00:00
2014-01-10 17:41:13 +00:00
NESDebuggerMenuItem . Visible =
2014-06-04 17:02:54 +00:00
VersionInfo . DeveloperBuild ;
2014-01-06 23:56:30 +00:00
NESDebuggerMenuItem . Enabled =
NESPPUViewerMenuItem . Enabled =
NESNametableViewerMenuItem . Enabled =
2014-01-07 01:12:48 +00:00
NESSoundChannelsMenuItem . Enabled =
2014-01-10 17:41:13 +00:00
MovieSettingsMenuItem . Enabled =
2014-01-06 23:56:30 +00:00
Global . Emulator is NES ;
2014-05-16 00:24:40 +00:00
NesControllerSettingsMenuItem . Enabled = Global . Emulator is NES & & ! Global . MovieSession . Movie . IsActive ;
MovieSettingsMenuItem . Enabled = Global . Emulator is NES & & ! Global . MovieSession . Movie . IsActive ;
2013-12-20 22:49:35 +00:00
}
private void FdsControlsMenuItem_DropDownOpened ( object sender , EventArgs e )
{
FdsEjectDiskMenuItem . Enabled = Global . Emulator . BoardName = = "FDS" ;
2014-01-20 17:18:55 +00:00
while ( FDSControlsMenuItem . DropDownItems . Count > 1 )
2013-12-20 22:49:35 +00:00
{
2014-01-20 17:18:55 +00:00
FDSControlsMenuItem . DropDownItems . RemoveAt ( 1 ) ;
2013-12-20 22:49:35 +00:00
}
for ( int i = 0 ; i < 16 ; i + + )
{
var str = "FDS Insert " + i ;
if ( Global . Emulator . ControllerDefinition . BoolButtons . Contains ( str ) )
{
FdsInsertDiskMenuAdd ( "Insert Disk " + i , str , "FDS Disk " + i + " inserted." ) ;
}
}
}
2013-10-27 13:53:28 +00:00
private void NESDebuggerMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < NESDebugger > ( ) ;
2013-10-27 13:53:28 +00:00
}
private void NESPPUViewerMenuItem_Click ( object sender , EventArgs e )
{
2014-01-31 22:58:41 +00:00
GlobalWin . Tools . Load < NesPPU > ( ) ;
2013-10-27 13:53:28 +00:00
}
private void NESNametableViewerMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < NESNameTableViewer > ( ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void NESGameGenieCodesMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 23:34:22 +00:00
GlobalWin . Tools . LoadGameGenieEc ( ) ;
2013-10-27 13:53:28 +00:00
}
2013-10-27 07:54:00 +00:00
2013-10-27 13:53:28 +00:00
private void NESGraphicSettingsMenuItem_Click ( object sender , EventArgs e )
{
2014-01-09 23:50:10 +00:00
if ( Global . Emulator is NES )
new NESGraphicsConfig ( ) . ShowDialog ( this ) ;
else if ( Global . Emulator is QuickNES )
new QuickNesConfig ( ) . ShowDialog ( this ) ;
2013-10-27 13:53:28 +00:00
}
private void NESSoundChannelsMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < NESSoundConfig > ( ) ;
2013-10-27 13:53:28 +00:00
}
2013-12-20 22:49:35 +00:00
private void FdsEjectDiskMenuItem_Click ( object sender , EventArgs e )
{
if ( ! Global . MovieSession . Movie . IsPlaying | | Global . MovieSession . Movie . IsFinished )
{
Global . ClickyVirtualPadController . Click ( "FDS Eject" ) ;
GlobalWin . OSD . AddMessage ( "FDS disk ejected." ) ;
}
}
2014-05-16 00:24:40 +00:00
private void NesControllerSettingsMenuItem_Click ( object sender , EventArgs e )
{
new NesControllerSettings ( ) . ShowDialog ( ) ;
}
2014-01-06 23:56:30 +00:00
private void MovieSettingsMenuItem_Click ( object sender , EventArgs e )
2014-01-01 03:03:10 +00:00
{
2014-01-06 23:56:30 +00:00
using ( var dlg = new NESSyncSettingsForm ( ) )
2014-01-01 03:03:10 +00:00
{
dlg . ShowDialog ( this ) ;
}
}
2013-10-27 13:53:28 +00:00
#endregion
#region PCE
private void PCESubMenu_DropDownOpened ( object sender , EventArgs e )
{
2013-12-22 20:41:21 +00:00
var s = ( PCEngine . PCESettings ) Global . Emulator . GetSettings ( ) ;
2014-06-28 22:48:07 +00:00
PceControllerSettingsMenuItem . Enabled = ! Global . MovieSession . Movie . IsActive ;
2013-12-22 20:41:21 +00:00
PCEAlwaysPerformSpriteLimitMenuItem . Checked = s . SpriteLimit ;
PCEAlwaysEqualizeVolumesMenuItem . Checked = s . EqualizeVolume ;
PCEArcadeCardRewindEnableMenuItem . Checked = s . ArcadeCardRewindHack ;
2013-10-27 13:53:28 +00:00
}
2014-06-28 22:48:07 +00:00
private void PceControllerSettingsMenuItem_Click ( object sender , EventArgs e )
{
if ( new PCEControllerConfig ( ) . ShowDialog ( ) = = DialogResult . OK )
{
GlobalWin . MainForm . FlagNeedsReboot ( ) ;
GlobalWin . OSD . AddMessage ( "Controller settings saved but a core reboot is required" ) ;
}
else
{
GlobalWin . OSD . AddMessage ( "Controller settings aborted" ) ;
}
}
private void PCEGraphicsSettingsMenuItem_Click ( object sender , EventArgs e )
{
new PCEGraphicsConfig ( ) . ShowDialog ( ) ;
}
2013-10-27 13:53:28 +00:00
private void PCEBGViewerMenuItem_Click ( object sender , EventArgs e )
{
2014-01-31 23:42:06 +00:00
GlobalWin . Tools . Load < PceBgViewer > ( ) ;
2013-10-27 13:53:28 +00:00
}
2014-05-10 14:50:47 +00:00
private void PceTileViewerMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < PCETileViewer > ( ) ;
}
2014-06-09 08:10:20 +00:00
private void PceSoundDebuggerToolStripMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < PCESoundDebugger > ( ) ;
}
2014-05-10 14:50:47 +00:00
private void CodeDataLoggerMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < PCECDL > ( ) ;
}
2013-10-27 13:53:28 +00:00
private void PCEAlwaysPerformSpriteLimitMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 20:41:21 +00:00
var s = ( PCEngine . PCESettings ) Global . Emulator . GetSettings ( ) ;
s . SpriteLimit ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 13:53:28 +00:00
}
private void PCEAlwaysEqualizeVolumesMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 20:41:21 +00:00
var s = ( PCEngine . PCESettings ) Global . Emulator . GetSettings ( ) ;
s . EqualizeVolume ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 13:53:28 +00:00
}
private void PCEArcadeCardRewindEnableMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 20:41:21 +00:00
var s = ( PCEngine . PCESettings ) Global . Emulator . GetSettings ( ) ;
s . ArcadeCardRewindHack ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 13:53:28 +00:00
}
#endregion
#region SMS
private void SMSSubMenu_DropDownOpened ( object sender , EventArgs e )
{
2013-12-24 01:06:17 +00:00
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
2014-03-22 05:57:27 +00:00
SMSregionExportToolStripMenuItem . Checked = ss . ConsoleRegion = = "Export" ;
SMSregionJapanToolStripMenuItem . Checked = ss . ConsoleRegion = = "Japan" ;
SMSregionAutoToolStripMenuItem . Checked = ss . ConsoleRegion = = "Auto" ;
SMSdisplayNtscToolStripMenuItem . Checked = ss . DisplayType = = "NTSC" ;
SMSdisplayPalToolStripMenuItem . Checked = ss . DisplayType = = "PAL" ;
SMSdisplayAutoToolStripMenuItem . Checked = ss . DisplayType = = "Auto" ;
2014-03-13 04:15:05 +00:00
SMSenableBIOSToolStripMenuItem . Checked = ss . UseBIOS ;
2013-12-24 01:06:17 +00:00
SMSEnableFMChipMenuItem . Checked = ss . EnableFM ;
SMSOverclockMenuItem . Checked = ss . AllowOverlock ;
SMSForceStereoMenuItem . Checked = s . ForceStereoSeparation ;
SMSSpriteLimitMenuItem . Checked = s . SpriteLimit ;
2014-03-05 02:20:22 +00:00
SMSFix3DGameDisplayToolStripMenuItem . Checked = s . Fix3D ;
2013-12-24 01:06:17 +00:00
ShowClippedRegionsMenuItem . Checked = s . ShowClippedRegions ;
HighlightActiveDisplayRegionMenuItem . Checked = s . HighlightActiveDisplayRegion ;
2013-10-27 13:53:28 +00:00
SMS: Korean mappers work. Fixes Cyborg Z, Dodgeball King, F1 Spirit, Jang Pang III, Knightmare II, Nemesis, Nemesis 2, Penguin Adventure, Sangokushi 3, Street Master, Wonsiin
2014-03-14 04:30:01 +00:00
SMSEnableFMChipMenuItem . Visible =
SMSFix3DGameDisplayToolStripMenuItem . Visible =
2014-03-13 04:15:05 +00:00
SMSenableBIOSToolStripMenuItem . Visible =
Global . Game . System = = "SMS" ;
SMS: Korean mappers work. Fixes Cyborg Z, Dodgeball King, F1 Spirit, Jang Pang III, Knightmare II, Nemesis, Nemesis 2, Penguin Adventure, Sangokushi 3, Street Master, Wonsiin
2014-03-14 04:30:01 +00:00
SMSOverclockMenuItem . Visible =
2013-10-27 13:53:28 +00:00
SMSForceStereoMenuItem . Visible =
2014-03-22 05:57:27 +00:00
SMSdisplayToolStripMenuItem . Visible =
2013-11-27 23:35:32 +00:00
Global . Game . System ! = "GG" ;
2013-10-27 13:53:28 +00:00
ShowClippedRegionsMenuItem . Visible =
HighlightActiveDisplayRegionMenuItem . Visible =
GGGameGenieMenuItem . Visible =
Global . Game . System = = "GG" ;
2014-03-22 05:57:27 +00:00
SMSOverclockMenuItem . Visible =
SMSVDPViewerToolStripMenuItem . Visible =
Global . Game . System ! = "SG" ;
}
private void SMS_RegionExport_Click ( object sender , EventArgs e )
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . ConsoleRegion = "Export" ;
PutCoreSyncSettings ( ss ) ;
2013-10-27 13:53:28 +00:00
}
2014-03-22 05:57:27 +00:00
private void SMS_RegionJapan_Click ( object sender , EventArgs e )
2014-03-13 04:15:05 +00:00
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
2014-03-22 05:57:27 +00:00
ss . ConsoleRegion = "Japan" ;
2014-03-13 04:15:05 +00:00
PutCoreSyncSettings ( ss ) ;
}
2014-03-22 05:57:27 +00:00
private void SMS_RegionAuto_Click ( object sender , EventArgs e )
2014-03-13 04:15:05 +00:00
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
2014-03-22 05:57:27 +00:00
ss . ConsoleRegion = "Auto" ;
2014-03-13 04:15:05 +00:00
PutCoreSyncSettings ( ss ) ;
}
2014-03-22 05:57:27 +00:00
private void SMS_DisplayNTSC_Click ( object sender , EventArgs e )
2014-03-13 04:15:05 +00:00
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
2014-03-22 05:57:27 +00:00
ss . DisplayType = "NTSC" ;
2014-03-13 04:15:05 +00:00
PutCoreSyncSettings ( ss ) ;
}
2014-03-22 05:57:27 +00:00
private void SMS_DisplayPAL_Click ( object sender , EventArgs e )
2014-03-13 04:15:05 +00:00
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
2014-03-22 05:57:27 +00:00
ss . DisplayType = "PAL" ;
2014-03-13 04:15:05 +00:00
PutCoreSyncSettings ( ss ) ;
}
2014-03-22 05:57:27 +00:00
private void SMS_DisplayAuto_Click ( object sender , EventArgs e )
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . DisplayType = "Auto" ;
PutCoreSyncSettings ( ss ) ;
}
2014-03-13 04:15:05 +00:00
private void SMS_BIOS_Click ( object sender , EventArgs e )
{
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . UseBIOS ^ = true ;
PutCoreSyncSettings ( ss ) ;
}
2013-10-27 13:53:28 +00:00
private void SMSEnableFMChipMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-24 01:06:17 +00:00
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . EnableFM ^ = true ;
PutCoreSyncSettings ( ss ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void SMSOverclockMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-24 01:06:17 +00:00
var ss = ( SMS . SMSSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . AllowOverlock ^ = true ;
PutCoreSyncSettings ( ss ) ;
2013-07-10 18:04:05 +00:00
}
2013-10-27 13:53:28 +00:00
private void SMSForceStereoMenuItem_Click ( object sender , EventArgs e )
2013-07-10 18:04:05 +00:00
{
2013-12-24 01:06:17 +00:00
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
s . ForceStereoSeparation ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-27 13:53:28 +00:00
private void SMSSpriteLimitMenuItem_Click ( object sender , EventArgs e )
2013-07-10 18:04:05 +00:00
{
2013-12-24 01:06:17 +00:00
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
s . SpriteLimit ^ = true ;
PutCoreSettings ( s ) ;
2013-07-10 18:04:05 +00:00
}
2014-03-05 02:20:22 +00:00
private void SMSFix3DDisplayMenuItem_Click ( object sender , EventArgs e )
{
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
s . Fix3D ^ = true ;
PutCoreSettings ( s ) ;
}
2013-10-27 13:53:28 +00:00
private void ShowClippedRegionsMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-24 01:06:17 +00:00
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
s . ShowClippedRegions ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 13:53:28 +00:00
}
private void HighlightActiveDisplayRegionMenuItem_Click ( object sender , EventArgs e )
{
2013-12-24 01:06:17 +00:00
var s = ( SMS . SMSSettings ) Global . Emulator . GetSettings ( ) ;
s . HighlightActiveDisplayRegion ^ = true ;
PutCoreSettings ( s ) ;
2013-10-27 13:53:28 +00:00
}
private void SMSGraphicsSettingsMenuItem_Click ( object sender , EventArgs e )
{
new SMSGraphicsConfig ( ) . ShowDialog ( ) ;
}
private void GGGameGenieMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 23:34:22 +00:00
GlobalWin . Tools . LoadGameGenieEc ( ) ;
2013-10-27 13:53:28 +00:00
}
2014-05-10 14:50:47 +00:00
private void SmsVdpViewerMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < SmsVDPViewer > ( ) ;
}
2013-10-27 13:53:28 +00:00
#endregion
#region TI83
private void TI83SubMenu_DropDownOpened ( object sender , EventArgs e )
{
AutoloadKeypadMenuItem . Checked = Global . Config . TI83autoloadKeyPad ;
}
private void KeypadMenuItem_Click ( object sender , EventArgs e )
{
if ( Global . Emulator is TI83 )
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < TI83KeyPad > ( ) ;
2013-10-27 13:53:28 +00:00
}
}
private void AutoloadKeypadMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . TI83autoloadKeyPad ^ = true ;
}
private void LoadTIFileMenuItem_Click ( object sender , EventArgs e )
{
2013-11-27 23:35:32 +00:00
var OFD = new OpenFileDialog ( ) ;
2013-10-27 13:53:28 +00:00
2013-11-27 23:35:32 +00:00
if ( OFD . ShowDialog ( ) = = DialogResult . OK )
2013-10-27 13:53:28 +00:00
{
try
{
( Global . Emulator as TI83 ) . LinkPort . SendFileToCalc ( File . OpenRead ( OFD . FileName ) , true ) ;
}
catch ( IOException ex )
{
2013-11-27 23:35:32 +00:00
var Message = String . Format ( "Invalid file format. Reason: {0} \nForce transfer? This may cause the calculator to crash." , ex . Message ) ;
2013-10-27 13:53:28 +00:00
2014-06-29 02:28:48 +00:00
if ( MessageBox . Show ( Message , "Upload Failed" , MessageBoxButtons . YesNoCancel , MessageBoxIcon . Question ) = = DialogResult . Yes )
2013-10-27 13:53:28 +00:00
{
( Global . Emulator as TI83 ) . LinkPort . SendFileToCalc ( File . OpenRead ( OFD . FileName ) , false ) ;
}
}
}
}
2014-05-26 14:06:54 +00:00
private void paletteToolStripMenuItem_Click ( object sender , EventArgs e )
{
if ( new TI83PaletteConfig ( ) . ShowDialog ( ) = = DialogResult . OK )
{
GlobalWin . OSD . AddMessage ( "Palette settings saved" ) ;
}
else
{
GlobalWin . OSD . AddMessage ( "Palette config aborted" ) ;
}
}
2013-10-27 13:53:28 +00:00
#endregion
#region Atari
2014-05-10 14:50:47 +00:00
private void AtariSubMenu_DropDownOpened ( object sender , EventArgs e )
{
2014-06-04 17:02:54 +00:00
if ( ! VersionInfo . DeveloperBuild )
2014-05-10 14:50:47 +00:00
{
Atari2600DebuggerMenuItem . Visible =
toolStripSeparator31 . Visible =
false ;
}
2014-05-27 20:07:03 +00:00
Atari2600DebuggerMenuItem . Enabled = ! Global . MovieSession . Movie . IsActive ;
2014-05-10 14:50:47 +00:00
}
private void Atari2600DebuggerMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < Atari2600Debugger > ( ) ;
}
2013-12-24 20:50:53 +00:00
private void AtariSettingsToolStripMenuItem_Click ( object sender , EventArgs e )
2013-10-27 13:53:28 +00:00
{
2014-01-03 01:06:24 +00:00
GenericCoreConfig . DoDialog ( this , "Atari 2600 Settings" ) ;
2013-10-27 13:53:28 +00:00
}
#endregion
#region GB
private void GBSubMenu_DropDownOpened ( object sender , EventArgs e )
{
2014-05-26 12:25:22 +00:00
LoadGBInSGBMenuItem . Checked = Global . Config . GB_AsSGB ;
2013-10-27 13:53:28 +00:00
}
private void GBForceDMGMenuItem_Click ( object sender , EventArgs e )
{
2013-12-23 02:51:41 +00:00
var s = ( Gameboy . GambatteSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
s . ForceDMG ^ = true ;
PutCoreSyncSettings ( s ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void GBAInCGBModeMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-23 02:51:41 +00:00
var s = ( Gameboy . GambatteSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
s . GBACGB ^ = true ;
PutCoreSyncSettings ( s ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void GBMulticartCompatibilityMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-12-23 02:51:41 +00:00
var s = ( Gameboy . GambatteSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
s . MulticartCompat ^ = true ;
PutCoreSyncSettings ( s ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void GBPaletteConfigMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 13:53:28 +00:00
if ( Global . Emulator is Gameboy )
{
var gb = Global . Emulator as Gameboy ;
if ( gb . IsCGBMode ( ) )
2013-12-23 02:51:41 +00:00
CGBColorChooserForm . DoCGBColorChooserFormDialog ( this ) ;
2013-10-27 13:53:28 +00:00
else
2013-12-23 02:51:41 +00:00
ColorChooserForm . DoColorChooserFormDialog ( this ) ;
2013-10-27 13:53:28 +00:00
}
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void LoadGBInSGBMenuItem_Click ( object sender , EventArgs e )
2011-02-21 09:48:53 +00:00
{
2013-10-27 13:53:28 +00:00
SnesGBInSGBMenuItem_Click ( sender , e ) ;
2011-02-21 09:48:53 +00:00
}
2013-10-27 13:53:28 +00:00
private void GBGPUViewerMenuItem_Click ( object sender , EventArgs e )
2012-03-04 01:30:30 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < GBGPUView > ( ) ;
2013-10-27 13:53:28 +00:00
}
private void GBGameGenieMenuItem_Click ( object sender , EventArgs e )
{
2013-12-22 23:34:22 +00:00
GlobalWin . Tools . LoadGameGenieEc ( ) ;
2013-10-27 13:53:28 +00:00
}
#endregion
#region GBA
private void GbaGpuViewerMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < GBAGPUView > ( ) ;
2013-10-27 13:53:28 +00:00
}
#endregion
#region SNES
private void SNESSubMenu_DropDownOpened ( object sender , EventArgs e )
{
if ( ( Global . Emulator as LibsnesCore ) . IsSGB )
{
SnesGBInSGBMenuItem . Visible = true ;
SnesGBInSGBMenuItem . Checked = Global . Config . GB_AsSGB ;
}
2013-10-27 07:54:00 +00:00
else
2013-10-27 13:53:28 +00:00
{
SnesGBInSGBMenuItem . Visible = false ;
}
2012-03-04 01:30:30 +00:00
}
2013-10-27 13:53:28 +00:00
private void SNESDisplayMenuItem_DropDownOpened ( object sender , EventArgs e )
2011-03-21 00:54:30 +00:00
{
2013-12-27 17:59:19 +00:00
var s = ( LibsnesCore . SnesSettings ) Global . Emulator . GetSettings ( ) ;
2013-10-27 13:53:28 +00:00
2013-12-27 17:59:19 +00:00
SnesBg1MenuItem . Checked = s . ShowBG1_1 ;
SnesBg2MenuItem . Checked = s . ShowBG2_1 ;
SnesBg3MenuItem . Checked = s . ShowBG3_1 ;
SnesBg4MenuItem . Checked = s . ShowBG4_1 ;
SnesObj1MenuItem . Checked = s . ShowOBJ_0 ;
SnesObj2MenuItem . Checked = s . ShowOBJ_1 ;
SnesObj3MenuItem . Checked = s . ShowOBJ_2 ;
SnesObj4MenuItem . Checked = s . ShowOBJ_3 ;
2013-10-27 13:53:28 +00:00
SnesBg1MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle BG 1" ] . Bindings ;
SnesBg2MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle BG 2" ] . Bindings ;
SnesBg3MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle BG 3" ] . Bindings ;
SnesBg4MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle BG 4" ] . Bindings ;
SnesObj1MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle OBJ 1" ] . Bindings ;
SnesObj2MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle OBJ 2" ] . Bindings ;
SnesObj3MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle OBJ 3" ] . Bindings ;
SnesObj4MenuItem . ShortcutKeyDisplayString = Global . Config . HotkeyBindings [ "Toggle OBJ 4" ] . Bindings ;
2011-03-21 00:54:30 +00:00
}
2013-10-27 13:53:28 +00:00
private void SnesBg1MenuItem_Click ( object sender , EventArgs e )
2011-03-21 00:54:30 +00:00
{
2013-10-27 13:53:28 +00:00
SNES_ToggleBG1 ( ) ;
2011-03-21 00:54:30 +00:00
}
2013-10-27 13:53:28 +00:00
private void SnesBg2MenuItem_Click ( object sender , EventArgs e )
2011-03-21 00:54:30 +00:00
{
2013-10-27 13:53:28 +00:00
SNES_ToggleBG2 ( ) ;
}
private void SnesBg3MenuItem_Click ( object sender , EventArgs e )
{
SNES_ToggleBG3 ( ) ;
}
private void SnesBg4MenuItem_Click ( object sender , EventArgs e )
{
SNES_ToggleBG4 ( ) ;
}
private void SnesObj1MenuItem_Click ( object sender , EventArgs e )
{
2013-12-29 23:35:42 +00:00
this . SNES_ToggleObj1 ( ) ;
2013-10-27 13:53:28 +00:00
}
private void SnesObj2MenuItem_Click ( object sender , EventArgs e )
{
2013-12-29 23:35:42 +00:00
this . SNES_ToggleObj2 ( ) ;
2013-10-27 13:53:28 +00:00
}
private void SnesObj3MenuItem_Click ( object sender , EventArgs e )
{
SNES_ToggleOBJ3 ( ) ;
}
private void SnesObj4MenuItem_Click ( object sender , EventArgs e )
{
SNES_ToggleOBJ4 ( ) ;
2013-10-27 07:54:00 +00:00
}
2013-10-27 07:45:59 +00:00
2013-10-27 13:53:28 +00:00
private void SnesGfxDebuggerMenuItem_Click ( object sender , EventArgs e )
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < SNESGraphicsDebugger > ( ) ;
2013-10-27 13:53:28 +00:00
}
private void SnesGBInSGBMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . GB_AsSGB ^ = true ;
FlagNeedsReboot ( ) ;
}
private void SnesGameGenieMenuItem_Click ( object sender , EventArgs e )
2013-10-27 07:54:00 +00:00
{
2013-12-22 23:34:22 +00:00
GlobalWin . Tools . LoadGameGenieEc ( ) ;
2011-03-21 00:54:30 +00:00
}
2013-10-27 13:53:28 +00:00
private void SnesOptionsMenuItem_Click ( object sender , EventArgs e )
2011-06-26 01:22:52 +00:00
{
2013-12-27 17:59:19 +00:00
SNESOptions . DoSettingsDialog ( this ) ;
2011-06-26 01:22:52 +00:00
}
2013-10-27 13:53:28 +00:00
#endregion
#region Coleco
private void ColecoSubMenu_DropDownOpened ( object sender , EventArgs e )
2011-06-26 01:22:52 +00:00
{
2013-12-24 23:32:43 +00:00
var ss = ( ColecoVision . ColecoSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ColecoSkipBiosMenuItem . Checked = ss . SkipBiosIntro ;
2011-06-26 01:22:52 +00:00
}
2013-10-27 13:53:28 +00:00
private void ColecoSkipBiosMenuItem_Click ( object sender , EventArgs e )
2012-07-12 21:56:59 +00:00
{
2013-12-24 23:32:43 +00:00
var ss = ( ColecoVision . ColecoSyncSettings ) Global . Emulator . GetSyncSettings ( ) ;
ss . SkipBiosIntro ^ = true ;
PutCoreSyncSettings ( ss ) ;
2012-07-12 21:56:59 +00:00
}
2013-10-27 13:53:28 +00:00
#endregion
#region N64
2014-05-10 13:49:00 +00:00
private void N64SubMenu_DropDownOpened ( object sender , EventArgs e )
{
N64PluginSettingsMenuItem . Enabled =
N64ControllerSettingsMenuItem . Enabled =
! Global . MovieSession . Movie . IsActive ;
2014-05-17 20:18:29 +00:00
N64CircularAnalogRangeMenuItem . Checked = Global . Config . N64UseCircularAnalogConstraint ;
2014-05-10 13:49:00 +00:00
}
2013-10-27 13:53:28 +00:00
private void N64PluginSettingsMenuItem_Click ( object sender , EventArgs e )
2011-06-26 01:22:52 +00:00
{
2014-07-20 13:29:06 +00:00
if ( new N64VideoPluginconfig ( ) . ShowDialog ( ) = = DialogResult . OK )
{
GlobalWin . MainForm . FlagNeedsReboot ( ) ;
GlobalWin . OSD . AddMessage ( "Plugin settings saved but a core reboot is required" ) ;
}
else
{
GlobalWin . OSD . AddMessage ( "Plugin settings aborted" ) ;
}
}
2014-05-10 13:49:00 +00:00
private void N64ControllerSettingsMenuItem_Click ( object sender , EventArgs e )
{
if ( new N64ControllersSetup ( ) . ShowDialog ( ) = = DialogResult . OK )
{
GlobalWin . MainForm . FlagNeedsReboot ( ) ;
2014-05-16 00:24:40 +00:00
GlobalWin . OSD . AddMessage ( "Controller settings saved but a core reboot is required" ) ;
2014-05-10 13:49:00 +00:00
}
else
{
GlobalWin . OSD . AddMessage ( "Controller settings aborted" ) ;
}
}
2014-05-17 20:18:29 +00:00
private void N64CircularAnalogRangeMenuItem_Click ( object sender , EventArgs e )
{
Global . Config . N64UseCircularAnalogConstraint ^ = true ;
}
2013-10-27 13:53:28 +00:00
#endregion
#region Saturn
private void SaturnPreferencesMenuItem_Click ( object sender , EventArgs e )
2011-06-26 01:22:52 +00:00
{
2014-05-28 17:31:22 +00:00
GenericCoreConfig . DoDialog ( this , "Saturn Settings" ) ;
/ * - - delete me , out of date
2013-10-27 13:53:28 +00:00
using ( var dlg = new SaturnPrefs ( ) )
{
2013-12-27 03:02:28 +00:00
dlg . ShowDialog ( this ) ;
2013-10-27 13:53:28 +00:00
}
2014-05-28 17:31:22 +00:00
* * /
2013-10-27 13:53:28 +00:00
}
#endregion
2013-12-23 16:58:20 +00:00
#region DGB
private void DGBsettingsToolStripMenuItem_Click ( object sender , EventArgs e )
{
2014-06-29 02:28:48 +00:00
config . GB . DGBPrefs . DoDGBPrefsDialog ( this ) ;
2013-12-23 16:58:20 +00:00
}
#endregion
2013-12-23 23:03:12 +00:00
#region GEN
2014-05-10 14:50:47 +00:00
private void GenVdpViewerMenuItem_Click ( object sender , EventArgs e )
{
GlobalWin . Tools . Load < GenVDPViewer > ( ) ;
}
private void GenesisSettingsMenuItem_Click ( object sender , EventArgs e )
2013-12-23 23:03:12 +00:00
{
2014-01-03 01:06:24 +00:00
GenericCoreConfig . DoDialog ( this , "Genesis Settings" ) ;
2013-12-23 23:03:12 +00:00
}
#endregion
2013-10-27 13:53:28 +00:00
#region Help
2013-10-27 07:54:00 +00:00
2013-10-27 13:53:28 +00:00
private void OnlineHelpMenuItem_Click ( object sender , EventArgs e )
{
System . Diagnostics . Process . Start ( "http://tasvideos.org/BizHawk.html" ) ;
2011-06-26 01:22:52 +00:00
}
2011-06-10 23:09:10 +00:00
2013-10-27 13:53:28 +00:00
private void ForumsMenuItem_Click ( object sender , EventArgs e )
2011-06-10 23:09:10 +00:00
{
2013-10-27 13:53:28 +00:00
System . Diagnostics . Process . Start ( "http://tasvideos.org/forum/viewforum.php?f=64" ) ;
2011-06-10 23:09:10 +00:00
}
2011-06-18 17:45:18 +00:00
2013-10-27 13:53:28 +00:00
private void AboutMenuItem_Click ( object sender , EventArgs e )
2012-03-11 15:12:48 +00:00
{
2014-06-04 17:02:54 +00:00
if ( VersionInfo . DeveloperBuild )
2013-10-27 13:53:28 +00:00
{
new AboutBox ( ) . ShowDialog ( ) ;
}
else
{
new BizBox ( ) . ShowDialog ( ) ;
}
2012-03-11 15:12:48 +00:00
}
2013-10-27 13:53:28 +00:00
#endregion
2013-10-27 15:23:41 +00:00
#region Context Menu
private void MainFormContextMenu_Opening ( object sender , System . ComponentModel . CancelEventArgs e )
2012-03-11 17:08:25 +00:00
{
2013-11-27 23:35:32 +00:00
_wasPaused = EmulatorPaused ;
_didMenuPause = true ;
2013-10-27 15:23:41 +00:00
PauseEmulator ( ) ;
2012-03-11 17:08:25 +00:00
2013-11-27 23:35:32 +00:00
OpenRomContextMenuItem . Visible = ( Global . Emulator is NullEmulator ) | | _inFullscreen ;
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
ShowMenuContextMenuItem . Visible =
ShowMenuContextMenuSeparator . Visible =
2013-11-27 23:35:32 +00:00
_inFullscreen ;
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
LoadLastRomContextMenuItem . Visible =
2013-11-03 02:51:21 +00:00
( Global . Emulator is NullEmulator ) ;
2013-11-27 21:52:49 +00:00
2013-11-27 23:35:32 +00:00
StopAVContextMenuItem . Visible = _currAviWriter ! = null ;
2013-11-27 21:52:49 +00:00
2013-10-27 15:23:41 +00:00
ContextSeparator_AfterMovie . Visible =
ContextSeparator_AfterUndo . Visible =
ScreenshotContextMenuItem . Visible =
CloseRomContextMenuItem . Visible =
UndoSavestateContextMenuItem . Visible =
2013-11-03 02:51:21 +00:00
! ( Global . Emulator is NullEmulator ) ;
2014-01-01 03:03:10 +00:00
RecordMovieContextMenuItem . Visible =
PlayMovieContextMenuItem . Visible =
2013-10-27 15:23:41 +00:00
LoadLastMovieContextMenuItem . Visible =
2013-11-03 02:51:21 +00:00
! ( Global . Emulator is NullEmulator ) & & ! Global . MovieSession . Movie . IsActive ;
2014-01-01 03:03:10 +00:00
2013-10-27 15:23:41 +00:00
RestartMovieContextMenuItem . Visible =
StopMovieContextMenuItem . Visible =
ViewSubtitlesContextMenuItem . Visible =
ViewCommentsContextMenuItem . Visible =
SaveMovieContextMenuItem . Visible =
Global . MovieSession . Movie . IsActive ;
2013-10-27 13:53:28 +00:00
2014-06-12 11:53:25 +00:00
BackupMovieContextMenuItem . Visible = Global . MovieSession . Movie . IsActive ;
2013-12-10 17:59:04 +00:00
2013-11-23 18:18:58 +00:00
StopNoSaveContextMenuItem . Visible = Global . MovieSession . Movie . IsActive & & Global . MovieSession . Movie . Changes ;
2013-10-27 13:53:28 +00:00
2013-12-22 18:54:07 +00:00
AddSubtitleContextMenuItem . Visible = ! ( Global . Emulator is NullEmulator ) & & Global . MovieSession . Movie . IsActive & & ! Global . MovieSession . ReadOnly ;
2013-10-27 13:53:28 +00:00
2013-11-27 23:35:32 +00:00
ConfigContextMenuItem . Visible = _inFullscreen ;
2014-01-01 03:03:10 +00:00
2013-10-27 15:23:41 +00:00
ClearSRAMContextMenuItem . Visible = File . Exists ( PathManager . SaveRamPath ( Global . Game ) ) ;
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
ContextSeparator_AfterROM . Visible = OpenRomContextMenuItem . Visible | | LoadLastRomContextMenuItem . Visible ;
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
LoadLastRomContextMenuItem . Enabled = ! Global . Config . RecentRoms . Empty ;
LoadLastMovieContextMenuItem . Enabled = ! Global . Config . RecentMovies . Empty ;
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
if ( Global . MovieSession . Movie . IsActive )
{
2013-12-03 18:08:45 +00:00
if ( Global . MovieSession . ReadOnly )
2013-10-27 15:23:41 +00:00
{
ViewSubtitlesContextMenuItem . Text = "View Subtitles" ;
ViewCommentsContextMenuItem . Text = "View Comments" ;
}
else
{
ViewSubtitlesContextMenuItem . Text = "Edit Subtitles" ;
ViewCommentsContextMenuItem . Text = "Edit Comments" ;
}
}
2013-10-27 13:53:28 +00:00
2013-10-27 15:23:41 +00:00
var file = new FileInfo (
2014-01-01 03:03:10 +00:00
PathManager . SaveStatePrefix ( Global . Game ) +
".QuickSave" +
2013-10-27 15:23:41 +00:00
Global . Config . SaveSlot +
".State.bak"
) ;
2014-01-01 03:03:10 +00:00
2013-10-27 15:23:41 +00:00
if ( file . Exists )
{
UndoSavestateContextMenuItem . Enabled = true ;
2013-11-27 23:35:32 +00:00
if ( _stateSlots . IsRedo ( Global . Config . SaveSlot ) )
2013-10-27 15:23:41 +00:00
{
2013-11-27 23:35:32 +00:00
UndoSavestateContextMenuItem . Text = "Redo Save to slot " + Global . Config . SaveSlot ;
2013-10-27 15:23:41 +00:00
UndoSavestateContextMenuItem . Image = Properties . Resources . redo ;
}
else
{
2013-11-27 23:35:32 +00:00
UndoSavestateContextMenuItem . Text = "Undo Save to slot " + Global . Config . SaveSlot ;
2013-10-27 15:23:41 +00:00
UndoSavestateContextMenuItem . Image = Properties . Resources . undo ;
}
}
else
{
UndoSavestateContextMenuItem . Enabled = false ;
UndoSavestateContextMenuItem . Text = "Undo Savestate" ;
UndoSavestateContextMenuItem . Image = Properties . Resources . undo ;
}
2013-10-27 13:53:28 +00:00
2013-11-27 23:35:32 +00:00
if ( _inFullscreen )
2011-06-18 17:45:18 +00:00
{
2013-11-27 23:35:32 +00:00
ShowMenuContextMenuItem . Text = MainMenuStrip . Visible ? "Hide Menu" : "Show Menu" ;
2011-06-18 17:45:18 +00:00
}
}
2013-10-27 15:23:41 +00:00
private void MainFormContextMenu_Closing ( object sender , ToolStripDropDownClosingEventArgs e )
2011-06-18 17:45:18 +00:00
{
2013-11-27 23:35:32 +00:00
if ( ! _wasPaused )
2013-10-27 15:23:41 +00:00
{
UnpauseEmulator ( ) ;
}
2011-06-18 17:45:18 +00:00
}
2014-05-10 14:50:47 +00:00
private void SavestateTypeContextSubMenu_DropDownOpened ( object sender , EventArgs e )
{
SavestateTypeDefaultContextMenuItem . Checked = false ;
SavestateBinaryContextMenuItem . Checked = false ;
SavestateTextContextMenuItem . Checked = false ;
switch ( Global . Config . SaveStateType )
{
case Config . SaveStateTypeE . Binary : SavestateBinaryContextMenuItem . Checked = true ; break ;
case Config . SaveStateTypeE . Text : SavestateTextContextMenuItem . Checked = true ; break ;
case Config . SaveStateTypeE . Default : SavestateTypeDefaultContextMenuItem . Checked = true ; break ;
}
}
private void DisplayConfigMenuItem_Click ( object sender , EventArgs e )
{
2014-05-23 00:50:19 +00:00
var result = new config . DisplayConfigLite ( ) . ShowDialog ( ) ;
2014-06-29 02:28:48 +00:00
if ( result = = DialogResult . OK )
{
2014-05-23 00:50:19 +00:00
FrameBufferResized ( ) ;
2014-06-29 02:28:48 +00:00
}
2014-05-10 14:50:47 +00:00
}
private void CoreSelectionContextSubMenu_DropDownOpened ( object sender , EventArgs e )
{
GBInSGBContextMenuItem . Checked = Global . Config . GB_AsSGB ;
NesInQuickNESContextMenuItem . Checked = Global . Config . NES_InQuickNES ;
}
2013-10-27 15:23:41 +00:00
private void LoadLastRomContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 17:45:18 +00:00
{
2014-04-06 20:46:23 +00:00
LoadRomFromRecent ( Global . Config . RecentRoms . MostRecent ) ;
2011-06-18 17:45:18 +00:00
}
2013-10-27 15:23:41 +00:00
private void LoadLastMovieContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 17:45:18 +00:00
{
2014-04-06 20:46:23 +00:00
LoadMoviesFromRecent ( Global . Config . RecentMovies . MostRecent ) ;
2011-06-18 17:45:18 +00:00
}
2013-10-27 15:23:41 +00:00
private void BackupMovieContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 17:45:18 +00:00
{
2014-06-12 23:22:15 +00:00
Global . MovieSession . Movie . SaveBackup ( ) ;
2014-06-12 11:53:25 +00:00
GlobalWin . OSD . AddMessage ( "Backup movie saved." ) ;
2011-06-18 17:45:18 +00:00
}
2013-10-27 15:23:41 +00:00
private void ViewSubtitlesContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 17:45:18 +00:00
{
2013-10-27 15:23:41 +00:00
if ( Global . MovieSession . Movie . IsActive )
{
2013-12-03 18:08:45 +00:00
var form = new EditSubtitlesForm { ReadOnly = Global . MovieSession . ReadOnly } ;
2013-10-27 15:23:41 +00:00
form . GetMovie ( Global . MovieSession . Movie ) ;
form . ShowDialog ( ) ;
}
2011-06-18 17:45:18 +00:00
}
2013-10-27 15:23:41 +00:00
private void AddSubtitleContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 17:45:18 +00:00
{
2013-11-29 20:26:24 +00:00
//TODO: rethink this?
2013-11-27 23:35:32 +00:00
var subForm = new SubtitleMaker ( ) ;
2013-10-27 15:23:41 +00:00
subForm . DisableFrame ( ) ;
2011-07-04 19:20:11 +00:00
int index = - 1 ;
2013-11-27 23:35:32 +00:00
var sub = new Subtitle ( ) ;
2014-06-08 22:12:15 +00:00
for ( int x = 0 ; x < Global . MovieSession . Movie . Subtitles . Count ; x + + )
2011-07-04 19:20:11 +00:00
{
2014-06-08 22:12:15 +00:00
sub = Global . MovieSession . Movie . Subtitles [ x ] ;
2013-10-20 18:02:43 +00:00
if ( Global . Emulator . Frame = = sub . Frame )
2011-07-04 19:20:11 +00:00
{
index = x ;
break ;
}
}
2013-10-27 15:23:41 +00:00
2011-07-04 19:20:11 +00:00
if ( index < 0 )
{
2013-10-20 18:02:43 +00:00
sub = new Subtitle { Frame = Global . Emulator . Frame } ;
2011-07-04 19:20:11 +00:00
}
2011-06-18 17:45:18 +00:00
2013-11-28 01:33:38 +00:00
subForm . Sub = sub ;
2011-06-18 17:45:18 +00:00
2013-10-27 15:23:41 +00:00
if ( subForm . ShowDialog ( ) = = DialogResult . OK )
2011-06-18 17:45:18 +00:00
{
2013-10-27 15:23:41 +00:00
if ( index > = 0 )
2012-09-03 19:42:53 +00:00
{
2014-06-08 22:12:15 +00:00
Global . MovieSession . Movie . Subtitles . RemoveAt ( index ) ;
2012-09-03 19:42:53 +00:00
}
2011-06-18 17:45:18 +00:00
2014-06-08 22:12:15 +00:00
Global . MovieSession . Movie . Subtitles . Add ( subForm . Sub ) ;
2011-07-31 22:29:56 +00:00
}
2013-10-27 15:23:41 +00:00
}
2011-09-24 23:00:59 +00:00
2013-10-27 15:23:41 +00:00
private void ViewCommentsContextMenuItem_Click ( object sender , EventArgs e )
{
if ( Global . MovieSession . Movie . IsActive )
2013-03-10 22:42:54 +00:00
{
2013-11-27 23:35:32 +00:00
var form = new EditCommentsForm ( ) ;
2013-10-27 15:23:41 +00:00
form . GetMovie ( Global . MovieSession . Movie ) ;
form . ShowDialog ( ) ;
2013-03-10 22:42:54 +00:00
}
2011-06-18 18:27:51 +00:00
}
2013-10-27 15:23:41 +00:00
private void UndoSavestateContextMenuItem_Click ( object sender , EventArgs e )
2011-06-19 01:39:36 +00:00
{
2013-12-24 22:20:18 +00:00
_stateSlots . SwapBackupSavestate (
2013-10-27 15:23:41 +00:00
PathManager . SaveStatePrefix ( Global . Game ) +
".QuickSave" +
Global . Config . SaveSlot +
".State"
) ;
2013-11-03 16:07:58 +00:00
GlobalWin . OSD . AddMessage ( "Save slot " + Global . Config . SaveSlot + " restored." ) ;
2011-06-19 01:39:36 +00:00
}
2013-10-27 15:53:37 +00:00
private void ClearSRAMContextMenuItem_Click ( object sender , EventArgs e )
{
2013-11-27 23:35:32 +00:00
CloseRom ( clearSram : true ) ;
2013-10-27 15:53:37 +00:00
}
2013-10-27 15:23:41 +00:00
private void ShowMenuContextMenuItem_Click ( object sender , EventArgs e )
2011-06-18 18:27:51 +00:00
{
2013-11-03 02:51:21 +00:00
MainMenuStrip . Visible ^ = true ;
2011-06-18 19:16:05 +00:00
}
2011-06-26 01:22:52 +00:00
2013-10-27 15:23:41 +00:00
#endregion
2013-10-27 15:53:37 +00:00
#region Status Bar
2011-07-09 19:54:24 +00:00
2013-10-27 15:53:37 +00:00
private void DumpStatusButton_Click ( object sender , EventArgs e )
2011-07-11 23:26:20 +00:00
{
2013-10-27 15:53:37 +00:00
string details = Global . Emulator . CoreComm . RomStatusDetails ;
if ( ! String . IsNullOrEmpty ( details ) )
2012-09-03 19:42:53 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Sound . StopSound ( ) ;
2013-10-27 15:53:37 +00:00
LogWindow . ShowReport ( "Dump Status Report" , details , this ) ;
2013-11-03 16:07:58 +00:00
GlobalWin . Sound . StartSound ( ) ;
2012-09-03 19:42:53 +00:00
}
2011-07-22 01:34:21 +00:00
}
2013-10-27 15:53:37 +00:00
private void SlotStatusButtons_MouseUp ( object sender , MouseEventArgs e )
2011-07-22 01:34:21 +00:00
{
2013-10-27 15:53:37 +00:00
int slot = 0 ;
if ( sender = = Slot1StatusButton ) slot = 1 ;
if ( sender = = Slot2StatusButton ) slot = 2 ;
if ( sender = = Slot3StatusButton ) slot = 3 ;
if ( sender = = Slot4StatusButton ) slot = 4 ;
if ( sender = = Slot5StatusButton ) slot = 5 ;
if ( sender = = Slot6StatusButton ) slot = 6 ;
if ( sender = = Slot7StatusButton ) slot = 7 ;
if ( sender = = Slot8StatusButton ) slot = 8 ;
if ( sender = = Slot9StatusButton ) slot = 9 ;
if ( sender = = Slot0StatusButton ) slot = 0 ;
2011-07-22 01:34:21 +00:00
2013-10-27 15:53:37 +00:00
if ( e . Button = = MouseButtons . Left )
2013-10-27 07:54:00 +00:00
{
2013-11-27 23:35:32 +00:00
if ( _stateSlots . HasSlot ( slot ) )
2013-10-27 07:54:00 +00:00
{
2013-12-30 16:49:13 +00:00
LoadQuickSave ( "QuickSave" + slot ) ;
2013-10-27 07:54:00 +00:00
}
}
2013-10-27 15:53:37 +00:00
else if ( e . Button = = MouseButtons . Right )
2011-07-22 01:34:21 +00:00
{
2013-12-30 16:49:13 +00:00
SaveQuickSave ( "QuickSave" + slot ) ;
2011-07-22 01:34:21 +00:00
}
2013-10-27 13:53:28 +00:00
}
2012-10-06 12:27:56 +00:00
2013-10-27 15:53:37 +00:00
private void KeyPriorityStatusLabel_Click ( object sender , EventArgs e )
2013-10-27 13:53:28 +00:00
{
2013-10-27 15:53:37 +00:00
switch ( Global . Config . Input_Hotkey_OverrideOptions )
2013-10-27 13:53:28 +00:00
{
2013-10-27 15:53:37 +00:00
default :
case 0 :
Global . Config . Input_Hotkey_OverrideOptions = 1 ;
break ;
case 1 :
Global . Config . Input_Hotkey_OverrideOptions = 2 ;
break ;
case 2 :
Global . Config . Input_Hotkey_OverrideOptions = 0 ;
break ;
2013-10-27 13:53:28 +00:00
}
2013-10-27 15:53:37 +00:00
UpdateKeyPriorityIcon ( ) ;
2011-07-22 01:34:21 +00:00
}
2011-07-31 21:39:54 +00:00
2011-08-09 23:27:47 +00:00
private void FreezeStatus_Click ( object sender , EventArgs e )
{
2013-10-27 15:53:37 +00:00
if ( CheatStatusButton . Visible )
2012-09-29 22:37:34 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < Cheats > ( ) ;
2012-09-29 22:37:34 +00:00
}
2011-08-09 23:27:47 +00:00
}
2013-10-27 15:53:37 +00:00
#endregion
#region Form Events
private void MainForm_Activated ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
if ( ! Global . Config . RunInBackground )
2012-10-07 19:52:09 +00:00
{
2013-11-27 23:35:32 +00:00
if ( ! _wasPaused )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
UnpauseEmulator ( ) ;
2012-10-07 19:52:09 +00:00
}
2013-11-27 23:35:32 +00:00
_wasPaused = false ;
2012-10-07 19:52:09 +00:00
}
}
2013-10-27 15:53:37 +00:00
private void MainForm_Deactivate ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
if ( ! Global . Config . RunInBackground )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
if ( EmulatorPaused )
2012-10-07 19:52:09 +00:00
{
2013-11-27 23:35:32 +00:00
_wasPaused = true ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
PauseEmulator ( ) ;
2012-10-07 19:52:09 +00:00
}
}
2013-10-27 15:53:37 +00:00
private void MainForm_Enter ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
public void MainForm_MouseClick ( object sender , MouseEventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
if ( Global . Config . ShowContextMenu & & e . Button = = MouseButtons . Right )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
MainFormContextMenu . Show (
PointToScreen ( new Point ( e . X , e . Y + MainformMenu . Height ) )
) ;
2012-10-07 19:52:09 +00:00
}
}
2013-10-27 15:53:37 +00:00
private void MainForm_Resize ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2014-01-27 06:03:18 +00:00
GlobalWin . PresentationPanel . Resized = true ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
private void MainForm_Shown ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
HandlePlatformMenus ( ) ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
protected override void OnClosed ( EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-11-27 23:35:32 +00:00
_exit = true ;
2013-10-27 15:53:37 +00:00
base . OnClosed ( e ) ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
private void MainformMenu_Leave ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2012-10-07 19:52:09 +00:00
}
2013-10-27 15:53:37 +00:00
private void MainformMenu_MenuActivate ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
HandlePlatformMenus ( ) ;
if ( Global . Config . PauseWhenMenuActivated )
2012-10-07 19:52:09 +00:00
{
2013-11-27 23:35:32 +00:00
_wasPaused = EmulatorPaused ;
_didMenuPause = true ;
2013-10-27 15:53:37 +00:00
PauseEmulator ( ) ;
2012-10-07 19:52:09 +00:00
}
}
2013-10-27 15:53:37 +00:00
private void MainformMenu_MenuDeactivate ( object sender , EventArgs e )
2012-10-07 19:52:09 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . DisplayManager . NeedsToPaint = true ;
2013-11-27 23:35:32 +00:00
if ( ! _wasPaused )
2012-10-07 19:52:09 +00:00
{
2013-10-27 15:53:37 +00:00
UnpauseEmulator ( ) ;
2012-10-07 19:52:09 +00:00
}
}
2013-07-16 01:59:59 +00:00
private static void FormDragEnter ( object sender , DragEventArgs e )
{
e . Effect = e . Data . GetDataPresent ( DataFormats . FileDrop ) ? DragDropEffects . Copy : DragDropEffects . None ;
}
private void FormDragDrop ( object sender , DragEventArgs e )
{
2014-05-26 04:50:30 +00:00
try
{
FormDragDrop_internal ( sender , e ) ;
}
catch ( Exception ex )
{
2014-06-29 02:28:48 +00:00
MessageBox . Show ( "Exception on drag and drop:\n" + ex ) ;
2014-05-26 04:50:30 +00:00
}
}
private void FormDragDrop_internal ( object sender , DragEventArgs e )
{
2013-11-27 23:35:32 +00:00
var filePaths = ( string [ ] ) e . Data . GetData ( DataFormats . FileDrop ) ;
var isLua = false ;
foreach ( var path in filePaths )
2013-07-16 01:59:59 +00:00
{
var extension = Path . GetExtension ( path ) ;
if ( extension ! = null & & extension . ToUpper ( ) = = ".LUA" )
{
OpenLuaConsole ( ) ;
2013-11-03 16:07:58 +00:00
if ( GlobalWin . Tools . Has < LuaConsole > ( ) )
2013-11-03 01:02:17 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . LuaConsole . LoadLuaFile ( path ) ;
2013-11-03 01:02:17 +00:00
}
2013-07-16 01:59:59 +00:00
isLua = true ;
}
}
if ( isLua )
2013-11-03 01:02:17 +00:00
{
2013-07-16 01:59:59 +00:00
return ;
2013-11-03 01:02:17 +00:00
}
2013-07-16 01:59:59 +00:00
2014-04-06 20:46:23 +00:00
var ext = Path . GetExtension ( filePaths [ 0 ] ) ? ? string . Empty ;
2013-07-16 01:59:59 +00:00
if ( ext . ToUpper ( ) = = ".LUASES" )
{
OpenLuaConsole ( ) ;
2013-11-03 16:07:58 +00:00
if ( GlobalWin . Tools . Has < LuaConsole > ( ) )
2013-11-03 01:02:17 +00:00
{
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . LuaConsole . LoadLuaSession ( filePaths [ 0 ] ) ;
2013-11-03 01:02:17 +00:00
}
2013-07-16 01:59:59 +00:00
}
2014-06-14 14:09:55 +00:00
else if ( MovieService . IsValidMovieExtension ( ext ) )
2013-07-16 01:59:59 +00:00
{
2014-06-11 21:14:13 +00:00
StartNewMovie ( MovieService . Get ( filePaths [ 0 ] ) , false ) ;
2013-07-16 01:59:59 +00:00
}
else if ( ext . ToUpper ( ) = = ".STATE" )
{
2013-12-30 16:49:13 +00:00
LoadState ( filePaths [ 0 ] , Path . GetFileName ( filePaths [ 0 ] ) ) ;
2013-07-16 01:59:59 +00:00
}
else if ( ext . ToUpper ( ) = = ".CHT" )
{
2013-10-20 18:02:43 +00:00
Global . CheatList . Load ( filePaths [ 0 ] , false ) ;
2013-11-03 16:07:58 +00:00
GlobalWin . Tools . Load < Cheats > ( ) ;
2013-07-16 01:59:59 +00:00
}
else if ( ext . ToUpper ( ) = = ".WCH" )
{
2013-11-28 20:02:32 +00:00
GlobalWin . Tools . LoadRamWatch ( true ) ;
2013-11-03 16:07:58 +00:00
( GlobalWin . Tools . Get < RamWatch > ( ) as RamWatch ) . LoadWatchFile ( new FileInfo ( filePaths [ 0 ] ) , false ) ;
2013-07-16 01:59:59 +00:00
}
2014-04-13 12:40:30 +00:00
else if ( ext . ToUpper ( ) = = ".CDL" & & Global . Emulator is PCEngine )
{
GlobalWin . Tools . Load < PCECDL > ( ) ;
( GlobalWin . Tools . Get < PCECDL > ( ) as PCECDL ) . LoadFile ( filePaths [ 0 ] ) ;
}
2013-07-16 01:59:59 +00:00
else if ( MovieImport . IsValidMovieExtension ( Path . GetExtension ( filePaths [ 0 ] ) ) )
{
//tries to open a legacy movie format as if it were a BKM, by importing it
if ( CurrentlyOpenRom = = null )
2013-09-14 02:31:21 +00:00
{
2013-11-27 23:35:32 +00:00
OpenRom ( ) ;
2013-09-14 02:31:21 +00:00
}
2013-07-16 01:59:59 +00:00
else
2013-09-14 02:31:21 +00:00
{
2013-07-16 01:59:59 +00:00
LoadRom ( CurrentlyOpenRom ) ;
2013-09-14 02:31:21 +00:00
}
2013-07-16 01:59:59 +00:00
string errorMsg ;
string warningMsg ;
2013-12-04 15:17:02 +00:00
var movie = MovieImport . ImportFile ( filePaths [ 0 ] , out errorMsg , out warningMsg ) ;
2014-06-11 21:14:13 +00:00
if ( ! string . IsNullOrEmpty ( errorMsg ) )
2013-07-16 01:59:59 +00:00
{
MessageBox . Show ( errorMsg , "Conversion error" , MessageBoxButtons . OK , MessageBoxIcon . Error ) ;
}
else
{
2014-06-11 02:56:57 +00:00
// fix movie extension to something palatable for these purposes.
// for instance, something which doesnt clobber movies you already may have had.
// i'm evenly torn between this, and a file in %TEMP%, but since we dont really have a way to clean up this tempfile, i choose this:
2014-06-19 02:30:22 +00:00
movie . Filename = Path . ChangeExtension ( movie . Filename , ".autoimported." + MovieService . DefaultExtension ) ;
2013-11-23 18:18:58 +00:00
movie . Save ( ) ;
2013-10-27 15:53:37 +00:00
StartNewMovie ( movie , false ) ;
2013-07-16 01:59:59 +00:00
}
2014-06-12 11:53:25 +00:00
2013-11-03 16:07:58 +00:00
GlobalWin . OSD . AddMessage ( warningMsg ) ;
2013-07-16 01:59:59 +00:00
}
else
{
2013-10-27 15:53:37 +00:00
LoadRom ( filePaths [ 0 ] ) ;
2013-07-16 01:59:59 +00:00
}
}
2013-10-27 15:53:37 +00:00
#endregion
2011-02-21 09:48:53 +00:00
}
2012-03-09 21:36:55 +00:00
}