2011-02-21 09:48:53 +00:00
|
|
|
using System;
|
|
|
|
using System.Drawing;
|
|
|
|
using System.IO;
|
2013-08-04 16:47:54 +00:00
|
|
|
using System.Linq;
|
2011-02-21 09:48:53 +00:00
|
|
|
using System.Windows.Forms;
|
|
|
|
using BizHawk.Emulation.Consoles.Calculator;
|
2013-07-16 01:59:59 +00:00
|
|
|
using BizHawk.Emulation.Consoles.GB;
|
2012-09-15 16:43:16 +00:00
|
|
|
using BizHawk.Emulation.Consoles.Nintendo.SNES;
|
2011-02-21 09:48:53 +00:00
|
|
|
|
|
|
|
namespace BizHawk.MultiClient
|
|
|
|
{
|
|
|
|
partial class MainForm
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
private void openROMToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
OpenROM();
|
|
|
|
}
|
2012-09-06 08:32:25 +00:00
|
|
|
|
2011-07-11 07:35:14 +00:00
|
|
|
private void recordAVIToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-07-11 23:26:20 +00:00
|
|
|
RecordAVI();
|
2011-07-11 07:35:14 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void stopAVIToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-07-11 23:26:20 +00:00
|
|
|
StopAVI();
|
2011-07-11 07:35:14 +00:00
|
|
|
}
|
|
|
|
|
2011-07-10 21:00:28 +00:00
|
|
|
private void DumpStatus_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-12-10 00:43:43 +00:00
|
|
|
string details = Global.Emulator.CoreComm.RomStatusDetails;
|
2012-12-03 21:19:39 +00:00
|
|
|
if (string.IsNullOrEmpty(details)) return;
|
2011-07-21 22:51:32 +00:00
|
|
|
Global.Sound.StopSound();
|
2012-12-03 21:19:39 +00:00
|
|
|
LogWindow.ShowReport("Dump Status Report", details, this);
|
2011-07-21 22:51:32 +00:00
|
|
|
Global.Sound.StartSound();
|
2011-07-10 21:00:28 +00:00
|
|
|
}
|
|
|
|
|
2011-03-21 00:54:30 +00:00
|
|
|
private void RAMPokeToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
2012-01-22 22:42:40 +00:00
|
|
|
LoadRamPoke();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void saveWindowPositionToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SaveWindowPosition ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void startPausedToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.StartPaused ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void luaConsoleToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-01-10 01:30:17 +00:00
|
|
|
OpenLuaConsole();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void miLimitFramerate_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-11-12 17:57:11 +00:00
|
|
|
Global.Config.ClockThrottle ^= true;
|
|
|
|
if (Global.Config.ClockThrottle)
|
|
|
|
{
|
|
|
|
bool old = Global.Config.SoundThrottle;
|
|
|
|
Global.Config.SoundThrottle = false;
|
|
|
|
if (old)
|
|
|
|
RewireSound();
|
|
|
|
old = Global.Config.VSyncThrottle;
|
|
|
|
Global.Config.VSyncThrottle = false;
|
|
|
|
if (old)
|
|
|
|
Global.RenderPanel.Resized = true;
|
|
|
|
}
|
2012-07-12 19:23:39 +00:00
|
|
|
LimitFrameRateMessage();
|
|
|
|
}
|
|
|
|
|
2012-11-12 17:57:11 +00:00
|
|
|
private void audioThrottleToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SoundThrottle ^= true;
|
|
|
|
RewireSound();
|
|
|
|
if (Global.Config.SoundThrottle)
|
|
|
|
{
|
|
|
|
Global.Config.ClockThrottle = false;
|
|
|
|
bool old = Global.Config.VSyncThrottle;
|
|
|
|
Global.Config.VSyncThrottle = false;
|
|
|
|
if (old)
|
|
|
|
Global.RenderPanel.Resized = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void miDisplayVsync_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.VSyncThrottle ^= true;
|
|
|
|
Global.RenderPanel.Resized = true;
|
|
|
|
if (Global.Config.VSyncThrottle)
|
|
|
|
{
|
|
|
|
Global.Config.ClockThrottle = false;
|
|
|
|
bool old = Global.Config.SoundThrottle;
|
|
|
|
Global.Config.SoundThrottle = false;
|
|
|
|
if (old)
|
|
|
|
RewireSound();
|
|
|
|
}
|
|
|
|
VsyncMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void vSyncEnabledToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.VSync ^= true;
|
|
|
|
if (!Global.Config.VSyncThrottle) // when vsync throttle is on, vsync is forced to on, so no change to make here
|
|
|
|
Global.RenderPanel.Resized = true;
|
|
|
|
}
|
|
|
|
|
2012-07-12 19:23:39 +00:00
|
|
|
public void LimitFrameRateMessage()
|
|
|
|
{
|
2012-11-12 17:57:11 +00:00
|
|
|
if (Global.Config.ClockThrottle)
|
2012-07-12 19:23:39 +00:00
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Framerate limiting on");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Framerate limiting off");
|
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
2012-07-12 19:36:07 +00:00
|
|
|
|
|
|
|
public void VsyncMessage()
|
|
|
|
{
|
2012-11-12 17:57:11 +00:00
|
|
|
if (Global.Config.VSyncThrottle)
|
2012-07-12 19:36:07 +00:00
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Display Vsync is set to on");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Display Vsync is set to off");
|
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void miAutoMinimizeSkipping_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.AutoMinimizeSkipping ^= true;
|
|
|
|
}
|
|
|
|
|
2012-07-12 19:02:30 +00:00
|
|
|
public void MinimizeFrameskipMessage()
|
|
|
|
{
|
|
|
|
if (Global.Config.AutoMinimizeSkipping)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Autominimizing set to on");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Autominimizing set to off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-07-12 18:39:24 +00:00
|
|
|
private void miFrameskip0_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 0; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip1_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 1; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip2_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 2; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip3_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 3; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip4_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 4; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip5_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 5; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip6_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 6; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip7_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 7; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip8_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 8; FrameSkipMessage(); }
|
|
|
|
private void miFrameskip9_Click(object sender, EventArgs e) { Global.Config.FrameSkip = 9; FrameSkipMessage(); }
|
2011-02-21 09:48:53 +00:00
|
|
|
|
2012-07-12 18:39:24 +00:00
|
|
|
public void FrameSkipMessage()
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Frameskipping set to " + Global.Config.FrameSkip.ToString());
|
|
|
|
}
|
|
|
|
|
|
|
|
public void ClickSpeedItem(int num)
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
if ((ModifierKeys & Keys.Control) != 0) SetSpeedPercentAlternate(num);
|
2011-06-26 01:22:52 +00:00
|
|
|
else SetSpeedPercent(num);
|
|
|
|
}
|
2011-06-10 07:12:57 +00:00
|
|
|
private void miSpeed50_Click(object sender, EventArgs e) { ClickSpeedItem(50); }
|
2011-06-26 01:22:52 +00:00
|
|
|
private void miSpeed75_Click(object sender, EventArgs e) { ClickSpeedItem(75); }
|
|
|
|
private void miSpeed100_Click(object sender, EventArgs e) { ClickSpeedItem(100); }
|
|
|
|
private void miSpeed150_Click(object sender, EventArgs e) { ClickSpeedItem(150); }
|
|
|
|
private void miSpeed200_Click(object sender, EventArgs e) { ClickSpeedItem(200); }
|
2011-02-21 09:48:53 +00:00
|
|
|
|
|
|
|
private void pauseWhenMenuActivatedToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.PauseWhenMenuActivated ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void soundToolStripMenuItem_Click(object sender, EventArgs e)
|
2013-07-10 18:04:05 +00:00
|
|
|
{
|
|
|
|
OpenSoundConfigDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OpenSoundConfigDialog()
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
|
|
|
SoundConfig s = new SoundConfig();
|
sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well.
2012-10-11 00:44:59 +00:00
|
|
|
var result = s.ShowDialog();
|
2013-07-16 01:59:59 +00:00
|
|
|
if (result == DialogResult.OK)
|
sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well.
2012-10-11 00:44:59 +00:00
|
|
|
RewireSound();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void zoomMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
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;
|
|
|
|
|
|
|
|
x1MenuItem.Checked = Global.Config.TargetZoomFactor == 1;
|
|
|
|
x2MenuItem.Checked = Global.Config.TargetZoomFactor == 2;
|
|
|
|
x3MenuItem.Checked = Global.Config.TargetZoomFactor == 3;
|
|
|
|
x4MenuItem.Checked = Global.Config.TargetZoomFactor == 4;
|
|
|
|
x5MenuItem.Checked = Global.Config.TargetZoomFactor == 5;
|
|
|
|
mzMenuItem.Checked = Global.Config.TargetZoomFactor == 10;
|
|
|
|
|
|
|
|
FrameBufferResized();
|
|
|
|
}
|
|
|
|
|
2012-07-15 08:50:24 +00:00
|
|
|
private void DisplayFilterMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (sender == DisplayFilterNoneMenuItem) Global.Config.TargetDisplayFilter = 0;
|
|
|
|
if (sender == x2SAIMenuItem) Global.Config.TargetDisplayFilter = 1;
|
|
|
|
if (sender == SuperX2SAIMenuItem) Global.Config.TargetDisplayFilter = 2;
|
|
|
|
if (sender == SuperEagleMenuItem) Global.Config.TargetDisplayFilter = 3;
|
|
|
|
|
|
|
|
DisplayFilterNoneMenuItem.Checked = Global.Config.TargetDisplayFilter == 0;
|
|
|
|
x2SAIMenuItem.Checked = Global.Config.TargetDisplayFilter == 1;
|
|
|
|
SuperX2SAIMenuItem.Checked = Global.Config.TargetDisplayFilter == 2;
|
|
|
|
SuperEagleMenuItem.Checked = Global.Config.TargetDisplayFilter == 3;
|
|
|
|
}
|
|
|
|
|
2012-03-11 17:19:15 +00:00
|
|
|
private void smsEnableFMChipToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
|
|
|
Global.Config.SmsEnableFM ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
2012-03-11 17:19:15 +00:00
|
|
|
private void smsOverclockWhenKnownSafeToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
|
|
|
Global.Config.SmsAllowOverlock ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
2012-03-11 17:19:15 +00:00
|
|
|
private void smsForceStereoSeparationToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
|
|
|
Global.Config.SmsForceStereoSeparation ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
2011-09-19 00:39:28 +00:00
|
|
|
private void smsSpriteLimitToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SmsSpriteLimit ^= true;
|
2012-09-30 00:58:08 +00:00
|
|
|
FlagNeedsReboot();
|
2011-09-19 00:39:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void pceAlwaysPerformSpriteLimitToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.PceSpriteLimit ^= true;
|
2012-09-30 00:58:08 +00:00
|
|
|
FlagNeedsReboot();
|
2011-09-19 00:39:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void pceAlwayEqualizeVolumesLimitToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.PceEqualizeVolume ^= true;
|
2012-09-30 00:58:08 +00:00
|
|
|
FlagNeedsReboot();
|
2011-09-19 00:39:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void pceArcadeCardRewindEnableHackToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.PceArcadeCardRewindHack ^= true;
|
2012-09-30 00:58:08 +00:00
|
|
|
FlagNeedsReboot();
|
2011-09-19 00:39:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void recordMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
RecordMovie();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void playMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
PlayMovie();
|
|
|
|
}
|
|
|
|
|
2011-02-21 09:48:53 +00:00
|
|
|
private void stopMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-07-22 01:34:21 +00:00
|
|
|
StopMovie();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void playFromBeginningToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
PlayMovieFromBeginning();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void RAMWatchToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-08-15 01:14:25 +00:00
|
|
|
LoadRamWatch(true);
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void rAMSearchToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadRamSearch();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void autoloadMostRecentToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
UpdateAutoLoadRecentRom();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void clearToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.RecentRoms.Clear();
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
|
2011-02-21 09:48:53 +00:00
|
|
|
private void selectSlot1ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 1;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot2ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 2;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot3ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 3;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot4ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 4;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot5ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 5;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot6ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 6;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot7ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 7;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot8ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 8;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot9ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 9;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void selectSlot10ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
Global.Config.SaveSlot = 0;
|
2011-07-01 01:28:25 +00:00
|
|
|
UpdateStatusSlots();
|
2011-02-21 09:48:53 +00:00
|
|
|
SaveSlotSelectedMessage();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void previousSlotToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
PreviousSlot();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void nextSlotToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
NextSlot();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void saveToCurrentSlotToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
SaveState("QuickSave" + Global.Config.SaveSlot.ToString());
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void loadCurrentSlotToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
LoadState("QuickSave" + Global.Config.SaveSlot.ToString());
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void closeROMToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-26 01:22:52 +00:00
|
|
|
CloseROM();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void powerToolStripMenuItem_Click(object sender, EventArgs e)
|
2012-09-08 19:02:28 +00:00
|
|
|
{
|
2012-09-16 16:06:28 +00:00
|
|
|
RebootCore();
|
2012-09-08 19:02:28 +00:00
|
|
|
}
|
|
|
|
|
2013-08-28 19:32:09 +00:00
|
|
|
public void RebootCore()
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
|
|
|
LoadRom(CurrentlyOpenRom);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-06-30 02:22:12 +00:00
|
|
|
SoftReset();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
2012-09-16 16:52:30 +00:00
|
|
|
private void hardResetToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
HardReset();
|
|
|
|
}
|
|
|
|
|
2011-02-21 09:48:53 +00:00
|
|
|
private void pauseToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
if (EmulatorPaused)
|
2011-02-21 09:48:53 +00:00
|
|
|
UnpauseEmulator();
|
|
|
|
else
|
|
|
|
PauseEmulator();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void helpToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-03-04 02:52:21 +00:00
|
|
|
System.Diagnostics.Process.Start("http://tasvideos.org/BizHawk.html");
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-11 00:11:46 +00:00
|
|
|
if (INTERIM)
|
|
|
|
new AboutBox().ShowDialog();
|
|
|
|
else
|
|
|
|
new BizBox().ShowDialog();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void controllersToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-07-10 18:04:05 +00:00
|
|
|
OpenControllerConfig();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OpenControllerConfig()
|
|
|
|
{
|
2013-07-14 01:48:05 +00:00
|
|
|
config.NewControllerConfig c = new config.NewControllerConfig(Global.Emulator.ControllerDefinition);
|
2012-11-08 04:46:48 +00:00
|
|
|
c.ShowDialog();
|
|
|
|
if (c.DialogResult == DialogResult.OK)
|
2011-04-06 05:43:59 +00:00
|
|
|
{
|
2012-11-08 04:46:48 +00:00
|
|
|
InitControls();
|
|
|
|
SyncControls();
|
2011-04-06 05:43:59 +00:00
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void hotkeysToolStripMenuItem_Click(object sender, EventArgs e)
|
2013-07-10 18:04:05 +00:00
|
|
|
{
|
|
|
|
OpenHotkeyDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OpenHotkeyDialog()
|
2011-02-21 09:48:53 +00:00
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
NewHotkeyWindow h = new NewHotkeyWindow();
|
2011-02-21 09:48:53 +00:00
|
|
|
h.ShowDialog();
|
2011-06-26 01:22:52 +00:00
|
|
|
if (h.DialogResult == DialogResult.OK)
|
|
|
|
{
|
|
|
|
InitControls();
|
|
|
|
SyncControls();
|
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayFPSToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-06-26 01:22:52 +00:00
|
|
|
ToggleFPS();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayFrameCounterToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-06-26 01:22:52 +00:00
|
|
|
ToggleFrameCounter();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayInputToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-06-26 01:22:52 +00:00
|
|
|
ToggleInputDisplay();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayLagCounterToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-06-26 01:22:52 +00:00
|
|
|
ToggleLagCounter();
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void screenshotF12ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
TakeScreenshot();
|
|
|
|
}
|
|
|
|
|
2012-03-04 01:30:30 +00:00
|
|
|
private void forumsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
System.Diagnostics.Process.Start("http://tasvideos.org/forum/viewforum.php?f=64");
|
|
|
|
}
|
|
|
|
|
|
|
|
private void screenshotClipboardToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-03-18 04:08:05 +00:00
|
|
|
TakeScreenshotToClipboard();
|
2012-03-04 01:30:30 +00:00
|
|
|
}
|
|
|
|
|
2011-02-21 09:48:53 +00:00
|
|
|
private void savestate1toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave1"); }
|
|
|
|
private void savestate2toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave2"); }
|
|
|
|
private void savestate3toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave3"); }
|
|
|
|
private void savestate4toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave4"); }
|
|
|
|
private void savestate5toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave5"); }
|
|
|
|
private void savestate6toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave6"); }
|
|
|
|
private void savestate7toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave7"); }
|
|
|
|
private void savestate8toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave8"); }
|
|
|
|
private void savestate9toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave9"); }
|
|
|
|
private void savestate0toolStripMenuItem_Click(object sender, EventArgs e) { SaveState("QuickSave0"); }
|
|
|
|
|
|
|
|
private void loadstate1toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave1"); }
|
|
|
|
private void loadstate2toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave2"); }
|
|
|
|
private void loadstate3toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave3"); }
|
|
|
|
private void loadstate4toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave4"); }
|
|
|
|
private void loadstate5toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave5"); }
|
|
|
|
private void loadstate6toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave6"); }
|
|
|
|
private void loadstate7toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave7"); }
|
|
|
|
private void loadstate8toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave8"); }
|
|
|
|
private void loadstate9toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave9"); }
|
|
|
|
private void loadstate0toolStripMenuItem_Click(object sender, EventArgs e) { LoadState("QuickSave0"); }
|
|
|
|
|
|
|
|
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (RamWatch1.AskSave())
|
|
|
|
Close();
|
|
|
|
}
|
|
|
|
|
2011-03-21 00:54:30 +00:00
|
|
|
private void PPUViewerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadNESPPU();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void hexEditorToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadHexEditor();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void MainForm_Shown(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
HandlePlatformMenus();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void gameGenieCodesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGameGenieEC();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void cheatsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadCheatsWindow();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void forceGDIPPresentationToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-08-21 01:07:58 +00:00
|
|
|
Global.Config.DisplayGDI ^= true;
|
2011-03-21 00:54:30 +00:00
|
|
|
SyncPresentationMode();
|
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
|
2012-06-10 02:19:36 +00:00
|
|
|
private void miSuppressGuiLayer_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SuppressGui ^= true;
|
|
|
|
}
|
|
|
|
|
2011-06-26 01:22:52 +00:00
|
|
|
private void debuggerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadNESDebugger();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void saveStateToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
savestate1toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 1"].Bindings;
|
|
|
|
savestate2toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 2"].Bindings;
|
|
|
|
savestate3toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 3"].Bindings;
|
|
|
|
savestate4toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 4"].Bindings;
|
|
|
|
savestate5toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 5"].Bindings;
|
|
|
|
savestate6toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 6"].Bindings;
|
|
|
|
savestate7toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 7"].Bindings;
|
|
|
|
savestate8toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 8"].Bindings;
|
|
|
|
savestate9toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 9"].Bindings;
|
|
|
|
savestate0toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save State 0"].Bindings;
|
|
|
|
saveNamedStateToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save Named State"].Bindings;
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void loadStateToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
loadstate1toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 1"].Bindings;
|
|
|
|
loadstate2toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 2"].Bindings;
|
|
|
|
loadstate3toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 3"].Bindings;
|
|
|
|
loadstate4toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 4"].Bindings;
|
|
|
|
loadstate5toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 5"].Bindings;
|
|
|
|
loadstate6toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 6"].Bindings;
|
|
|
|
loadstate7toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 7"].Bindings;
|
|
|
|
loadstate8toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 8"].Bindings;
|
|
|
|
loadstate9toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 9"].Bindings;
|
|
|
|
loadstate0toolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load State 0"].Bindings;
|
|
|
|
loadNamedStateToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Load Named State"].Bindings;
|
2011-09-17 00:25:34 +00:00
|
|
|
|
|
|
|
autoLoadLastSlotToolStripMenuItem.Checked = Global.Config.AutoLoadLastSaveSlot;
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void nametableViewerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadNESNameTable();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void saveNamedStateToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
SaveStateAs();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void loadNamedStateToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadStateAs();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void toolBoxToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadToolBox();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void toolsToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
toolBoxToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["ToolBox"].Bindings;
|
|
|
|
rAMWatchToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Ram Watch"].Bindings;
|
|
|
|
rAMSearchToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Ram Search"].Bindings;
|
|
|
|
rAMPokeToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Ram Poke"].Bindings;
|
|
|
|
hexEditorToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Hex Editor"].Bindings;
|
|
|
|
luaConsoleToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Lua Console"].Bindings;
|
|
|
|
cheatsToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Cheats"].Bindings;
|
|
|
|
tAStudioToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["TAStudio"].Bindings;
|
|
|
|
virtualPadToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Virtual Pad"].Bindings;
|
2013-08-05 14:17:31 +00:00
|
|
|
traceLoggerToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Trace Logger"].Bindings;
|
2013-08-04 16:47:54 +00:00
|
|
|
toolBoxToolStripMenuItem.Enabled = !ToolBox1.IsHandleCreated || ToolBox1.IsDisposed;
|
|
|
|
traceLoggerToolStripMenuItem.Enabled = Global.Emulator.CoreComm.CpuTraceAvailable;
|
2013-08-26 20:54:00 +00:00
|
|
|
|
|
|
|
newRamWatchToolStripMenuItem.Visible = MainForm.INTERIM;
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void saveSlotToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
selectSlot10ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 0"].Bindings;
|
|
|
|
selectSlot1ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 1"].Bindings;
|
|
|
|
selectSlot2ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 2"].Bindings;
|
|
|
|
selectSlot3ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 3"].Bindings;
|
|
|
|
selectSlot4ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 4"].Bindings;
|
|
|
|
selectSlot5ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 5"].Bindings;
|
|
|
|
selectSlot6ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 6"].Bindings;
|
|
|
|
selectSlot7ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 7"].Bindings;
|
|
|
|
selectSlot8ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 8"].Bindings;
|
|
|
|
selectSlot9ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Select State 9"].Bindings;
|
|
|
|
previousSlotToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Previous Slot"].Bindings;
|
|
|
|
nextSlotToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Next Slot"].Bindings;
|
|
|
|
saveToCurrentSlotToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Quick Save"].Bindings;
|
|
|
|
loadCurrentSlotToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Quick Load"].Bindings;
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void switchToFullscreenToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
ToggleFullscreen();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void messagesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-07-10 18:04:05 +00:00
|
|
|
new MessageConfig().ShowDialog();
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void autoloadVirtualKeyboardToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (!(Global.Emulator is TI83)) return;
|
|
|
|
Global.Config.TI83autoloadKeyPad ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void keypadToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (!(Global.Emulator is TI83))
|
|
|
|
return;
|
|
|
|
LoadTI83KeyPad();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void tI83ToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
autoloadVirtualKeyboardToolStripMenuItem.Checked = Global.Config.TI83autoloadKeyPad;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void pathsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-11 21:48:17 +00:00
|
|
|
new NewPathConfig().ShowDialog();
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayRerecordCountToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-06-26 01:22:52 +00:00
|
|
|
Global.Config.DisplayRerecordCount ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void recentROMToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
//Clear out recent Roms list
|
|
|
|
//repopulate it with an up to date list
|
|
|
|
recentROMToolStripMenuItem.DropDownItems.Clear();
|
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
if (Global.Config.RecentRoms.Empty)
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
var none = new ToolStripMenuItem {Enabled = false, Text = "None"};
|
2011-06-26 01:22:52 +00:00
|
|
|
recentROMToolStripMenuItem.DropDownItems.Add(none);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2013-03-10 22:42:54 +00:00
|
|
|
for (int x = 0; x < Global.Config.RecentRoms.Count; x++)
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
|
|
|
string path = Global.Config.RecentRoms.GetRecentFileByPosition(x);
|
2013-07-16 01:59:59 +00:00
|
|
|
var item = new ToolStripMenuItem {Text = path};
|
2011-06-26 01:22:52 +00:00
|
|
|
item.Click += (o, ev) => LoadRomFromRecent(path);
|
|
|
|
recentROMToolStripMenuItem.DropDownItems.Add(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
recentROMToolStripMenuItem.DropDownItems.Add("-");
|
2013-07-16 01:59:59 +00:00
|
|
|
var clearitem = new ToolStripMenuItem {Text = "&Clear"};
|
2011-06-26 01:22:52 +00:00
|
|
|
clearitem.Click += (o, ev) => Global.Config.RecentRoms.Clear();
|
|
|
|
recentROMToolStripMenuItem.DropDownItems.Add(clearitem);
|
2013-07-16 01:59:59 +00:00
|
|
|
var auto = new ToolStripMenuItem {Text = "&Autoload Most Recent"};
|
2011-06-26 01:22:52 +00:00
|
|
|
auto.Click += (o, ev) => UpdateAutoLoadRecentRom();
|
2013-07-16 01:59:59 +00:00
|
|
|
auto.Checked = Global.Config.AutoLoadMostRecentRom;
|
2011-06-26 01:22:52 +00:00
|
|
|
recentROMToolStripMenuItem.DropDownItems.Add(auto);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void recentToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
//Clear out recent Movies list
|
|
|
|
//repopulate it with an up to date list
|
|
|
|
|
|
|
|
recentToolStripMenuItem.DropDownItems.Clear();
|
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
if (Global.Config.RecentMovies.Empty)
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
var none = new ToolStripMenuItem {Enabled = false, Text = "None"};
|
2011-06-26 01:22:52 +00:00
|
|
|
recentToolStripMenuItem.DropDownItems.Add(none);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2013-03-10 22:42:54 +00:00
|
|
|
for (int x = 0; x < Global.Config.RecentMovies.Count; x++)
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
|
|
|
string path = Global.Config.RecentMovies.GetRecentFileByPosition(x);
|
2013-07-16 01:59:59 +00:00
|
|
|
var item = new ToolStripMenuItem {Text = path};
|
2011-06-26 01:22:52 +00:00
|
|
|
item.Click += (o, ev) => LoadMoviesFromRecent(path);
|
|
|
|
recentToolStripMenuItem.DropDownItems.Add(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
recentToolStripMenuItem.DropDownItems.Add("-");
|
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
var clearitem = new ToolStripMenuItem {Text = "&Clear"};
|
2011-06-26 01:22:52 +00:00
|
|
|
clearitem.Click += (o, ev) => Global.Config.RecentMovies.Clear();
|
|
|
|
recentToolStripMenuItem.DropDownItems.Add(clearitem);
|
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
var auto = new ToolStripMenuItem {Text = "&Autoload Most Recent"};
|
2011-06-26 01:22:52 +00:00
|
|
|
auto.Click += (o, ev) => UpdateAutoLoadRecentMovie();
|
2013-07-16 01:59:59 +00:00
|
|
|
auto.Checked = Global.Config.AutoLoadMostRecentMovie;
|
2011-06-26 01:22:52 +00:00
|
|
|
recentToolStripMenuItem.DropDownItems.Add(auto);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void screenshotAsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-08-04 03:20:54 +00:00
|
|
|
string path = String.Format(PathManager.ScreenshotPrefix(Global.Game) + ".{0:yyyy-MM-dd HH.mm.ss}.png", DateTime.Now);
|
2011-06-26 01:22:52 +00:00
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
SaveFileDialog sfd = new SaveFileDialog
|
|
|
|
{
|
|
|
|
InitialDirectory = Path.GetDirectoryName(path),
|
|
|
|
FileName = Path.GetFileName(path),
|
|
|
|
Filter = "PNG File (*.png)|*.png"
|
|
|
|
};
|
2011-06-26 01:22:52 +00:00
|
|
|
|
|
|
|
Global.Sound.StopSound();
|
|
|
|
var result = sfd.ShowDialog();
|
|
|
|
Global.Sound.StartSound();
|
|
|
|
if (result != DialogResult.OK)
|
|
|
|
return;
|
2012-03-04 01:30:30 +00:00
|
|
|
TakeScreenshot(sfd.FileName);
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void runInBackgroundToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.RunInBackground ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void bindSavestatesToMoviesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.BindSavestatesToMovies ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void acceptBackgroundInputToolStripMenuItem_Click(object sender, EventArgs e)
|
2012-07-12 21:56:59 +00:00
|
|
|
{
|
|
|
|
ToggleBackgroundInput();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void ToggleBackgroundInput()
|
2011-06-26 01:22:52 +00:00
|
|
|
{
|
|
|
|
Global.Config.AcceptBackgroundInput ^= true;
|
2012-07-12 21:56:59 +00:00
|
|
|
if (Global.Config.AcceptBackgroundInput)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Background Input enabled");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Background Input disabled");
|
|
|
|
}
|
2011-06-26 01:22:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayStatusBarToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.DisplayStatusBar ^= true;
|
|
|
|
displayStatusBarToolStripMenuItem.Checked = Global.Config.DisplayStatusBar;
|
|
|
|
if (!InFullscreen)
|
|
|
|
{
|
2011-07-01 01:28:25 +00:00
|
|
|
StatusSlot0.Visible = Global.Config.DisplayStatusBar;
|
2011-06-26 01:22:52 +00:00
|
|
|
PerformLayout();
|
|
|
|
FrameBufferResized();
|
|
|
|
}
|
|
|
|
}
|
2011-06-10 23:09:10 +00:00
|
|
|
|
|
|
|
private void graphicsSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
NESGraphicsConfig g = new NESGraphicsConfig();
|
|
|
|
g.ShowDialog();
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2011-06-10 23:09:10 +00:00
|
|
|
}
|
2011-06-18 17:45:18 +00:00
|
|
|
|
2012-03-11 15:12:48 +00:00
|
|
|
private void pceGraphicsSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
PCEGraphicsConfig g = new PCEGraphicsConfig();
|
|
|
|
g.ShowDialog();
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-03-11 15:12:48 +00:00
|
|
|
}
|
|
|
|
|
2012-03-11 17:08:25 +00:00
|
|
|
private void smsGraphicsSettingsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
SMSGraphicsConfig g = new SMSGraphicsConfig();
|
|
|
|
g.ShowDialog();
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-03-11 17:08:25 +00:00
|
|
|
}
|
|
|
|
|
2011-06-18 17:45:18 +00:00
|
|
|
public void MainForm_MouseClick(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (Global.Config.ShowContextMenu && e.Button == MouseButtons.Right)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
Point p = new Point(e.X, e.Y + menuStrip1.Height);
|
|
|
|
Point po = PointToScreen(p);
|
2011-06-18 17:45:18 +00:00
|
|
|
contextMenuStrip1.Show(po);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void openRomToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
OpenROM();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void loadLastROMToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadRomFromRecent(Global.Config.RecentRoms.GetRecentFileByPosition(0));
|
|
|
|
}
|
|
|
|
|
|
|
|
private void enableContextMenuToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.ShowContextMenu ^= true;
|
2012-07-12 19:50:27 +00:00
|
|
|
if (Global.Config.ShowContextMenu)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Context menu enabled");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Context menu disabled");
|
|
|
|
}
|
2011-06-18 17:45:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void recordMovieToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
RecordMovie();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void playMovieToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
PlayMovie();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void loadLastMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadMoviesFromRecent(Global.Config.RecentMovies.GetRecentFileByPosition(0));
|
|
|
|
}
|
|
|
|
|
2011-07-04 19:20:11 +00:00
|
|
|
private void AddSubtitleToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-06-18 17:45:18 +00:00
|
|
|
{
|
2011-07-04 19:20:11 +00:00
|
|
|
SubtitleMaker s = new SubtitleMaker();
|
|
|
|
s.DisableFrame();
|
|
|
|
int index = -1;
|
|
|
|
Subtitle sub = new Subtitle();
|
2013-04-15 02:14:14 +00:00
|
|
|
for (int x = 0; x < Global.MovieSession.Movie.Subtitles.Count; x++)
|
2011-07-04 19:20:11 +00:00
|
|
|
{
|
2011-09-03 18:07:30 +00:00
|
|
|
sub = Global.MovieSession.Movie.Subtitles.GetSubtitleByIndex(x);
|
2011-07-04 19:20:11 +00:00
|
|
|
if (Global.Emulator.Frame == sub.Frame)
|
|
|
|
{
|
|
|
|
index = x;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (index < 0)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
sub = new Subtitle {Frame = Global.Emulator.Frame};
|
2011-07-04 19:20:11 +00:00
|
|
|
}
|
|
|
|
s.sub = sub;
|
|
|
|
|
|
|
|
if (s.ShowDialog() == DialogResult.OK)
|
|
|
|
{
|
|
|
|
if (index >= 0)
|
2011-09-03 18:07:30 +00:00
|
|
|
Global.MovieSession.Movie.Subtitles.Remove(index);
|
|
|
|
Global.MovieSession.Movie.Subtitles.AddSubtitle(s.sub);
|
2011-07-04 19:20:11 +00:00
|
|
|
}
|
2011-06-18 17:45:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void closeROMToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
CloseROM();
|
|
|
|
}
|
|
|
|
|
2011-07-24 00:58:48 +00:00
|
|
|
|
2012-03-18 04:08:05 +00:00
|
|
|
private void screenshotToClipboardToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
TakeScreenshotToClipboard();
|
|
|
|
}
|
|
|
|
|
2011-07-24 00:58:48 +00:00
|
|
|
private void restartMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
PlayMovieFromBeginning();
|
|
|
|
}
|
|
|
|
|
2011-06-18 17:45:18 +00:00
|
|
|
private void contextMenuStrip1_Opening(object sender, System.ComponentModel.CancelEventArgs e)
|
|
|
|
{
|
2013-07-10 18:04:05 +00:00
|
|
|
wasPaused = EmulatorPaused;
|
2011-06-19 01:39:36 +00:00
|
|
|
didMenuPause = true;
|
|
|
|
PauseEmulator();
|
|
|
|
|
2012-03-23 22:06:42 +00:00
|
|
|
//TODO - MUST refactor this to hide all and then view a set depending on the state
|
|
|
|
|
2013-07-10 18:04:05 +00:00
|
|
|
configToolStripMenuItem1.Visible = InFullscreen;
|
|
|
|
|
2011-06-18 17:45:18 +00:00
|
|
|
if (IsNullEmulator())
|
|
|
|
{
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiOpenRom.Visible = true;
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiLoadLastRom.Visible = true;
|
2012-03-23 22:06:42 +00:00
|
|
|
toolStripSeparator_afterRomLoading.Visible = false;
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiRecordMovie.Visible = false;
|
|
|
|
cmiPlayMovie.Visible = false;
|
|
|
|
cmiRestartMovie.Visible = false;
|
|
|
|
cmiStopMovie.Visible = false;
|
|
|
|
cmiLoadLastMovie.Visible = false;
|
|
|
|
cmiMakeMovieBackup.Visible = false;
|
|
|
|
cmiViewSubtitles.Visible = false;
|
|
|
|
cmiViewComments.Visible = false;
|
2012-03-23 22:06:42 +00:00
|
|
|
toolStripSeparator_afterMovie.Visible = false;
|
|
|
|
cmiAddSubtitle.Visible = false;
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiUndoSavestate.Visible = false;
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiSeparator20.Visible = false;
|
|
|
|
cmiScreenshot.Visible = false;
|
|
|
|
cmiScreenshotClipboard.Visible = false;
|
|
|
|
cmiCloseRom.Visible = false;
|
|
|
|
cmiShowMenu.Visible = false;
|
2012-12-23 02:49:08 +00:00
|
|
|
saveMovieToolStripMenuItem1.Visible = false;
|
2011-06-18 17:45:18 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
cmiOpenRom.Visible = InFullscreen;
|
|
|
|
configToolStripMenuItem1.Visible = InFullscreen;
|
2012-11-28 02:00:08 +00:00
|
|
|
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiLoadLastRom.Visible = false;
|
2012-03-23 22:06:42 +00:00
|
|
|
toolStripSeparator_afterRomLoading.Visible = false;
|
2011-06-18 17:45:18 +00:00
|
|
|
|
2012-09-03 19:42:53 +00:00
|
|
|
if (Global.MovieSession.Movie.IsActive)
|
2011-06-18 17:45:18 +00:00
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiRecordMovie.Visible = false;
|
|
|
|
cmiPlayMovie.Visible = false;
|
|
|
|
cmiRestartMovie.Visible = true;
|
|
|
|
cmiStopMovie.Visible = true;
|
|
|
|
cmiLoadLastMovie.Visible = false;
|
|
|
|
cmiMakeMovieBackup.Visible = true;
|
|
|
|
cmiViewSubtitles.Visible = true;
|
|
|
|
cmiViewComments.Visible = true;
|
2012-10-28 23:38:41 +00:00
|
|
|
saveMovieToolStripMenuItem1.Visible = true;
|
2012-03-23 22:06:42 +00:00
|
|
|
toolStripSeparator_afterMovie.Visible = true;
|
2013-07-16 01:59:59 +00:00
|
|
|
if (ReadOnly)
|
2011-06-26 21:11:12 +00:00
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiViewSubtitles.Text = "View Subtitles";
|
|
|
|
cmiViewComments.Text = "View Comments";
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiAddSubtitle.Visible = false;
|
2011-06-26 21:11:12 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiViewSubtitles.Text = "Edit Subtitles";
|
|
|
|
cmiViewComments.Text = "Edit Comments";
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiAddSubtitle.Visible = true;
|
2011-06-26 21:11:12 +00:00
|
|
|
}
|
2011-06-18 17:45:18 +00:00
|
|
|
}
|
2012-09-03 19:42:53 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
cmiRecordMovie.Visible = true;
|
|
|
|
cmiPlayMovie.Visible = true;
|
|
|
|
cmiRestartMovie.Visible = false;
|
|
|
|
cmiStopMovie.Visible = false;
|
|
|
|
cmiLoadLastMovie.Visible = true;
|
|
|
|
cmiMakeMovieBackup.Visible = false;
|
|
|
|
cmiViewSubtitles.Visible = false;
|
|
|
|
cmiViewComments.Visible = false;
|
|
|
|
toolStripSeparator_afterMovie.Visible = true;
|
|
|
|
cmiAddSubtitle.Visible = false;
|
2012-10-28 23:38:41 +00:00
|
|
|
saveMovieToolStripMenuItem1.Visible = false;
|
2012-09-03 19:42:53 +00:00
|
|
|
}
|
2011-06-18 17:45:18 +00:00
|
|
|
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiUndoSavestate.Visible = true;
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiSeparator20.Visible = true;
|
|
|
|
cmiScreenshot.Visible = true;
|
|
|
|
cmiScreenshotClipboard.Visible = true;
|
|
|
|
cmiCloseRom.Visible = true;
|
2011-06-18 17:45:18 +00:00
|
|
|
}
|
2011-06-21 02:09:53 +00:00
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
cmiLoadLastRom.Enabled = !Global.Config.RecentRoms.Empty;
|
|
|
|
cmiLoadLastMovie.Enabled = !Global.Config.RecentMovies.Empty;
|
2011-06-21 02:09:53 +00:00
|
|
|
|
2011-09-17 00:04:50 +00:00
|
|
|
string path = PathManager.SaveStatePrefix(Global.Game) + "." + "QuickSave" + Global.Config.SaveSlot + ".State.bak";
|
2011-07-31 22:29:56 +00:00
|
|
|
var file = new FileInfo(path);
|
2013-07-16 01:59:59 +00:00
|
|
|
if (file.Exists)
|
2011-07-31 22:29:56 +00:00
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
if (StateSlots.IsRedo(Global.Config.SaveSlot))
|
2011-07-31 23:25:00 +00:00
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiUndoSavestate.Enabled = true;
|
|
|
|
cmiUndoSavestate.Text = "Redo Save to slot " + Global.Config.SaveSlot.ToString();
|
2013-07-16 01:59:59 +00:00
|
|
|
cmiUndoSavestate.Image = Properties.Resources.redo;
|
2011-07-31 23:25:00 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiUndoSavestate.Enabled = true;
|
|
|
|
cmiUndoSavestate.Text = "Undo Save to slot " + Global.Config.SaveSlot.ToString();
|
2013-07-16 01:59:59 +00:00
|
|
|
cmiUndoSavestate.Image = Properties.Resources.undo;
|
2011-07-31 23:25:00 +00:00
|
|
|
}
|
2011-07-31 22:29:56 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-03-24 03:18:02 +00:00
|
|
|
cmiUndoSavestate.Enabled = false;
|
|
|
|
cmiUndoSavestate.Text = "Undo Savestate";
|
2013-07-16 01:59:59 +00:00
|
|
|
cmiUndoSavestate.Image = Properties.Resources.undo;
|
2011-07-31 22:29:56 +00:00
|
|
|
}
|
2011-09-24 23:00:59 +00:00
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
if (InFullscreen)
|
2011-09-24 23:00:59 +00:00
|
|
|
{
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiShowMenu.Visible = true;
|
2013-07-16 01:59:59 +00:00
|
|
|
if (MainMenuStrip.Visible)
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiShowMenu.Text = "Hide Menu";
|
2011-09-24 23:00:59 +00:00
|
|
|
else
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiShowMenu.Text = "Show Menu";
|
2011-09-24 23:00:59 +00:00
|
|
|
}
|
|
|
|
else
|
2013-03-10 22:42:54 +00:00
|
|
|
{
|
2012-03-23 22:06:42 +00:00
|
|
|
cmiShowMenu.Visible = false;
|
2013-03-10 22:42:54 +00:00
|
|
|
}
|
2013-03-10 23:03:52 +00:00
|
|
|
|
|
|
|
if (Global.MovieSession.Movie.IsActive && Global.MovieSession.Movie.HasChanges)
|
|
|
|
{
|
|
|
|
ContextMenuStopMovieNoSaving.Visible = true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ContextMenuStopMovieNoSaving.Visible = false;
|
|
|
|
}
|
2011-06-18 18:27:51 +00:00
|
|
|
}
|
|
|
|
|
2011-06-19 01:39:36 +00:00
|
|
|
|
|
|
|
private void contextMenuStrip1_Closing(object sender, ToolStripDropDownClosingEventArgs e)
|
|
|
|
{
|
|
|
|
if (!wasPaused)
|
|
|
|
{
|
|
|
|
UnpauseEmulator();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-06-18 18:27:51 +00:00
|
|
|
private void makeMovieBackupToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-03 18:07:30 +00:00
|
|
|
Global.MovieSession.Movie.WriteBackup();
|
2011-06-18 19:16:05 +00:00
|
|
|
}
|
2011-06-26 01:22:52 +00:00
|
|
|
|
2011-06-18 19:16:05 +00:00
|
|
|
private void automaticallyBackupMoviesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.EnableBackupMovies ^= true;
|
|
|
|
}
|
2011-06-19 20:13:54 +00:00
|
|
|
|
|
|
|
private void stopMovieToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-07-22 01:34:21 +00:00
|
|
|
StopMovie();
|
2011-06-19 20:13:54 +00:00
|
|
|
}
|
2011-07-09 19:54:24 +00:00
|
|
|
|
2011-07-11 23:26:20 +00:00
|
|
|
private void displayLogWindowToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.ShowLogWindow ^= true;
|
|
|
|
displayLogWindowToolStripMenuItem.Checked = Global.Config.ShowLogWindow;
|
|
|
|
if (Global.Config.ShowLogWindow)
|
2012-03-09 21:36:55 +00:00
|
|
|
ShowConsole();
|
2011-07-11 23:26:20 +00:00
|
|
|
else
|
2012-03-09 21:36:55 +00:00
|
|
|
HideConsole();
|
2011-07-11 23:26:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void PauseStrip_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
TogglePause();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void displaySubtitlesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-07-11 23:26:20 +00:00
|
|
|
Global.Config.DisplaySubtitles ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void aVIWAVToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
recordAVIToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Record A/V"].Bindings;
|
|
|
|
stopAVIToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Stop A/V"].Bindings;
|
2012-09-22 00:07:02 +00:00
|
|
|
captureOSDToolStripMenuItem.Checked = Global.Config.AVI_CaptureOSD;
|
2011-07-12 00:10:02 +00:00
|
|
|
|
2011-07-11 23:26:20 +00:00
|
|
|
if (CurrAviWriter == null)
|
|
|
|
{
|
|
|
|
recordAVIToolStripMenuItem.Enabled = true;
|
|
|
|
stopAVIToolStripMenuItem.Enabled = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
recordAVIToolStripMenuItem.Enabled = false;
|
|
|
|
stopAVIToolStripMenuItem.Enabled = true;
|
|
|
|
}
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
|
|
|
|
private void viewCommentsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-03 19:42:53 +00:00
|
|
|
if (Global.MovieSession.Movie.IsActive)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
EditCommentsForm c = new EditCommentsForm {ReadOnly = ReadOnly};
|
2012-09-03 19:42:53 +00:00
|
|
|
c.GetMovie(Global.MovieSession.Movie);
|
|
|
|
c.ShowDialog();
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void viewSubtitlesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-03 19:42:53 +00:00
|
|
|
if (Global.MovieSession.Movie.IsActive)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
EditSubtitlesForm s = new EditSubtitlesForm {ReadOnly = ReadOnly};
|
2012-09-03 19:42:53 +00:00
|
|
|
s.GetMovie(Global.MovieSession.Movie);
|
|
|
|
s.ShowDialog();
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void tAStudioToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadTAStudio();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void singleInstanceModeToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SingleInstanceMode ^= true;
|
2013-08-27 00:47:18 +00:00
|
|
|
|
|
|
|
MessageBox.Show("BizHawk must be restarted for this setting to take effect.", "Reboot Required", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void MainForm_Deactivate(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (!Global.Config.RunInBackground)
|
2012-07-25 00:45:05 +00:00
|
|
|
{
|
|
|
|
if (EmulatorPaused)
|
|
|
|
{
|
|
|
|
wasPaused = true;
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
PauseEmulator();
|
2012-07-25 00:45:05 +00:00
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void MainForm_Activated(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (!Global.Config.RunInBackground)
|
2012-07-25 00:45:05 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
if (!wasPaused)
|
|
|
|
{
|
|
|
|
UnpauseEmulator();
|
|
|
|
}
|
|
|
|
wasPaused = false;
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void readonlyToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
ToggleReadOnly();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void movieToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-04 16:47:54 +00:00
|
|
|
fullMovieLoadstatesToolStripMenuItem.Enabled = !Global.MovieSession.MultiTrack.IsActive;
|
|
|
|
stopMovieWithoutSavingToolStripMenuItem.Enabled = Global.MovieSession.Movie.IsActive && Global.MovieSession.Movie.HasChanges;
|
|
|
|
stopMovieToolStripMenuItem.Enabled
|
|
|
|
= playFromBeginningToolStripMenuItem.Enabled
|
|
|
|
= saveMovieToolStripMenuItem.Enabled
|
|
|
|
= Global.MovieSession.Movie.IsActive;
|
2011-07-22 01:34:21 +00:00
|
|
|
|
|
|
|
readonlyToolStripMenuItem.Checked = ReadOnly;
|
|
|
|
bindSavestatesToMoviesToolStripMenuItem.Checked = Global.Config.BindSavestatesToMovies;
|
|
|
|
automaticallyBackupMoviesToolStripMenuItem.Checked = Global.Config.EnableBackupMovies;
|
2013-03-09 19:54:50 +00:00
|
|
|
fullMovieLoadstatesToolStripMenuItem.Checked = Global.Config.VBAStyleMovieLoadState;
|
2013-03-10 23:03:52 +00:00
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
readonlyToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle read-only"].Bindings;
|
|
|
|
recordMovieToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Record Movie"].Bindings;
|
|
|
|
playMovieToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Play Movie"].Bindings;
|
|
|
|
stopMovieToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Stop Movie"].Bindings;
|
|
|
|
playFromBeginningToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Play from beginning"].Bindings;
|
|
|
|
saveMovieToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Save Movie"].Bindings;
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void saveConfigToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
SaveConfig();
|
2012-04-16 08:18:41 +00:00
|
|
|
Global.OSD.AddMessage("Saved settings");
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void loadConfigToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
Global.Config = ConfigService.Load(PathManager.DefaultIniPath, Global.Config);
|
2013-08-11 19:55:13 +00:00
|
|
|
Global.Config.ResolveDefaults();
|
2012-10-08 00:27:21 +00:00
|
|
|
Global.OSD.AddMessage("Config file loaded");
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void frameSkipToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
miAutoMinimizeSkipping.Checked = Global.Config.AutoMinimizeSkipping;
|
2012-11-12 17:57:11 +00:00
|
|
|
miLimitFramerate.Checked = Global.Config.ClockThrottle;
|
|
|
|
miDisplayVsync.Checked = Global.Config.VSyncThrottle;
|
2011-07-22 01:34:21 +00:00
|
|
|
miFrameskip0.Checked = Global.Config.FrameSkip == 0;
|
|
|
|
miFrameskip1.Checked = Global.Config.FrameSkip == 1;
|
|
|
|
miFrameskip2.Checked = Global.Config.FrameSkip == 2;
|
|
|
|
miFrameskip3.Checked = Global.Config.FrameSkip == 3;
|
|
|
|
miFrameskip4.Checked = Global.Config.FrameSkip == 4;
|
|
|
|
miFrameskip5.Checked = Global.Config.FrameSkip == 5;
|
|
|
|
miFrameskip6.Checked = Global.Config.FrameSkip == 6;
|
|
|
|
miFrameskip7.Checked = Global.Config.FrameSkip == 7;
|
|
|
|
miFrameskip8.Checked = Global.Config.FrameSkip == 8;
|
|
|
|
miFrameskip9.Checked = Global.Config.FrameSkip == 9;
|
2012-11-12 17:57:11 +00:00
|
|
|
miAutoMinimizeSkipping.Enabled = !miFrameskip0.Checked;
|
|
|
|
if (!miAutoMinimizeSkipping.Enabled) miAutoMinimizeSkipping.Checked = true;
|
|
|
|
audioThrottleToolStripMenuItem.Enabled = Global.Config.SoundEnabled;
|
|
|
|
audioThrottleToolStripMenuItem.Checked = Global.Config.SoundThrottle;
|
|
|
|
vSyncEnabledToolStripMenuItem.Checked = Global.Config.VSync;
|
|
|
|
|
2011-07-22 01:34:21 +00:00
|
|
|
miSpeed100.Checked = Global.Config.SpeedPercent == 100;
|
2013-07-16 01:59:59 +00:00
|
|
|
miSpeed100.Image = (Global.Config.SpeedPercentAlternate == 100) ? Properties.Resources.FastForward : null;
|
2011-07-22 01:34:21 +00:00
|
|
|
miSpeed150.Checked = Global.Config.SpeedPercent == 150;
|
2013-07-16 01:59:59 +00:00
|
|
|
miSpeed150.Image = (Global.Config.SpeedPercentAlternate == 150) ? Properties.Resources.FastForward : null;
|
2011-07-22 01:34:21 +00:00
|
|
|
miSpeed200.Checked = Global.Config.SpeedPercent == 200;
|
2013-07-16 01:59:59 +00:00
|
|
|
miSpeed200.Image = (Global.Config.SpeedPercentAlternate == 200) ? Properties.Resources.FastForward : null;
|
2011-07-22 01:34:21 +00:00
|
|
|
miSpeed75.Checked = Global.Config.SpeedPercent == 75;
|
2013-07-16 01:59:59 +00:00
|
|
|
miSpeed75.Image = (Global.Config.SpeedPercentAlternate == 75) ? Properties.Resources.FastForward : null;
|
2011-07-22 01:34:21 +00:00
|
|
|
miSpeed50.Checked = Global.Config.SpeedPercent == 50;
|
2013-07-16 01:59:59 +00:00
|
|
|
miSpeed50.Image = (Global.Config.SpeedPercentAlternate == 50) ? Properties.Resources.FastForward : null;
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void gUIToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
pauseWhenMenuActivatedToolStripMenuItem.Checked = Global.Config.PauseWhenMenuActivated;
|
|
|
|
startPausedToolStripMenuItem.Checked = Global.Config.StartPaused;
|
2012-05-31 01:51:47 +00:00
|
|
|
saveWindowPositionToolStripMenuItem.Checked = Global.Config.SaveWindowPosition;
|
2011-08-21 01:07:58 +00:00
|
|
|
forceGDIPPresentationToolStripMenuItem.Checked = Global.Config.DisplayGDI;
|
2012-10-01 02:30:25 +00:00
|
|
|
blurryToolStripMenuItem.Checked = Global.Config.DispBlurry;
|
2012-06-10 02:19:36 +00:00
|
|
|
miSuppressGuiLayer.Checked = Global.Config.SuppressGui;
|
2012-05-31 01:51:47 +00:00
|
|
|
showMenuInFullScreenToolStripMenuItem.Checked = Global.Config.ShowMenuInFullscreen;
|
|
|
|
runInBackgroundToolStripMenuItem.Checked = Global.Config.RunInBackground;
|
2011-07-22 01:34:21 +00:00
|
|
|
acceptBackgroundInputToolStripMenuItem.Checked = Global.Config.AcceptBackgroundInput;
|
|
|
|
singleInstanceModeToolStripMenuItem.Checked = Global.Config.SingleInstanceMode;
|
2012-05-31 01:51:47 +00:00
|
|
|
logWindowAsConsoleToolStripMenuItem.Checked = Global.Config.WIN32_CONSOLE;
|
2012-07-10 17:22:23 +00:00
|
|
|
neverBeAskedToSaveChangesToolStripMenuItem.Checked = Global.Config.SupressAskSave;
|
2012-07-12 22:09:15 +00:00
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
acceptBackgroundInputToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle BG Input"].Bindings;
|
2012-05-31 01:51:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void enableToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2011-07-22 01:34:21 +00:00
|
|
|
enableContextMenuToolStripMenuItem.Checked = Global.Config.ShowContextMenu;
|
2011-07-31 21:39:54 +00:00
|
|
|
backupSavestatesToolStripMenuItem.Checked = Global.Config.BackupSavestates;
|
2012-03-24 12:20:21 +00:00
|
|
|
autoSavestatesToolStripMenuItem.Checked = Global.Config.AutoSavestates;
|
2011-09-21 00:48:40 +00:00
|
|
|
saveScreenshotWithSavestatesToolStripMenuItem.Checked = Global.Config.SaveScreenshotWithStates;
|
2012-09-15 14:48:09 +00:00
|
|
|
frameAdvanceSkipLagFramesToolStripMenuItem.Checked = Global.Config.SkipLagFrame;
|
2012-09-29 15:32:44 +00:00
|
|
|
backupSaveramToolStripMenuItem.Checked = Global.Config.BackupSaveram;
|
2012-05-31 01:51:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void frameAdvanceSkipLagFramesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SkipLagFrame ^= true;
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void menuStrip1_MenuActivate(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
HandlePlatformMenus();
|
|
|
|
if (Global.Config.PauseWhenMenuActivated)
|
|
|
|
{
|
|
|
|
if (EmulatorPaused)
|
|
|
|
wasPaused = true;
|
|
|
|
else
|
|
|
|
wasPaused = false;
|
|
|
|
didMenuPause = true;
|
|
|
|
PauseEmulator();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void menuStrip1_MenuDeactivate(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-23 02:40:14 +00:00
|
|
|
Global.DisplayManager.NeedsToPaint = true;
|
2011-07-22 01:34:21 +00:00
|
|
|
if (!wasPaused)
|
|
|
|
{
|
|
|
|
UnpauseEmulator();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void viewToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
displayFPSToolStripMenuItem.Checked = Global.Config.DisplayFPS;
|
|
|
|
displayFrameCounterToolStripMenuItem.Checked = Global.Config.DisplayFrameCounter;
|
|
|
|
displayLagCounterToolStripMenuItem.Checked = Global.Config.DisplayLagCounter;
|
|
|
|
displayInputToolStripMenuItem.Checked = Global.Config.DisplayInput;
|
|
|
|
displayRerecordCountToolStripMenuItem.Checked = Global.Config.DisplayRerecordCount;
|
|
|
|
displaySubtitlesToolStripMenuItem.Checked = Global.Config.DisplaySubtitles;
|
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
displayFPSToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Display FPS"].Bindings;
|
|
|
|
displayFrameCounterToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Frame Counter"].Bindings;
|
|
|
|
displayLagCounterToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Lag Counter"].Bindings;
|
|
|
|
displayInputToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Input Display"].Bindings;
|
|
|
|
switchToFullscreenToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Full Screen"].Bindings;
|
2011-07-22 01:34:21 +00:00
|
|
|
|
|
|
|
x1MenuItem.Checked = false;
|
|
|
|
x2MenuItem.Checked = false;
|
|
|
|
x3MenuItem.Checked = false;
|
|
|
|
x4MenuItem.Checked = false;
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void fileToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (IsNullEmulator())
|
|
|
|
{
|
2012-05-31 01:13:25 +00:00
|
|
|
movieToolStripMenuItem.Enabled = false;
|
|
|
|
AVIWAVToolStripMenuItem.Enabled = false;
|
|
|
|
screenshotToolStripMenuItem.Enabled = false;
|
2011-07-22 01:34:21 +00:00
|
|
|
closeROMToolStripMenuItem.Enabled = false;
|
|
|
|
saveToCurrentSlotToolStripMenuItem.Enabled = false;
|
|
|
|
loadCurrentSlotToolStripMenuItem.Enabled = false;
|
|
|
|
loadNamedStateToolStripMenuItem.Enabled = false;
|
|
|
|
saveNamedStateToolStripMenuItem.Enabled = false;
|
|
|
|
savestate1toolStripMenuItem.Enabled = false;
|
|
|
|
savestate2toolStripMenuItem.Enabled = false;
|
|
|
|
savestate3toolStripMenuItem.Enabled = false;
|
|
|
|
savestate4toolStripMenuItem.Enabled = false;
|
|
|
|
savestate5toolStripMenuItem.Enabled = false;
|
|
|
|
savestate6toolStripMenuItem.Enabled = false;
|
|
|
|
savestate7toolStripMenuItem.Enabled = false;
|
|
|
|
savestate8toolStripMenuItem.Enabled = false;
|
|
|
|
savestate9toolStripMenuItem.Enabled = false;
|
|
|
|
savestate0toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate1toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate2toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate3toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate4toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate5toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate6toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate7toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate8toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate9toolStripMenuItem.Enabled = false;
|
|
|
|
loadstate0toolStripMenuItem.Enabled = false;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2012-05-31 01:13:25 +00:00
|
|
|
movieToolStripMenuItem.Enabled = true;
|
|
|
|
AVIWAVToolStripMenuItem.Enabled = true;
|
|
|
|
screenshotToolStripMenuItem.Enabled = true;
|
2011-07-22 01:34:21 +00:00
|
|
|
closeROMToolStripMenuItem.Enabled = true;
|
|
|
|
saveToCurrentSlotToolStripMenuItem.Enabled = true;
|
|
|
|
loadCurrentSlotToolStripMenuItem.Enabled = true;
|
|
|
|
loadNamedStateToolStripMenuItem.Enabled = true;
|
|
|
|
saveNamedStateToolStripMenuItem.Enabled = true;
|
|
|
|
savestate1toolStripMenuItem.Enabled = true;
|
|
|
|
savestate2toolStripMenuItem.Enabled = true;
|
|
|
|
savestate3toolStripMenuItem.Enabled = true;
|
|
|
|
savestate4toolStripMenuItem.Enabled = true;
|
|
|
|
savestate5toolStripMenuItem.Enabled = true;
|
|
|
|
savestate6toolStripMenuItem.Enabled = true;
|
|
|
|
savestate7toolStripMenuItem.Enabled = true;
|
|
|
|
savestate8toolStripMenuItem.Enabled = true;
|
|
|
|
savestate9toolStripMenuItem.Enabled = true;
|
|
|
|
savestate0toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate1toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate2toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate3toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate4toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate5toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate6toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate7toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate8toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate9toolStripMenuItem.Enabled = true;
|
|
|
|
loadstate0toolStripMenuItem.Enabled = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
selectSlot10ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot1ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot2ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot3ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot4ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot5ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot6ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot7ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot8ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot9ToolStripMenuItem.Checked = false;
|
|
|
|
selectSlot1ToolStripMenuItem.Checked = false;
|
|
|
|
|
2011-09-17 00:04:50 +00:00
|
|
|
switch (Global.Config.SaveSlot)
|
2011-07-22 01:34:21 +00:00
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
selectSlot10ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
selectSlot1ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
selectSlot2ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
selectSlot3ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
selectSlot4ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
selectSlot5ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
selectSlot6ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 7:
|
|
|
|
selectSlot7ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 8:
|
|
|
|
selectSlot8ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
case 9:
|
|
|
|
selectSlot9ToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2013-07-16 01:59:59 +00:00
|
|
|
autoloadMostRecentToolStripMenuItem.Checked = Global.Config.AutoLoadMostRecentRom;
|
2013-08-04 16:47:54 +00:00
|
|
|
screenshotF12ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Screenshot"].Bindings;
|
|
|
|
openROMToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Open ROM"].Bindings;
|
|
|
|
closeROMToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Close ROM"].Bindings;
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void emulationToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-16 16:06:28 +00:00
|
|
|
rebootCoreToolStripMenuItem.Enabled = !IsNullEmulator();
|
2012-09-17 23:03:38 +00:00
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
resetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Reset") &&
|
|
|
|
(!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished);
|
2012-09-17 23:03:38 +00:00
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
|
|
|
|
hardResetToolStripMenuItem.Enabled = Global.Emulator.ControllerDefinition.BoolButtons.Contains("Power") &&
|
|
|
|
(!Global.MovieSession.Movie.IsPlaying || Global.MovieSession.Movie.IsFinished);
|
2011-07-22 01:34:21 +00:00
|
|
|
|
|
|
|
pauseToolStripMenuItem.Checked = EmulatorPaused;
|
2012-09-17 23:03:38 +00:00
|
|
|
if (didMenuPause)
|
|
|
|
{
|
|
|
|
pauseToolStripMenuItem.Checked = wasPaused;
|
|
|
|
}
|
2011-07-22 01:34:21 +00:00
|
|
|
|
2013-08-04 16:47:54 +00:00
|
|
|
pauseToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Pause"].Bindings;
|
|
|
|
rebootCoreToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Reboot Core"].Bindings;
|
|
|
|
resetToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Soft Reset"].Bindings;
|
|
|
|
hardResetToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Hard Reset"].Bindings;
|
2011-07-22 01:34:21 +00:00
|
|
|
}
|
|
|
|
|
2012-03-11 16:30:55 +00:00
|
|
|
private void pCEToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
pceAlwaysPerformSpriteLimitToolStripMenuItem.Checked = Global.Config.PceSpriteLimit;
|
|
|
|
pceAlwaysEqualizeVolumesToolStripMenuItem.Checked = Global.Config.PceEqualizeVolume;
|
|
|
|
pceArcadeCardRewindEnableHackToolStripMenuItem.Checked = Global.Config.PceArcadeCardRewindHack;
|
|
|
|
}
|
|
|
|
|
2012-03-11 17:19:15 +00:00
|
|
|
private void sMSToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
smsEnableFMChipToolStripMenuItem.Checked = Global.Config.SmsEnableFM;
|
|
|
|
smsOverclockWhenKnownSafeToolStripMenuItem.Checked = Global.Config.SmsAllowOverlock;
|
|
|
|
smsForceStereoSeparationToolStripMenuItem.Checked = Global.Config.SmsForceStereoSeparation;
|
|
|
|
smsSpriteLimitToolStripMenuItem.Checked = Global.Config.SmsSpriteLimit;
|
2012-10-06 12:27:56 +00:00
|
|
|
showClippedRegionsToolStripMenuItem.Checked = Global.Config.GGShowClippedRegions;
|
2012-10-06 12:37:38 +00:00
|
|
|
highlightActiveDisplayRegionToolStripMenuItem.Checked = Global.Config.GGHighlightActiveDisplayRegion;
|
2012-10-06 12:27:56 +00:00
|
|
|
|
|
|
|
if (Global.Game.System == "GG")
|
|
|
|
{
|
|
|
|
smsEnableFMChipToolStripMenuItem.Visible = false;
|
|
|
|
smsOverclockWhenKnownSafeToolStripMenuItem.Visible = false;
|
|
|
|
smsForceStereoSeparationToolStripMenuItem.Visible = false;
|
|
|
|
|
|
|
|
showClippedRegionsToolStripMenuItem.Visible = true;
|
2012-10-06 12:37:38 +00:00
|
|
|
highlightActiveDisplayRegionToolStripMenuItem.Visible = true;
|
2013-04-24 20:41:23 +00:00
|
|
|
GGgameGenieEncoderDecoderToolStripMenuItem.Visible = true;
|
2012-10-06 12:27:56 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
smsEnableFMChipToolStripMenuItem.Visible = true;
|
|
|
|
smsOverclockWhenKnownSafeToolStripMenuItem.Visible = true;
|
|
|
|
smsForceStereoSeparationToolStripMenuItem.Visible = true;
|
|
|
|
|
|
|
|
showClippedRegionsToolStripMenuItem.Visible = false;
|
2012-10-06 12:37:38 +00:00
|
|
|
highlightActiveDisplayRegionToolStripMenuItem.Visible = false;
|
2013-04-24 20:41:23 +00:00
|
|
|
GGgameGenieEncoderDecoderToolStripMenuItem.Visible = false;
|
2012-10-06 12:27:56 +00:00
|
|
|
}
|
|
|
|
|
2012-03-11 17:19:15 +00:00
|
|
|
}
|
|
|
|
|
2011-07-22 01:34:21 +00:00
|
|
|
protected override void OnClosed(EventArgs e)
|
|
|
|
{
|
|
|
|
exit = true;
|
|
|
|
base.OnClosed(e);
|
|
|
|
}
|
2011-07-31 21:39:54 +00:00
|
|
|
|
|
|
|
private void backupSavestatesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.BackupSavestates ^= true;
|
2012-07-12 19:50:27 +00:00
|
|
|
if (Global.Config.BackupSavestates)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Backup savestates enabled");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Backup savestates disabled");
|
|
|
|
}
|
2011-07-31 21:39:54 +00:00
|
|
|
}
|
2011-07-31 22:29:56 +00:00
|
|
|
|
2012-05-31 01:51:47 +00:00
|
|
|
void autoSavestatesToolStripMenuItem_Click(object sender, EventArgs e)
|
2011-10-15 23:17:15 +00:00
|
|
|
{
|
|
|
|
Global.Config.AutoSavestates ^= true;
|
2012-07-12 19:50:27 +00:00
|
|
|
if (Global.Config.AutoSavestates)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("AutoSavestates enabled");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("AutoSavestates disabled");
|
|
|
|
}
|
2011-10-15 23:17:15 +00:00
|
|
|
}
|
|
|
|
|
2011-09-24 23:00:59 +00:00
|
|
|
void screenshotWithSavestatesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SaveScreenshotWithStates ^= true;
|
2012-07-12 19:50:27 +00:00
|
|
|
if (Global.Config.SaveScreenshotWithStates)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Screenshots will be saved in savestates");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Screenshots will not be saved in savestates");
|
|
|
|
}
|
2011-09-24 23:00:59 +00:00
|
|
|
}
|
2011-09-15 23:32:21 +00:00
|
|
|
|
2011-07-31 22:29:56 +00:00
|
|
|
private void undoSavestateToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-17 00:04:50 +00:00
|
|
|
string path = PathManager.SaveStatePrefix(Global.Game) + "." + "QuickSave" + Global.Config.SaveSlot + ".State";
|
2011-07-31 22:29:56 +00:00
|
|
|
SwapBackupSavestate(path);
|
2012-04-16 08:18:41 +00:00
|
|
|
Global.OSD.AddMessage("Save slot " + Global.Config.SaveSlot.ToString() + " restored.");
|
2011-07-31 22:29:56 +00:00
|
|
|
}
|
2011-08-09 23:27:47 +00:00
|
|
|
|
|
|
|
private void FreezeStatus_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-29 22:37:34 +00:00
|
|
|
if (CheatStatus.Visible)
|
|
|
|
{
|
|
|
|
LoadCheatsWindow();
|
|
|
|
}
|
2011-08-09 23:27:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public void UpdateCheatStatus()
|
|
|
|
{
|
2012-09-23 15:09:29 +00:00
|
|
|
if (Global.CheatList.HasActiveCheats)
|
2011-08-09 23:27:47 +00:00
|
|
|
{
|
|
|
|
CheatStatus.ToolTipText = "Cheats are currently active";
|
2013-07-16 01:59:59 +00:00
|
|
|
CheatStatus.Image = Properties.Resources.Freeze;
|
2012-09-29 22:37:34 +00:00
|
|
|
CheatStatus.Visible = true;
|
2011-08-09 23:27:47 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
CheatStatus.ToolTipText = "";
|
2013-07-16 01:59:59 +00:00
|
|
|
CheatStatus.Image = Properties.Resources.Blank;
|
2012-09-29 22:37:34 +00:00
|
|
|
CheatStatus.Visible = false;
|
2011-08-09 23:27:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void autofireToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
new AutofireConfig().ShowDialog();
|
|
|
|
}
|
2011-09-24 23:00:59 +00:00
|
|
|
|
|
|
|
private void autoLoadLastSlotToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.AutoLoadLastSaveSlot ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void logWindowAsConsoleToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.WIN32_CONSOLE ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showMenuInFullScreenToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.ShowMenuInFullscreen ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showMenuToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2011-09-24 23:12:43 +00:00
|
|
|
ShowHideMenu();
|
2011-09-24 23:00:59 +00:00
|
|
|
}
|
2012-03-12 05:19:59 +00:00
|
|
|
|
|
|
|
private void justatestToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadPCEBGViewer();
|
|
|
|
}
|
2012-05-19 15:17:32 +00:00
|
|
|
|
|
|
|
private void bWToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (Global.Emulator is Atari2600)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_BW ^= true;
|
|
|
|
((Atari2600)Global.Emulator).SetBw(Global.Config.Atari2600_BW);
|
|
|
|
if (Global.Config.Atari2600_BW)
|
|
|
|
Global.OSD.AddMessage("Setting to Black and White Switch to On");
|
|
|
|
else
|
|
|
|
Global.OSD.AddMessage("Setting to Black and White Switch to Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void p0DifficultyToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (Global.Emulator is Atari2600)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_LeftDifficulty ^= true;
|
|
|
|
((Atari2600)Global.Emulator).SetP0Diff(Global.Config.Atari2600_BW);
|
|
|
|
if (Global.Config.Atari2600_LeftDifficulty)
|
|
|
|
Global.OSD.AddMessage("Setting Left Difficulty to B");
|
|
|
|
else
|
|
|
|
Global.OSD.AddMessage("Setting Left Difficulty to A");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void rightDifficultyToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (Global.Emulator is Atari2600)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_RightDifficulty ^= true;
|
|
|
|
((Atari2600)Global.Emulator).SetP1Diff(Global.Config.Atari2600_BW);
|
|
|
|
if (Global.Config.Atari2600_RightDifficulty)
|
|
|
|
Global.OSD.AddMessage("Setting Right Difficulty to B");
|
|
|
|
else
|
|
|
|
Global.OSD.AddMessage("Setting Right Difficulty to A");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void atariToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
bWToolStripMenuItem.Checked = Global.Config.Atari2600_BW;
|
|
|
|
p0DifficultyToolStripMenuItem.Checked = Global.Config.Atari2600_LeftDifficulty;
|
|
|
|
rightDifficultyToolStripMenuItem.Checked = Global.Config.Atari2600_RightDifficulty;
|
2012-10-30 00:18:56 +00:00
|
|
|
|
|
|
|
showBGToolStripMenuItem.Checked = Global.Config.Atari2600_ShowBG;
|
|
|
|
showPlayer1ToolStripMenuItem.Checked = Global.Config.Atari2600_ShowPlayer1;
|
|
|
|
showPlayer2ToolStripMenuItem.Checked = Global.Config.Atari2600_ShowPlayer2;
|
|
|
|
showMissle1ToolStripMenuItem.Checked = Global.Config.Atari2600_ShowMissle1;
|
|
|
|
showMissle2ToolStripMenuItem.Checked = Global.Config.Atari2600_ShowMissle2;
|
|
|
|
showBallToolStripMenuItem.Checked = Global.Config.Atari2600_ShowBall;
|
2012-10-30 23:38:53 +00:00
|
|
|
showPlayfieldToolStripMenuItem.Checked = Global.Config.Atari2600_ShowPlayfield;
|
2012-05-19 15:17:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void gBToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:14:03 +00:00
|
|
|
forceDMGModeToolStripMenuItem.Checked = Global.Config.GB_ForceDMG;
|
|
|
|
gBAInCGBModeToolStripMenuItem.Checked = Global.Config.GB_GBACGB;
|
|
|
|
multicartCompatibilityToolStripMenuItem.Checked = Global.Config.GB_MulticartCompat;
|
2012-09-26 15:59:14 +00:00
|
|
|
|
|
|
|
loadGBInSGBToolStripMenuItem1.Checked = Global.Config.GB_AsSGB;
|
2012-05-19 15:17:32 +00:00
|
|
|
}
|
2012-09-10 19:12:34 +00:00
|
|
|
|
|
|
|
private void graphicsDebuggerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadSNESGraphicsDebugger();
|
|
|
|
}
|
|
|
|
|
2012-12-25 20:36:04 +00:00
|
|
|
private void miSnesOptions_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-07-16 01:59:59 +00:00
|
|
|
var so = new SNESOptions
|
|
|
|
{
|
|
|
|
UseRingBuffer = Global.Config.SNESUseRingBuffer,
|
|
|
|
AlwaysDoubleSize = Global.Config.SNESAlwaysDoubleSize,
|
|
|
|
Profile = Global.Config.SNESProfile
|
|
|
|
};
|
|
|
|
if (so.ShowDialog() == DialogResult.OK)
|
2012-12-25 20:36:04 +00:00
|
|
|
{
|
|
|
|
bool reboot = Global.Config.SNESProfile != so.Profile;
|
|
|
|
Global.Config.SNESProfile = so.Profile;
|
2013-01-18 05:06:26 +00:00
|
|
|
Global.Config.SNESUseRingBuffer = so.UseRingBuffer;
|
2013-04-22 22:34:18 +00:00
|
|
|
Global.Config.SNESAlwaysDoubleSize = so.AlwaysDoubleSize;
|
2012-12-25 20:36:04 +00:00
|
|
|
if (reboot) FlagNeedsReboot();
|
2013-01-18 05:06:26 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-12-25 20:36:04 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleBG1(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG1_1 = Global.Config.SNES_ShowBG1_0 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG1_1 = Global.Config.SNES_ShowBG1_0 ^= true;
|
|
|
|
}
|
|
|
|
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowBG1_1)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 1 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 1 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleBG2(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG2_1 = Global.Config.SNES_ShowBG2_0 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG2_1 = Global.Config.SNES_ShowBG2_0 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowBG2_1)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 2 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 2 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleBG3(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG3_1 = Global.Config.SNES_ShowBG3_0 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG3_1 = Global.Config.SNES_ShowBG3_0 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowBG3_1)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 3 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 3 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleBG4(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG4_1 = Global.Config.SNES_ShowBG4_0 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowBG4_1 = Global.Config.SNES_ShowBG4_0 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowBG4_1)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 4 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("BG 4 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleOBJ1(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ1 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ1 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowOBJ1)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 1 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 1 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleOBJ2(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ2 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ2 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowOBJ2)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 2 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 2 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleOBJ3(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ3 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ3 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowOBJ3)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 3 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 3 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-03-25 00:49:50 +00:00
|
|
|
public void SNES_ToggleOBJ4(bool? setto = null)
|
2012-09-15 16:43:16 +00:00
|
|
|
{
|
|
|
|
if (Global.Emulator is LibsnesCore)
|
|
|
|
{
|
2013-03-25 00:49:50 +00:00
|
|
|
if (setto.HasValue)
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ4 = setto.Value;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.Config.SNES_ShowOBJ4 ^= true;
|
|
|
|
}
|
2012-12-10 00:43:43 +00:00
|
|
|
SyncCoreCommInputSignals();
|
2012-09-15 16:43:16 +00:00
|
|
|
if (Global.Config.SNES_ShowOBJ4)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 4 Layer On");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("OBJ 4 Layer Off");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-09-10 19:12:34 +00:00
|
|
|
private void bG1ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleBG1();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void bG1ToolStripMenuItem_Click_1(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleBG2();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void bG2ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleBG3();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void bG3ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleBG4();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void oBJ0ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleOBJ1();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void oBJ1ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleOBJ2();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void oBJ2ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleOBJ3();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void oBJ3ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
2012-09-15 16:43:16 +00:00
|
|
|
SNES_ToggleOBJ4();
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void displayToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
bG0ToolStripMenuItem.Checked = Global.Config.SNES_ShowBG1_1;
|
|
|
|
bG1ToolStripMenuItem.Checked = Global.Config.SNES_ShowBG2_1;
|
|
|
|
bG2ToolStripMenuItem.Checked = Global.Config.SNES_ShowBG3_1;
|
|
|
|
bG3ToolStripMenuItem.Checked = Global.Config.SNES_ShowBG4_1;
|
|
|
|
|
2012-09-15 16:43:16 +00:00
|
|
|
oBJ0ToolStripMenuItem.Checked = Global.Config.SNES_ShowOBJ1;
|
|
|
|
oBJ1ToolStripMenuItem.Checked = Global.Config.SNES_ShowOBJ2;
|
|
|
|
oBJ2ToolStripMenuItem.Checked = Global.Config.SNES_ShowOBJ3;
|
|
|
|
oBJ3ToolStripMenuItem.Checked = Global.Config.SNES_ShowOBJ4;
|
2013-08-04 17:18:01 +00:00
|
|
|
|
|
|
|
bG0ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle BG 1"].Bindings;
|
|
|
|
bG1ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle BG 2"].Bindings;
|
|
|
|
bG2ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle BG 3"].Bindings;
|
|
|
|
bG3ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle BG 4"].Bindings;
|
|
|
|
|
|
|
|
oBJ0ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle OBJ 1"].Bindings;
|
|
|
|
oBJ1ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle OBJ 2"].Bindings;
|
|
|
|
oBJ2ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle OBJ 3"].Bindings;
|
|
|
|
oBJ3ToolStripMenuItem.ShortcutKeyDisplayString = Global.Config.HotkeyBindings["Toggle OBJ 4"].Bindings;
|
2012-09-10 19:12:34 +00:00
|
|
|
}
|
2012-09-22 00:07:02 +00:00
|
|
|
|
|
|
|
private void captureOSDToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.AVI_CaptureOSD ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void forceDMGModeToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GB_ForceDMG ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2012-09-22 00:07:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void gBAInCGBModeToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GB_GBACGB ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2012-09-22 00:07:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void multicartCompatibilityToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GB_MulticartCompat ^= true;
|
2012-09-29 23:03:51 +00:00
|
|
|
FlagNeedsReboot();
|
2012-09-22 00:07:02 +00:00
|
|
|
}
|
2012-10-07 19:52:09 +00:00
|
|
|
|
|
|
|
private void StatusSlot1_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(1))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave1");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave1");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot2_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(2))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave2");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave2");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot3_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(3))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave3");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave3");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot4_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(4))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave4");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave4");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot5_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(5))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave5");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave5");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot6_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(6))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave6");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave6");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot7_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(7))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave7");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave7");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot8_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(8))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave8");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave8");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot9_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(9))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave9");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave9");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void StatusSlot10_MouseUp(object sender, MouseEventArgs e)
|
|
|
|
{
|
|
|
|
if (e.Button == MouseButtons.Left)
|
|
|
|
{
|
|
|
|
if (StateSlots.HasSlot(0))
|
|
|
|
{
|
|
|
|
LoadState("QuickSave0");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (e.Button == MouseButtons.Right)
|
|
|
|
{
|
|
|
|
SaveState("QuickSave0");
|
|
|
|
}
|
|
|
|
}
|
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 importMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
var ofd = new OpenFileDialog
|
|
|
|
{
|
|
|
|
InitialDirectory = PathManager.GetRomsPath(Global.Emulator.SystemId),
|
|
|
|
Multiselect = true,
|
|
|
|
Filter = FormatFilter(
|
|
|
|
"Movie Files", "*.fm2;*.mc2;*.mcm;*.mmv;*.gmv;*.vbm;*.lsmv;*.fcm;*.fmv;*.vmv;*.nmv;*.smv;*.zmv;",
|
|
|
|
"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",
|
|
|
|
"ZSNES", "*.zmv",
|
|
|
|
"All Files", "*.*"),
|
|
|
|
RestoreDirectory = false
|
|
|
|
};
|
|
|
|
|
|
|
|
Global.Sound.StopSound();
|
|
|
|
var result = ofd.ShowDialog();
|
|
|
|
Global.Sound.StartSound();
|
|
|
|
if (result != DialogResult.OK)
|
|
|
|
return;
|
|
|
|
|
|
|
|
foreach (string fn in ofd.FileNames)
|
|
|
|
{
|
|
|
|
ProcessMovieImport(fn);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void FormDragDrop(object sender, DragEventArgs e)
|
|
|
|
{
|
|
|
|
string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
|
|
|
|
bool isLua = false;
|
|
|
|
foreach (string path in filePaths)
|
|
|
|
{
|
|
|
|
var extension = Path.GetExtension(path);
|
|
|
|
if (extension != null && extension.ToUpper() == ".LUA")
|
|
|
|
{
|
|
|
|
OpenLuaConsole();
|
|
|
|
LuaConsole1.LoadLuaFile(path);
|
|
|
|
isLua = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isLua)
|
|
|
|
return;
|
|
|
|
|
|
|
|
var ext = Path.GetExtension(filePaths[0]) ?? "";
|
|
|
|
if (ext.ToUpper() == ".LUASES")
|
|
|
|
{
|
|
|
|
OpenLuaConsole();
|
|
|
|
LuaConsole1.LoadLuaSession(filePaths[0]);
|
|
|
|
}
|
|
|
|
else if (IsValidMovieExtension(ext))
|
|
|
|
{
|
|
|
|
Movie m = new Movie(filePaths[0]);
|
|
|
|
StartNewMovie(m, false);
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (ext.ToUpper() == ".STATE")
|
|
|
|
{
|
|
|
|
LoadStateFile(filePaths[0], Path.GetFileName(filePaths[0]));
|
|
|
|
}
|
|
|
|
else if (ext.ToUpper() == ".CHT")
|
|
|
|
{
|
|
|
|
LoadCheatsWindow();
|
|
|
|
Cheats1.LoadCheatFile(filePaths[0], false);
|
|
|
|
Cheats1.DisplayCheatsList();
|
|
|
|
}
|
|
|
|
else if (ext.ToUpper() == ".WCH")
|
|
|
|
{
|
|
|
|
LoadRamWatch(true);
|
|
|
|
RamWatch1.LoadWatchFile(filePaths[0], false);
|
|
|
|
RamWatch1.DisplayWatchList();
|
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
OpenROM();
|
|
|
|
else
|
|
|
|
LoadRom(CurrentlyOpenRom);
|
|
|
|
|
|
|
|
string errorMsg;
|
|
|
|
string warningMsg;
|
|
|
|
Movie m = MovieImport.ImportFile(filePaths[0], out errorMsg, out warningMsg);
|
|
|
|
if (errorMsg.Length > 0)
|
|
|
|
{
|
|
|
|
MessageBox.Show(errorMsg, "Conversion error", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
//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:
|
|
|
|
m.Filename += ".autoimported." + Global.Config.MovieExtension;
|
|
|
|
m.WriteMovie();
|
|
|
|
StartNewMovie(m, false);
|
|
|
|
}
|
|
|
|
Global.OSD.AddMessage(warningMsg);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
LoadRom(filePaths[0]);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void toolStripMenuItem6_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
StopMovie(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void stopMovieWithoutSavingToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
StopMovie(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void SNESgameGenieCodesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGameGenieEC();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void GBgameGenieCodesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGameGenieEC();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void GGgameGenieEncoderDecoderToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGameGenieEC();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void createDualGBXMLToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Sound.StopSound();
|
|
|
|
using (var dlg = new GBtools.DualGBXMLCreator())
|
|
|
|
{
|
|
|
|
dlg.ShowDialog(this);
|
|
|
|
}
|
|
|
|
Global.Sound.StartSound();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void tempN64PluginControlToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
var result = new N64VideoPluginconfig().ShowDialog();
|
|
|
|
if (result == DialogResult.OK)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Plugin settings saved");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Plugin settings aborted");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void savestateTypeToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
defaultToolStripMenuItem.Checked = false;
|
|
|
|
binaryToolStripMenuItem.Checked = false;
|
|
|
|
textToolStripMenuItem.Checked = false;
|
|
|
|
switch (Global.Config.SaveStateType)
|
|
|
|
{
|
|
|
|
case Config.SaveStateTypeE.Binary: binaryToolStripMenuItem.Checked = true; break;
|
|
|
|
case Config.SaveStateTypeE.Text: textToolStripMenuItem.Checked = true; break;
|
|
|
|
case Config.SaveStateTypeE.Default: defaultToolStripMenuItem.Checked = true; break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void defaultToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SaveStateType = Config.SaveStateTypeE.Default;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void binaryToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SaveStateType = Config.SaveStateTypeE.Binary;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void textToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SaveStateType = Config.SaveStateTypeE.Text;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
using (var dlg = new SATTools.SaturnPrefs())
|
|
|
|
{
|
|
|
|
var result = dlg.ShowDialog(this);
|
|
|
|
if (result == DialogResult.OK)
|
|
|
|
{
|
|
|
|
SaturnSetPrefs();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void controllersToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
OpenControllerConfig();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void hotkeysToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
OpenHotkeyDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void messagesToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
new MessageConfig().ShowDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void pathsToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
2013-08-11 21:48:17 +00:00
|
|
|
new NewPathConfig().ShowDialog();
|
2013-07-16 01:59:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private void soundToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
OpenSoundConfigDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void autofireToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
new AutofireConfig().ShowDialog();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void neverBeAskedToSaveChangesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.SupressAskSave ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void soundChannelsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadNesSoundConfig();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void changeDMGPalettesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if (Global.Emulator is Gameboy)
|
|
|
|
{
|
|
|
|
var g = Global.Emulator as Gameboy;
|
|
|
|
if (g.IsCGBMode())
|
|
|
|
{
|
|
|
|
if (GBtools.CGBColorChooserForm.DoCGBColorChooserFormDialog(this))
|
|
|
|
{
|
|
|
|
g.SetCGBColors(Global.Config.CGBColors);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
GBtools.ColorChooserForm.DoColorChooserFormDialog(g.ChangeDMGColors, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void captureOSDToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Screenshot_CaptureOSD ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void screenshotToolStripMenuItem_DropDownOpening(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
captureOSDToolStripMenuItem1.Checked = Global.Config.Screenshot_CaptureOSD;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void sNESToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
if ((Global.Emulator as LibsnesCore).IsSGB)
|
|
|
|
{
|
|
|
|
loadGBInSGBToolStripMenuItem.Visible = true;
|
|
|
|
loadGBInSGBToolStripMenuItem.Checked = Global.Config.GB_AsSGB;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
loadGBInSGBToolStripMenuItem.Visible = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void loadGBInSGBToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
loadGBInSGBToolStripMenuItem_Click(sender, e);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void loadGBInSGBToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GB_AsSGB ^= true;
|
|
|
|
FlagNeedsReboot();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void MainForm_Resize(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.RenderPanel.Resized = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void backupSaveramToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.BackupSaveram ^= true;
|
|
|
|
if (Global.Config.BackupSaveram)
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Backup saveram enabled");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Global.OSD.AddMessage("Backup saveram disabled");
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private void toolStripStatusLabel2_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
RebootCore();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void traceLoggerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadTraceLogger();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void blurryToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.DispBlurry ^= true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showClippedRegionsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GGShowClippedRegions ^= true;
|
|
|
|
Global.CoreComm.GG_ShowClippedRegions = Global.Config.GGShowClippedRegions;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void highlightActiveDisplayRegionToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.GGHighlightActiveDisplayRegion ^= true;
|
|
|
|
Global.CoreComm.GG_HighlightActiveDisplayRegion = Global.Config.GGHighlightActiveDisplayRegion;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void saveMovieToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
SaveMovie();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void saveMovieToolStripMenuItem1_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
SaveMovie();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void virtualPadToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadVirtualPads();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showBGToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowBG ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showPlayer1ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowPlayer1 ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showPlayer2ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowPlayer2 ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showMissle1ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowMissle1 ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showMissle2ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowMissle2 ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showBallToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowBall ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void showPlayfieldToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Atari2600_ShowPlayfield ^= true;
|
|
|
|
SyncCoreCommInputSignals();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void gPUViewerToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGBGPUView();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void miLimitFramerate_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
private void skipBIOIntroToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.ColecoSkipBiosIntro ^= true;
|
|
|
|
FlagNeedsReboot();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void colecoToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
skipBIOSIntroToolStripMenuItem.Checked = Global.Config.ColecoSkipBiosIntro;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void gPUViewToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
LoadGBAGPUView();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void bothHotkeysAndControllersToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Input_Hotkey_OverrideOptions = 0;
|
|
|
|
UpdateKeyPriorityIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void inputOverridesHotkeysToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Input_Hotkey_OverrideOptions = 1;
|
|
|
|
UpdateKeyPriorityIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void hotkeysOverrideInputToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.Input_Hotkey_OverrideOptions = 2;
|
|
|
|
UpdateKeyPriorityIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void keyPriorityToolStripMenuItem_DropDownOpened(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
switch (Global.Config.Input_Hotkey_OverrideOptions)
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
case 0:
|
|
|
|
bothHotkeysAndControllersToolStripMenuItem.Checked = true;
|
|
|
|
inputOverridesHotkeysToolStripMenuItem.Checked = false;
|
|
|
|
hotkeysOverrideInputToolStripMenuItem.Checked = false;
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
bothHotkeysAndControllersToolStripMenuItem.Checked = false;
|
|
|
|
inputOverridesHotkeysToolStripMenuItem.Checked = true;
|
|
|
|
hotkeysOverrideInputToolStripMenuItem.Checked = false;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
bothHotkeysAndControllersToolStripMenuItem.Checked = false;
|
|
|
|
inputOverridesHotkeysToolStripMenuItem.Checked = false;
|
|
|
|
hotkeysOverrideInputToolStripMenuItem.Checked = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void KeyPriorityStatusBarLabel_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
switch (Global.Config.Input_Hotkey_OverrideOptions)
|
|
|
|
{
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
UpdateKeyPriorityIcon();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void fullMovieLoadstatesToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
Global.Config.VBAStyleMovieLoadState ^= true;
|
|
|
|
}
|
2013-07-21 20:39:11 +00:00
|
|
|
|
|
|
|
private void rewindOptionsToolStripMenuItem_Click(object sender, EventArgs e)
|
|
|
|
{
|
|
|
|
new RewindConfig().ShowDialog();
|
|
|
|
}
|
2011-02-21 09:48:53 +00:00
|
|
|
}
|
2012-03-09 21:36:55 +00:00
|
|
|
}
|