diff --git a/Core/BatteryManager.cpp b/Core/BatteryManager.cpp index 23b0172..2d5926f 100644 --- a/Core/BatteryManager.cpp +++ b/Core/BatteryManager.cpp @@ -6,6 +6,12 @@ void BatteryManager::Initialize(string romName) { _romName = romName; + _saveEnabled = true; +} + +void BatteryManager::SetSaveEnabled(bool enabled) +{ + _saveEnabled = enabled; } string BatteryManager::GetBasePath() @@ -25,16 +31,18 @@ void BatteryManager::SetBatteryRecorder(shared_ptr recorder) void BatteryManager::SaveBattery(string extension, uint8_t* data, uint32_t length) { + if (_saveEnabled) { #ifdef LIBRETRO - if(extension == ".srm") { - //Disable .srm files for libretro, let the frontend handle save ram - return; - } + if (extension == ".srm") { + //Disable .srm files for libretro, let the frontend handle save ram + return; + } #endif - ofstream out(GetBasePath() + extension, ios::binary); - if(out) { - out.write((char*)data, length); + ofstream out(GetBasePath() + extension, ios::binary); + if (out) { + out.write((char*)data, length); + } } } diff --git a/Core/BatteryManager.h b/Core/BatteryManager.h index 16dbde6..5dc8e2a 100644 --- a/Core/BatteryManager.h +++ b/Core/BatteryManager.h @@ -17,6 +17,7 @@ class BatteryManager { private: string _romName; + bool _saveEnabled; std::weak_ptr _provider; std::weak_ptr _recorder; @@ -25,6 +26,8 @@ private: public: void Initialize(string romName); + void SetSaveEnabled(bool enabled); + void SetBatteryProvider(shared_ptr provider); void SetBatteryRecorder(shared_ptr recorder); diff --git a/Core/Console.cpp b/Core/Console.cpp index d21587b..3b3746b 100644 --- a/Core/Console.cpp +++ b/Core/Console.cpp @@ -561,6 +561,25 @@ double Console::GetFrameDelay() return frameDelay; } +HistoryViewer* Console::GetHistoryViewer() +{ + return _historyViewer.get(); +} + +void Console::CopyRewindData(shared_ptr sourceConsole) +{ + sourceConsole->Pause(); + Pause(); + + //Disable battery saving for this instance + _batteryManager->SetSaveEnabled(false); + _historyViewer.reset(new HistoryViewer(shared_from_this())); + sourceConsole->GetRewindManager()->CopyHistory(_historyViewer); + + Resume(); + sourceConsole->Resume(); +} + void Console::PauseOnNextFrame() { shared_ptr debugger = _debugger; diff --git a/Core/Console.h b/Core/Console.h index 9c54cfe..f49d190 100644 --- a/Core/Console.h +++ b/Core/Console.h @@ -4,6 +4,7 @@ #include "DebugTypes.h" #include "Debugger.h" #include "ConsoleLock.h" +#include "HistoryViewer.h" #include "../Utilities/Timer.h" #include "../Utilities/VirtualFile.h" #include "../Utilities/SimpleLock.h" @@ -66,6 +67,7 @@ private: shared_ptr _settings; shared_ptr _saveStateManager; shared_ptr _rewindManager; + shared_ptr _historyViewer; shared_ptr _cheatManager; shared_ptr _movieManager; shared_ptr _spcHud; @@ -163,6 +165,7 @@ public: shared_ptr GetControlManager(); shared_ptr GetDmaController(); shared_ptr GetMsu1(); + HistoryViewer* Console::GetHistoryViewer(); shared_ptr GetDebugger(bool autoStart = true); void StopDebugger(); @@ -176,6 +179,8 @@ public: uint32_t GetFrameCount(); double GetFps(); + void CopyRewindData(shared_ptr sourceConsole); + template __forceinline void ProcessMemoryRead(uint32_t addr, uint8_t value, MemoryOperationType opType) { if(_debugger) { diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj index 8bad87b..33e453d 100644 --- a/Core/Core.vcxproj +++ b/Core/Core.vcxproj @@ -88,6 +88,7 @@ + @@ -294,6 +295,7 @@ + diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters index d8c4c4c..07eb486 100644 --- a/Core/Core.vcxproj.filters +++ b/Core/Core.vcxproj.filters @@ -602,6 +602,9 @@ GB + + Misc + @@ -965,6 +968,9 @@ SNES\Coprocessors\SuperGameboy + + Misc + diff --git a/Core/HistoryViewer.cpp b/Core/HistoryViewer.cpp new file mode 100644 index 0000000..fefeefe --- /dev/null +++ b/Core/HistoryViewer.cpp @@ -0,0 +1,168 @@ +#pragma once +#include "stdafx.h" +#include "HistoryViewer.h" +#include "RewindData.h" +#include "Console.h" +#include "BaseControlDevice.h" +#include "SoundMixer.h" +#include "NotificationManager.h" +#include "MovieRecorder.h" +#include "SaveStateManager.h" +#include "ControlManager.h" + +HistoryViewer::HistoryViewer(shared_ptr console) +{ + _console = console; + _position = 0; + _pollCounter = 0; +} + +HistoryViewer::~HistoryViewer() +{ +} + +void HistoryViewer::SetHistoryData(std::deque& history) +{ + _history = history; + + _console->GetControlManager()->UnregisterInputProvider(this); + _console->GetControlManager()->RegisterInputProvider(this); + + SeekTo(0); +} + +uint32_t HistoryViewer::GetHistoryLength() +{ + //Returns history length in number of frames + return (uint32_t)(_history.size() * HistoryViewer::BufferSize); +} + +void HistoryViewer::GetHistorySegments(uint32_t* segmentBuffer, uint32_t& bufferSize) +{ + uint32_t segmentIndex = 0; + for (size_t i = 0; i < _history.size(); i++) { + if (_history[i].EndOfSegment) { + segmentBuffer[segmentIndex] = (uint32_t)i; + segmentIndex++; + + if (segmentIndex == bufferSize) { + //Reached buffer size, can't return any more values + break; + } + } + } + bufferSize = segmentIndex; +} + +uint32_t HistoryViewer::GetPosition() +{ + return _position; +} + +void HistoryViewer::SeekTo(uint32_t seekPosition) +{ + //Seek to the specified position + if (seekPosition < _history.size()) { + _console->Pause(); + + bool wasPaused = _console->IsPaused(); + _console->Resume(); + _position = seekPosition; + RewindData rewindData = _history[_position]; + rewindData.LoadState(_console); + + _console->GetSoundMixer()->StopAudio(true); + _pollCounter = 0; + + if (wasPaused) { + _console->Pause(); + } + + _console->Resume(); + } +} + +bool HistoryViewer::CreateSaveState(string outputFile, uint32_t position) +{ + if (position < _history.size()) { + std::stringstream stateData; + _console->GetSaveStateManager()->GetSaveStateHeader(stateData); + _history[position].GetStateData(stateData); + + ofstream output(outputFile, ios::binary); + if (output) { + output << stateData.rdbuf(); + output.close(); + return true; + } + } + return false; +} + +bool HistoryViewer::SaveMovie(string movieFile, uint32_t startPosition, uint32_t endPosition) +{ + //Take a savestate to be able to restore it after generating the movie file + //(the movie generation uses the console's inputs, which could affect the emulation otherwise) + stringstream state; + _console->Pause(); + _console->GetSaveStateManager()->SaveState(state); + + //Convert the rewind data to a .mmo file + unique_ptr recorder(new MovieRecorder(_console)); + bool result = recorder->CreateMovie(movieFile, _history, startPosition, endPosition); + + //Resume the state and resume + _console->GetSaveStateManager()->LoadState(state); + _console->Resume(); + return result; +} + +void HistoryViewer::ResumeGameplay(shared_ptr console, uint32_t resumePosition) +{ + console->Pause(); + if (_console->GetRomInfo().RomFile.GetSha1Hash() != console->GetRomInfo().RomFile.GetSha1Hash()) { + //Load game on the main window if they aren't the same + console->LoadRom(console->GetRomInfo().RomFile, console->GetRomInfo().PatchFile); + // TODO? + } + if (resumePosition < _history.size()) { + _history[resumePosition].LoadState(console); + } + else { + _history[_history.size() - 1].LoadState(console); + } + console->Resume(); +} + +bool HistoryViewer::SetInput(BaseControlDevice* device) +{ + uint8_t port = device->GetPort(); + if (_position < _history.size()) { + std::deque& stateData = _history[_position].InputLogs[port]; + if (_pollCounter < stateData.size()) { + ControlDeviceState state = stateData[_pollCounter]; + device->SetRawState(state); + } + } + if (port == 0 && _pollCounter < 30) { + _pollCounter++; + } + return true; +} + +void HistoryViewer::ProcessEndOfFrame() +{ + if (_pollCounter == HistoryViewer::BufferSize) { + _pollCounter = 0; + _position++; + + if (_position >= _history.size()) { + //Reached the end of history data + _console->Pause(); + return; + } + + RewindData rewindData = _history[_position]; + rewindData.LoadState(_console); + } +} diff --git a/Core/HistoryViewer.h b/Core/HistoryViewer.h new file mode 100644 index 0000000..8a5eb6f --- /dev/null +++ b/Core/HistoryViewer.h @@ -0,0 +1,39 @@ +#pragma once +#include "stdafx.h" +#include +#include "IInputProvider.h" +#include "RewindData.h" + +class Console; + +class HistoryViewer : public IInputProvider +{ +private: + static constexpr int32_t BufferSize = 30; //Number of frames between each save state + + shared_ptr _console; + std::deque _history; + uint32_t _position; + uint32_t _pollCounter; + +public: + HistoryViewer(shared_ptr console); + virtual ~HistoryViewer(); + + void SetHistoryData(std::deque& history); + + uint32_t GetHistoryLength(); + void GetHistorySegments(uint32_t* segmentBuffer, uint32_t& bufferSize); + uint32_t GetPosition(); + void SeekTo(uint32_t seekPosition); + + bool CreateSaveState(string outputFile, uint32_t position); + bool SaveMovie(string movieFile, uint32_t startPosition, uint32_t endPosition); + + void ResumeGameplay(shared_ptr console, uint32_t resumePosition); + + void ProcessEndOfFrame(); + + // Inherited via IInputProvider + bool SetInput(BaseControlDevice* device) override; +}; \ No newline at end of file diff --git a/Core/MovieRecorder.cpp b/Core/MovieRecorder.cpp index 99df2c9..f1318f4 100644 --- a/Core/MovieRecorder.cpp +++ b/Core/MovieRecorder.cpp @@ -178,6 +178,43 @@ bool MovieRecorder::Stop() return false; } +bool MovieRecorder::CreateMovie(string movieFile, std::deque& data, uint32_t startPosition, uint32_t endPosition) +{ + _filename = movieFile; + _writer.reset(new ZipWriter()); + if (startPosition < data.size() && endPosition <= data.size() && _writer->Initialize(_filename)) { + vector> devices = _console->GetControlManager()->GetControlDevices(); + +// if (startPosition > 0 || _console->GetRomInfo().Header.SramSize || _console->GetSettings()->GetRamPowerOnState() == RamPowerOnState::Random) { // TODO? + //Create a movie from a savestate if we don't start from the beginning (or if the game has save ram, or if the power on ram state is random) + _hasSaveState = true; + _saveStateData = stringstream(); + _console->GetSaveStateManager()->GetSaveStateHeader(_saveStateData); + data[startPosition].GetStateData(_saveStateData); +// } + + _inputData = stringstream(); + + for (uint32_t i = startPosition; i < endPosition; i++) { + RewindData rewindData = data[i]; + for (uint32_t i = 0; i < 30; i++) { + for (shared_ptr& device : devices) { + uint8_t port = device->GetPort(); + if (i < rewindData.InputLogs[port].size()) { + device->SetRawState(rewindData.InputLogs[port][i]); + _inputData << ("|" + device->GetTextState()); + } + } + _inputData << "\n"; + } + } + + //Write the movie file + return Stop(); + } + return false; +} + void MovieRecorder::RecordInput(vector> devices) { for(shared_ptr &device : devices) { @@ -202,41 +239,3 @@ void MovieRecorder::ProcessNotification(ConsoleNotificationType type, void *para _console->GetControlManager()->RegisterInputRecorder(this); } } -/* -bool MovieRecorder::CreateMovie(string movieFile, std::deque &data, uint32_t startPosition, uint32_t endPosition) -{ - _filename = movieFile; - _writer.reset(new ZipWriter()); - if(startPosition < data.size() && endPosition <= data.size() && _writer->Initialize(_filename)) { - vector> devices = _console->GetControlManager()->GetControlDevices(); - - if(startPosition > 0 || _console->GetRomInfo().HasBattery || _console->GetSettings()->GetRamPowerOnState() == RamPowerOnState::Random) { - //Create a movie from a savestate if we don't start from the beginning (or if the game has save ram, or if the power on ram state is random) - _hasSaveState = true; - _saveStateData = stringstream(); - _console->GetSaveStateManager()->GetSaveStateHeader(_saveStateData); - data[startPosition].GetStateData(_saveStateData); - } - - _inputData = stringstream(); - - for(uint32_t i = startPosition; i < endPosition; i++) { - RewindData rewindData = data[i]; - for(uint32_t i = 0; i < 30; i++) { - for(shared_ptr &device : devices) { - uint8_t port = device->GetPort(); - if(i < rewindData.InputLogs[port].size()) { - device->SetRawState(rewindData.InputLogs[port][i]); - _inputData << ("|" + device->GetTextState()); - } - } - _inputData << "\n"; - } - } - - //Write the movie file - return Stop(); - } - return false; -} -*/ \ No newline at end of file diff --git a/Core/MovieRecorder.h b/Core/MovieRecorder.h index 81461d2..b2ec281 100644 --- a/Core/MovieRecorder.h +++ b/Core/MovieRecorder.h @@ -9,7 +9,7 @@ class ZipWriter; class Console; -//class RewindData; +class RewindData; //struct CodeInfo; class MovieRecorder : public INotificationListener, public IInputRecorder, public IBatteryRecorder, public IBatteryProvider, public std::enable_shared_from_this @@ -40,6 +40,8 @@ public: bool Record(RecordMovieOptions options); bool Stop(); + bool CreateMovie(string movieFile, std::deque& data, uint32_t startPosition, uint32_t endPosition); + // Inherited via IInputRecorder void RecordInput(vector> devices) override; diff --git a/Core/RewindManager.cpp b/Core/RewindManager.cpp index 27e8c66..05a1613 100644 --- a/Core/RewindManager.cpp +++ b/Core/RewindManager.cpp @@ -361,3 +361,8 @@ bool RewindManager::SendAudio(int16_t * soundBuffer, uint32_t sampleCount) { return ProcessAudio(soundBuffer, sampleCount); } + +void RewindManager::CopyHistory(shared_ptr destHistoryViewer) +{ + destHistoryViewer->SetHistoryData(_history); +} diff --git a/Core/RewindManager.h b/Core/RewindManager.h index 0ef33b5..c186ec0 100644 --- a/Core/RewindManager.h +++ b/Core/RewindManager.h @@ -5,6 +5,7 @@ #include "RewindData.h" #include "IInputProvider.h" #include "IInputRecorder.h" +#include "HistoryViewer.h" class Console; class EmuSettings; @@ -79,4 +80,5 @@ public: void SendFrame(void *frameBuffer, uint32_t width, uint32_t height, bool forRewind); bool SendAudio(int16_t *soundBuffer, uint32_t sampleCount); + void CopyHistory(shared_ptr destHistoryViewer); }; \ No newline at end of file diff --git a/InteropDLL/HistoryViewerWrapper.cpp b/InteropDLL/HistoryViewerWrapper.cpp new file mode 100644 index 0000000..072e104 --- /dev/null +++ b/InteropDLL/HistoryViewerWrapper.cpp @@ -0,0 +1,124 @@ +#include "stdafx.h" +#include "../Core/Console.h" +#include "../Core/VideoRenderer.h" +#include "../Core/SoundMixer.h" +#include "../Core/MovieManager.h" +#include "../Core/RewindManager.h" + +#ifdef _WIN32 +#include "../Windows/Renderer.h" +#include "../Windows/SoundManager.h" +#include "../Windows/WindowsKeyManager.h" +#else +#include "../Linux/SdlRenderer.h" +#include "../Linux/SdlSoundManager.h" +#include "../Linux/LinuxKeyManager.h" +#endif + +extern shared_ptr _console; +shared_ptr _historyConsole; +unique_ptr _historyRenderer; +unique_ptr _historySoundManager; +enum class VideoCodec; + +extern "C" +{ + DllExport bool __stdcall HistoryViewerEnabled() + { + shared_ptr rewindManager = _console->GetRewindManager(); + return rewindManager ? rewindManager->HasHistory() : false; + } + + DllExport void __stdcall HistoryViewerInitialize(void* windowHandle, void* viewerHandle) + { + _historyConsole.reset(new Console()); + // TODO: something about initializing with settings? + _historyConsole->Initialize(); + _historyConsole->LoadRom(_console->GetRomInfo().RomFile, _console->GetRomInfo().PatchFile); + _historyConsole->CopyRewindData(_console); + + //Force some settings +// TODO +// _historyConsole->GetSettings()->SetEmulationSpeed(100); +// _historyConsole->GetSettings()->SetVideoScale(2); +// _historyConsole->GetSettings()->ClearFlags(EmulationFlags::InBackground | EmulationFlags::Rewind /*|EmulationFlags::ForceMaxSpeed | EmulationFlags::DebuggerWindowEnabled*/); + +#ifdef _WIN32 + _historyRenderer.reset(new Renderer(_historyConsole, (HWND)viewerHandle, false)); + _historySoundManager.reset(new SoundManager(_historyConsole, (HWND)windowHandle)); +#else + _historyRenderer.reset(new SdlRenderer(_historyConsole, viewerHandle, false)); + _historySoundManager.reset(new SdlSoundManager(_historyConsole)); +#endif + } + + DllExport void __stdcall HistoryViewerRelease() + { + _historyConsole->Stop(false); // TODO: Check on this + _historyConsole->Release(); // had True, "For ShutDown" + _historyRenderer.reset(); + _historySoundManager.reset(); + _historyConsole.reset(); + } + + DllExport void __stdcall HistoryViewerRun() + { + if (_historyConsole) { + _historyConsole->Run(); + } + } + + DllExport uint32_t __stdcall HistoryViewerGetHistoryLength() + { + if (_historyConsole) { + return _historyConsole->GetHistoryViewer()->GetHistoryLength(); + } + return 0; + } + + DllExport void __stdcall HistoryViewerGetSegments(uint32_t* segmentBuffer, uint32_t& bufferSize) + { + if (_historyConsole) { + _historyConsole->GetHistoryViewer()->GetHistorySegments(segmentBuffer, bufferSize); + } + } + + DllExport bool __stdcall HistoryViewerCreateSaveState(const char* outputFile, uint32_t position) + { + if (_historyConsole) { + return _historyConsole->GetHistoryViewer()->CreateSaveState(outputFile, position); + } + return false; + } + + DllExport bool __stdcall HistoryViewerSaveMovie(const char* movieFile, uint32_t startPosition, uint32_t endPosition) + { + if (_historyConsole) { + return _historyConsole->GetHistoryViewer()->SaveMovie(movieFile, startPosition, endPosition); + } + return false; + } + + DllExport void __stdcall HistoryViewerResumeGameplay(uint32_t resumeAtSecond) + { + if (_historyConsole) { + _historyConsole->GetHistoryViewer()->ResumeGameplay(_console, resumeAtSecond); + } + } + + DllExport void __stdcall HistoryViewerSetPosition(uint32_t seekPosition) + { + if (_historyConsole) { + _historyConsole->GetHistoryViewer()->SeekTo(seekPosition); + } + } + + DllExport uint32_t __stdcall HistoryViewerGetPosition() + { + if (_historyConsole) { + return _historyConsole->GetHistoryViewer()->GetPosition(); + } + return 0; + } + +} \ No newline at end of file diff --git a/InteropDLL/InteropDLL.vcxproj b/InteropDLL/InteropDLL.vcxproj index a67bf1a..798d594 100644 --- a/InteropDLL/InteropDLL.vcxproj +++ b/InteropDLL/InteropDLL.vcxproj @@ -466,6 +466,7 @@ + diff --git a/InteropDLL/InteropDLL.vcxproj.filters b/InteropDLL/InteropDLL.vcxproj.filters index efc7f5f..17778d4 100644 --- a/InteropDLL/InteropDLL.vcxproj.filters +++ b/InteropDLL/InteropDLL.vcxproj.filters @@ -46,5 +46,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/UI/Config/Configuration.cs b/UI/Config/Configuration.cs index 1f3271d..bb004a2 100644 --- a/UI/Config/Configuration.cs +++ b/UI/Config/Configuration.cs @@ -31,6 +31,7 @@ namespace Mesen.GUI.Config public Size WindowSize; public bool NeedInputReinit2 = true; public DefaultKeyMappingType DefaultKeyMappings = DefaultKeyMappingType.Xbox | DefaultKeyMappingType.ArrowKeys; + public HistoryViewerConfig HistoryViewer; public Configuration() { @@ -46,6 +47,7 @@ namespace Mesen.GUI.Config MovieRecord = new MovieRecordConfig(); Cheats = new CheatWindowConfig(); Netplay = new NetplayConfig(); + HistoryViewer = new HistoryViewerConfig(); } ~Configuration() diff --git a/UI/Config/HistoryViewerConfig.cs b/UI/Config/HistoryViewerConfig.cs new file mode 100644 index 0000000..429d669 --- /dev/null +++ b/UI/Config/HistoryViewerConfig.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mesen.GUI.Config +{ + public class HistoryViewerConfig + { + public int Volume = 25; + public Point WindowLocation; + public Size WindowSize; + } +} diff --git a/UI/Forms/Config/frmRecordMovie.Designer.cs b/UI/Forms/Config/frmRecordMovie.Designer.cs index ae56785..0120d4d 100644 --- a/UI/Forms/Config/frmRecordMovie.Designer.cs +++ b/UI/Forms/Config/frmRecordMovie.Designer.cs @@ -27,178 +27,180 @@ /// private void InitializeComponent() { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.lblSaveTo = new System.Windows.Forms.Label(); - this.txtFilename = new System.Windows.Forms.TextBox(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.txtAuthor = new System.Windows.Forms.TextBox(); - this.lblRecordFrom = new System.Windows.Forms.Label(); - this.lblAuthor = new System.Windows.Forms.Label(); - this.lblDescription = new System.Windows.Forms.Label(); - this.cboRecordFrom = new System.Windows.Forms.ComboBox(); - this.txtDescription = new System.Windows.Forms.TextBox(); - this.lblMovieInformation = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // baseConfigPanel - // - this.baseConfigPanel.Location = new System.Drawing.Point(0, 202); - this.baseConfigPanel.Size = new System.Drawing.Size(397, 29); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 3; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel1.Controls.Add(this.lblSaveTo, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.txtFilename, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.btnBrowse, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.txtAuthor, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.lblRecordFrom, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.lblAuthor, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.lblDescription, 0, 4); - this.tableLayoutPanel1.Controls.Add(this.cboRecordFrom, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.txtDescription, 1, 4); - this.tableLayoutPanel1.Controls.Add(this.lblMovieInformation, 0, 2); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 6; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(397, 231); - this.tableLayoutPanel1.TabIndex = 0; - // - // lblSaveTo - // - this.lblSaveTo.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.lblSaveTo.AutoSize = true; - this.lblSaveTo.Location = new System.Drawing.Point(3, 8); - this.lblSaveTo.Name = "lblSaveTo"; - this.lblSaveTo.Size = new System.Drawing.Size(47, 13); - this.lblSaveTo.TabIndex = 0; - this.lblSaveTo.Text = "Save to:"; - // - // txtFilename - // - this.txtFilename.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtFilename.Location = new System.Drawing.Point(82, 3); - this.txtFilename.MaxLength = 1999; - this.txtFilename.Name = "txtFilename"; - this.txtFilename.ReadOnly = true; - this.txtFilename.Size = new System.Drawing.Size(231, 20); - this.txtFilename.TabIndex = 1; - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(319, 3); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(75, 23); - this.btnBrowse.TabIndex = 2; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // txtAuthor - // - this.tableLayoutPanel1.SetColumnSpan(this.txtAuthor, 2); - this.txtAuthor.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtAuthor.Location = new System.Drawing.Point(82, 84); - this.txtAuthor.MaxLength = 249; - this.txtAuthor.Name = "txtAuthor"; - this.txtAuthor.Size = new System.Drawing.Size(312, 20); - this.txtAuthor.TabIndex = 12; - // - // lblRecordFrom - // - this.lblRecordFrom.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.lblRecordFrom.AutoSize = true; - this.lblRecordFrom.Location = new System.Drawing.Point(3, 36); - this.lblRecordFrom.Name = "lblRecordFrom"; - this.lblRecordFrom.Size = new System.Drawing.Size(68, 13); - this.lblRecordFrom.TabIndex = 6; - this.lblRecordFrom.Text = "Record from:"; - // - // lblAuthor - // - this.lblAuthor.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.lblAuthor.AutoSize = true; - this.lblAuthor.Location = new System.Drawing.Point(13, 87); - this.lblAuthor.Margin = new System.Windows.Forms.Padding(13, 0, 3, 0); - this.lblAuthor.Name = "lblAuthor"; - this.lblAuthor.Size = new System.Drawing.Size(41, 13); - this.lblAuthor.TabIndex = 5; - this.lblAuthor.Text = "Author:"; - // - // lblDescription - // - this.lblDescription.Anchor = System.Windows.Forms.AnchorStyles.Left; - this.lblDescription.AutoSize = true; - this.lblDescription.Location = new System.Drawing.Point(13, 146); - this.lblDescription.Margin = new System.Windows.Forms.Padding(13, 0, 3, 0); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Size = new System.Drawing.Size(63, 13); - this.lblDescription.TabIndex = 11; - this.lblDescription.Text = "Description:"; - // - // cboRecordFrom - // - this.cboRecordFrom.Dock = System.Windows.Forms.DockStyle.Fill; - this.cboRecordFrom.FormattingEnabled = true; - this.cboRecordFrom.Location = new System.Drawing.Point(82, 32); - this.cboRecordFrom.Name = "cboRecordFrom"; - this.cboRecordFrom.Size = new System.Drawing.Size(231, 21); - this.cboRecordFrom.TabIndex = 13; - // - // txtDescription - // - this.txtDescription.AcceptsReturn = true; - this.tableLayoutPanel1.SetColumnSpan(this.txtDescription, 2); - this.txtDescription.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtDescription.Location = new System.Drawing.Point(82, 110); - this.txtDescription.MaxLength = 9999; - this.txtDescription.Multiline = true; - this.txtDescription.Name = "txtDescription"; - this.txtDescription.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtDescription.Size = new System.Drawing.Size(312, 86); - this.txtDescription.TabIndex = 10; - // - // lblMovieInformation - // - this.lblMovieInformation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lblMovieInformation.AutoSize = true; - this.tableLayoutPanel1.SetColumnSpan(this.lblMovieInformation, 2); - this.lblMovieInformation.ForeColor = System.Drawing.SystemColors.GrayText; - this.lblMovieInformation.Location = new System.Drawing.Point(3, 65); - this.lblMovieInformation.Name = "lblMovieInformation"; - this.lblMovieInformation.Padding = new System.Windows.Forms.Padding(0, 0, 0, 3); - this.lblMovieInformation.Size = new System.Drawing.Size(139, 16); - this.lblMovieInformation.TabIndex = 24; - this.lblMovieInformation.Text = "Movie Information (Optional)"; - // - // frmRecordMovie - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(397, 231); - this.Controls.Add(this.tableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmRecordMovie"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Movie Recording Options"; - this.Controls.SetChildIndex(this.tableLayoutPanel1, 0); - this.Controls.SetChildIndex(this.baseConfigPanel, 0); - this.tableLayoutPanel1.ResumeLayout(false); - this.tableLayoutPanel1.PerformLayout(); - this.ResumeLayout(false); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lblSaveTo = new System.Windows.Forms.Label(); + this.txtFilename = new System.Windows.Forms.TextBox(); + this.btnBrowse = new System.Windows.Forms.Button(); + this.txtAuthor = new System.Windows.Forms.TextBox(); + this.lblRecordFrom = new System.Windows.Forms.Label(); + this.lblAuthor = new System.Windows.Forms.Label(); + this.lblDescription = new System.Windows.Forms.Label(); + this.cboRecordFrom = new System.Windows.Forms.ComboBox(); + this.txtDescription = new System.Windows.Forms.TextBox(); + this.lblMovieInformation = new System.Windows.Forms.Label(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // baseConfigPanel + // + this.baseConfigPanel.Location = new System.Drawing.Point(0, 202); + this.baseConfigPanel.Size = new System.Drawing.Size(397, 29); + this.baseConfigPanel.TabIndex = 4; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.lblSaveTo, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.txtFilename, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btnBrowse, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.txtAuthor, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.lblRecordFrom, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.lblAuthor, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.lblDescription, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.cboRecordFrom, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.txtDescription, 1, 4); + this.tableLayoutPanel1.Controls.Add(this.lblMovieInformation, 0, 2); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 6; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(397, 231); + this.tableLayoutPanel1.TabIndex = 0; + // + // lblSaveTo + // + this.lblSaveTo.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblSaveTo.AutoSize = true; + this.lblSaveTo.Location = new System.Drawing.Point(3, 8); + this.lblSaveTo.Name = "lblSaveTo"; + this.lblSaveTo.Size = new System.Drawing.Size(47, 13); + this.lblSaveTo.TabIndex = 0; + this.lblSaveTo.Text = "Save to:"; + // + // txtFilename + // + this.txtFilename.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtFilename.Location = new System.Drawing.Point(82, 3); + this.txtFilename.MaxLength = 1999; + this.txtFilename.Name = "txtFilename"; + this.txtFilename.ReadOnly = true; + this.txtFilename.Size = new System.Drawing.Size(231, 20); + this.txtFilename.TabIndex = 1; + // + // btnBrowse + // + this.btnBrowse.Location = new System.Drawing.Point(319, 3); + this.btnBrowse.Name = "btnBrowse"; + this.btnBrowse.Size = new System.Drawing.Size(75, 23); + this.btnBrowse.TabIndex = 2; + this.btnBrowse.Text = "Browse..."; + this.btnBrowse.UseVisualStyleBackColor = true; + this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); + // + // txtAuthor + // + this.tableLayoutPanel1.SetColumnSpan(this.txtAuthor, 2); + this.txtAuthor.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtAuthor.Location = new System.Drawing.Point(82, 84); + this.txtAuthor.MaxLength = 249; + this.txtAuthor.Name = "txtAuthor"; + this.txtAuthor.Size = new System.Drawing.Size(312, 20); + this.txtAuthor.TabIndex = 12; + // + // lblRecordFrom + // + this.lblRecordFrom.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblRecordFrom.AutoSize = true; + this.lblRecordFrom.Location = new System.Drawing.Point(3, 36); + this.lblRecordFrom.Name = "lblRecordFrom"; + this.lblRecordFrom.Size = new System.Drawing.Size(68, 13); + this.lblRecordFrom.TabIndex = 6; + this.lblRecordFrom.Text = "Record from:"; + // + // lblAuthor + // + this.lblAuthor.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblAuthor.AutoSize = true; + this.lblAuthor.Location = new System.Drawing.Point(13, 87); + this.lblAuthor.Margin = new System.Windows.Forms.Padding(13, 0, 3, 0); + this.lblAuthor.Name = "lblAuthor"; + this.lblAuthor.Size = new System.Drawing.Size(41, 13); + this.lblAuthor.TabIndex = 5; + this.lblAuthor.Text = "Author:"; + // + // lblDescription + // + this.lblDescription.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblDescription.AutoSize = true; + this.lblDescription.Location = new System.Drawing.Point(13, 146); + this.lblDescription.Margin = new System.Windows.Forms.Padding(13, 0, 3, 0); + this.lblDescription.Name = "lblDescription"; + this.lblDescription.Size = new System.Drawing.Size(63, 13); + this.lblDescription.TabIndex = 11; + this.lblDescription.Text = "Description:"; + // + // cboRecordFrom + // + this.cboRecordFrom.Dock = System.Windows.Forms.DockStyle.Fill; + this.cboRecordFrom.FormattingEnabled = true; + this.cboRecordFrom.Location = new System.Drawing.Point(82, 32); + this.cboRecordFrom.Name = "cboRecordFrom"; + this.cboRecordFrom.Size = new System.Drawing.Size(231, 21); + this.cboRecordFrom.TabIndex = 13; + // + // txtDescription + // + this.txtDescription.AcceptsReturn = true; + this.tableLayoutPanel1.SetColumnSpan(this.txtDescription, 2); + this.txtDescription.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtDescription.Location = new System.Drawing.Point(82, 110); + this.txtDescription.MaxLength = 9999; + this.txtDescription.Multiline = true; + this.txtDescription.Name = "txtDescription"; + this.txtDescription.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.txtDescription.Size = new System.Drawing.Size(312, 86); + this.txtDescription.TabIndex = 10; + // + // lblMovieInformation + // + this.lblMovieInformation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lblMovieInformation.AutoSize = true; + this.tableLayoutPanel1.SetColumnSpan(this.lblMovieInformation, 2); + this.lblMovieInformation.ForeColor = System.Drawing.SystemColors.GrayText; + this.lblMovieInformation.Location = new System.Drawing.Point(3, 65); + this.lblMovieInformation.Name = "lblMovieInformation"; + this.lblMovieInformation.Padding = new System.Windows.Forms.Padding(0, 0, 0, 3); + this.lblMovieInformation.Size = new System.Drawing.Size(139, 16); + this.lblMovieInformation.TabIndex = 24; + this.lblMovieInformation.Text = "Movie Information (Optional)"; + // + // frmRecordMovie + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(397, 231); + this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmRecordMovie"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Movie Recording Options"; + this.Controls.SetChildIndex(this.tableLayoutPanel1, 0); + this.Controls.SetChildIndex(this.baseConfigPanel, 0); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/UI/Forms/frmHistoryViewer.Designer.cs b/UI/Forms/frmHistoryViewer.Designer.cs new file mode 100644 index 0000000..4f60c2f --- /dev/null +++ b/UI/Forms/frmHistoryViewer.Designer.cs @@ -0,0 +1,417 @@ +namespace Mesen.GUI.Forms +{ + partial class frmHistoryViewer + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.trkPosition = new System.Windows.Forms.TrackBar(); + this.btnPausePlay = new System.Windows.Forms.Button(); + this.lblPosition = new System.Windows.Forms.Label(); + this.pnlRenderer = new System.Windows.Forms.Panel(); + this.picNsfIcon = new System.Windows.Forms.PictureBox(); + this.tlpRenderer = new System.Windows.Forms.TableLayoutPanel(); + this.ctrlRenderer = new System.Windows.Forms.Panel(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.lblVolume = new System.Windows.Forms.Label(); + this.trkVolume = new System.Windows.Forms.TrackBar(); + this.tmrUpdatePosition = new System.Windows.Forms.Timer(this.components); + this.menuStrip2 = new System.Windows.Forms.MenuStrip(); + this.mnuFile = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuImportMovie = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuExportMovie = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuCreateSaveState = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuResumeGameplay = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuClose = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuOptions = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuVideoScale = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale1x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale2x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale3x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale4x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale5x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale6x = new System.Windows.Forms.ToolStripMenuItem(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trkPosition)).BeginInit(); + this.pnlRenderer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.picNsfIcon)).BeginInit(); + this.tlpRenderer.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trkVolume)).BeginInit(); + this.menuStrip2.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.trkPosition, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btnPausePlay, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.lblPosition, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.pnlRenderer, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel3, 3, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 24); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(256, 249); + this.tableLayoutPanel1.TabIndex = 0; + // + // trkPosition + // + this.trkPosition.Dock = System.Windows.Forms.DockStyle.Top; + this.trkPosition.LargeChange = 10; + this.trkPosition.Location = new System.Drawing.Point(56, 201); + this.trkPosition.Name = "trkPosition"; + this.trkPosition.Size = new System.Drawing.Size(56, 45); + this.trkPosition.TabIndex = 1; + this.trkPosition.TickFrequency = 10; + this.trkPosition.TickStyle = System.Windows.Forms.TickStyle.Both; + this.trkPosition.ValueChanged += new System.EventHandler(this.trkPosition_ValueChanged); + // + // btnPausePlay + // + this.btnPausePlay.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.btnPausePlay.Image = global::Mesen.GUI.Properties.Resources.MediaPlay; + this.btnPausePlay.Location = new System.Drawing.Point(3, 205); + this.btnPausePlay.Name = "btnPausePlay"; + this.btnPausePlay.Size = new System.Drawing.Size(47, 36); + this.btnPausePlay.TabIndex = 2; + this.btnPausePlay.Click += new System.EventHandler(this.btnPausePlay_Click); + // + // lblPosition + // + this.lblPosition.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.lblPosition.AutoSize = true; + this.lblPosition.Location = new System.Drawing.Point(118, 217); + this.lblPosition.MinimumSize = new System.Drawing.Size(49, 13); + this.lblPosition.Name = "lblPosition"; + this.lblPosition.Size = new System.Drawing.Size(49, 13); + this.lblPosition.TabIndex = 3; + this.lblPosition.Text = "77:77:77"; + this.lblPosition.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // pnlRenderer + // + this.pnlRenderer.BackColor = System.Drawing.Color.Black; + this.pnlRenderer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tableLayoutPanel1.SetColumnSpan(this.pnlRenderer, 4); + this.pnlRenderer.Controls.Add(this.picNsfIcon); + this.pnlRenderer.Controls.Add(this.tlpRenderer); + this.pnlRenderer.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlRenderer.Location = new System.Drawing.Point(3, 3); + this.pnlRenderer.Name = "pnlRenderer"; + this.pnlRenderer.Size = new System.Drawing.Size(250, 192); + this.pnlRenderer.TabIndex = 0; + // + // picNsfIcon + // + this.picNsfIcon.Anchor = System.Windows.Forms.AnchorStyles.None; + this.picNsfIcon.BackgroundImage = global::Mesen.GUI.Properties.Resources.Donate; + this.picNsfIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.picNsfIcon.Location = new System.Drawing.Point(49, 50); + this.picNsfIcon.Margin = new System.Windows.Forms.Padding(0); + this.picNsfIcon.MaximumSize = new System.Drawing.Size(500, 90); + this.picNsfIcon.Name = "picNsfIcon"; + this.picNsfIcon.Size = new System.Drawing.Size(150, 90); + this.picNsfIcon.TabIndex = 6; + this.picNsfIcon.TabStop = false; + // + // tlpRenderer + // + this.tlpRenderer.ColumnCount = 1; + this.tlpRenderer.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tlpRenderer.Controls.Add(this.ctrlRenderer, 0, 0); + this.tlpRenderer.Cursor = System.Windows.Forms.Cursors.Hand; + this.tlpRenderer.Dock = System.Windows.Forms.DockStyle.Fill; + this.tlpRenderer.Location = new System.Drawing.Point(0, 0); + this.tlpRenderer.Margin = new System.Windows.Forms.Padding(0); + this.tlpRenderer.Name = "tlpRenderer"; + this.tlpRenderer.RowCount = 1; + this.tlpRenderer.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tlpRenderer.Size = new System.Drawing.Size(248, 190); + this.tlpRenderer.TabIndex = 0; + this.tlpRenderer.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ctrlRenderer_MouseClick); + // + // ctrlRenderer + // + this.ctrlRenderer.Anchor = System.Windows.Forms.AnchorStyles.None; + this.ctrlRenderer.Location = new System.Drawing.Point(0, 0); + this.ctrlRenderer.Margin = new System.Windows.Forms.Padding(0); + this.ctrlRenderer.Name = "ctrlRenderer"; + this.ctrlRenderer.Size = new System.Drawing.Size(248, 190); + this.ctrlRenderer.TabIndex = 0; + this.ctrlRenderer.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ctrlRenderer_MouseClick); + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 1; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Controls.Add(this.lblVolume, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.trkVolume, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(173, 201); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 2; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 31F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(80, 45); + this.tableLayoutPanel3.TabIndex = 4; + // + // lblVolume + // + this.lblVolume.Anchor = System.Windows.Forms.AnchorStyles.Top; + this.lblVolume.AutoSize = true; + this.lblVolume.Location = new System.Drawing.Point(15, 31); + this.lblVolume.MinimumSize = new System.Drawing.Size(49, 13); + this.lblVolume.Name = "lblVolume"; + this.lblVolume.Size = new System.Drawing.Size(49, 13); + this.lblVolume.TabIndex = 8; + this.lblVolume.Text = "Volume"; + this.lblVolume.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // trkVolume + // + this.trkVolume.Dock = System.Windows.Forms.DockStyle.Fill; + this.trkVolume.Location = new System.Drawing.Point(0, 0); + this.trkVolume.Margin = new System.Windows.Forms.Padding(0); + this.trkVolume.Maximum = 100; + this.trkVolume.Name = "trkVolume"; + this.trkVolume.Size = new System.Drawing.Size(80, 31); + this.trkVolume.TabIndex = 7; + this.trkVolume.TickFrequency = 10; + this.trkVolume.ValueChanged += new System.EventHandler(this.trkVolume_ValueChanged); + // + // tmrUpdatePosition + // + this.tmrUpdatePosition.Interval = 150; + this.tmrUpdatePosition.Tick += new System.EventHandler(this.tmrUpdatePosition_Tick); + // + // menuStrip2 + // + this.menuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuFile, + this.mnuOptions}); + this.menuStrip2.Location = new System.Drawing.Point(0, 0); + this.menuStrip2.Name = "menuStrip2"; + this.menuStrip2.Size = new System.Drawing.Size(256, 24); + this.menuStrip2.TabIndex = 1; + this.menuStrip2.Text = "menuStrip2"; + // + // mnuFile + // + this.mnuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuImportMovie, + this.mnuExportMovie, + this.toolStripMenuItem1, + this.mnuCreateSaveState, + this.mnuResumeGameplay, + this.toolStripMenuItem2, + this.mnuClose}); + this.mnuFile.Name = "mnuFile"; + this.mnuFile.Size = new System.Drawing.Size(37, 20); + this.mnuFile.Text = "File"; + this.mnuFile.DropDownOpening += new System.EventHandler(this.mnuFile_DropDownOpening); + // + // mnuImportMovie + // + this.mnuImportMovie.Image = global::Mesen.GUI.Properties.Resources.Import; + this.mnuImportMovie.Name = "mnuImportMovie"; + this.mnuImportMovie.Size = new System.Drawing.Size(171, 22); + this.mnuImportMovie.Text = "Import movie"; + // + // mnuExportMovie + // + this.mnuExportMovie.Image = global::Mesen.GUI.Properties.Resources.Export; + this.mnuExportMovie.Name = "mnuExportMovie"; + this.mnuExportMovie.Size = new System.Drawing.Size(171, 22); + this.mnuExportMovie.Text = "Export movie"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(168, 6); + // + // mnuCreateSaveState + // + this.mnuCreateSaveState.Image = global::Mesen.GUI.Properties.Resources.SaveFloppy; + this.mnuCreateSaveState.Name = "mnuCreateSaveState"; + this.mnuCreateSaveState.Size = new System.Drawing.Size(171, 22); + this.mnuCreateSaveState.Text = "Create Save State"; + this.mnuCreateSaveState.Click += new System.EventHandler(this.mnuCreateSaveState_Click); + // + // mnuResumeGameplay + // + this.mnuResumeGameplay.Image = global::Mesen.GUI.Properties.Resources.MediaPlay; + this.mnuResumeGameplay.Name = "mnuResumeGameplay"; + this.mnuResumeGameplay.Size = new System.Drawing.Size(171, 22); + this.mnuResumeGameplay.Text = "Resume gameplay"; + this.mnuResumeGameplay.Click += new System.EventHandler(this.mnuResumeGameplay_Click); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(168, 6); + // + // mnuClose + // + this.mnuClose.Image = global::Mesen.GUI.Properties.Resources.Exit; + this.mnuClose.Name = "mnuClose"; + this.mnuClose.Size = new System.Drawing.Size(171, 22); + this.mnuClose.Text = "Close"; + this.mnuClose.Click += new System.EventHandler(this.mnuClose_Click); + // + // mnuOptions + // + this.mnuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuVideoScale}); + this.mnuOptions.Name = "mnuOptions"; + this.mnuOptions.Size = new System.Drawing.Size(61, 20); + this.mnuOptions.Text = "Options"; + // + // mnuVideoScale + // + this.mnuVideoScale.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuScale1x, + this.mnuScale2x, + this.mnuScale3x, + this.mnuScale4x, + this.mnuScale5x, + this.mnuScale6x}); + this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen; + this.mnuVideoScale.Name = "mnuVideoScale"; + this.mnuVideoScale.Size = new System.Drawing.Size(152, 22); + this.mnuVideoScale.Text = "Video Size"; + // + // mnuScale1x + // + this.mnuScale1x.Name = "mnuScale1x"; + this.mnuScale1x.Size = new System.Drawing.Size(152, 22); + this.mnuScale1x.Text = "1x"; + this.mnuScale1x.Click += new System.EventHandler(this.mnuScale1x_Click); + // + // mnuScale2x + // + this.mnuScale2x.Name = "mnuScale2x"; + this.mnuScale2x.Size = new System.Drawing.Size(152, 22); + this.mnuScale2x.Text = "2x"; + this.mnuScale2x.Click += new System.EventHandler(this.mnuScale2x_Click); + // + // mnuScale3x + // + this.mnuScale3x.Name = "mnuScale3x"; + this.mnuScale3x.Size = new System.Drawing.Size(152, 22); + this.mnuScale3x.Text = "3x"; + this.mnuScale3x.Click += new System.EventHandler(this.mnuScale3x_Click); + // + // mnuScale4x + // + this.mnuScale4x.Name = "mnuScale4x"; + this.mnuScale4x.Size = new System.Drawing.Size(152, 22); + this.mnuScale4x.Text = "4x"; + this.mnuScale4x.Click += new System.EventHandler(this.mnuScale4x_Click); + // + // mnuScale5x + // + this.mnuScale5x.Name = "mnuScale5x"; + this.mnuScale5x.Size = new System.Drawing.Size(152, 22); + this.mnuScale5x.Text = "5x"; + this.mnuScale5x.Click += new System.EventHandler(this.mnuScale5x_Click); + // + // mnuScale6x + // + this.mnuScale6x.Name = "mnuScale6x"; + this.mnuScale6x.Size = new System.Drawing.Size(152, 22); + this.mnuScale6x.Text = "6x"; + this.mnuScale6x.Click += new System.EventHandler(this.mnuScale6x_Click); + // + // frmHistoryViewer + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(256, 273); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.menuStrip2); + this.MinimumSize = new System.Drawing.Size(272, 312); + this.Name = "frmHistoryViewer"; + this.Text = "History Viewer"; + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trkPosition)).EndInit(); + this.pnlRenderer.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.picNsfIcon)).EndInit(); + this.tlpRenderer.ResumeLayout(false); + this.tableLayoutPanel3.ResumeLayout(false); + this.tableLayoutPanel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trkVolume)).EndInit(); + this.menuStrip2.ResumeLayout(false); + this.menuStrip2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel pnlRenderer; + private System.Windows.Forms.TrackBar trkPosition; + private System.Windows.Forms.Button btnPausePlay; + private System.Windows.Forms.Timer tmrUpdatePosition; + private System.Windows.Forms.Label lblPosition; + private System.Windows.Forms.MenuStrip menuStrip2; + private System.Windows.Forms.ToolStripMenuItem mnuFile; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem mnuImportMovie; + private System.Windows.Forms.ToolStripMenuItem mnuExportMovie; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem mnuClose; + private System.Windows.Forms.ToolStripMenuItem mnuResumeGameplay; + private System.Windows.Forms.TableLayoutPanel tlpRenderer; + private System.Windows.Forms.Panel ctrlRenderer; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Label lblVolume; + private System.Windows.Forms.TrackBar trkVolume; + private System.Windows.Forms.PictureBox picNsfIcon; + private System.Windows.Forms.ToolStripMenuItem mnuCreateSaveState; + private System.Windows.Forms.ToolStripMenuItem mnuOptions; + private System.Windows.Forms.ToolStripMenuItem mnuVideoScale; + private System.Windows.Forms.ToolStripMenuItem mnuScale1x; + private System.Windows.Forms.ToolStripMenuItem mnuScale2x; + private System.Windows.Forms.ToolStripMenuItem mnuScale3x; + private System.Windows.Forms.ToolStripMenuItem mnuScale4x; + private System.Windows.Forms.ToolStripMenuItem mnuScale5x; + private System.Windows.Forms.ToolStripMenuItem mnuScale6x; + } +} \ No newline at end of file diff --git a/UI/Forms/frmHistoryViewer.cs b/UI/Forms/frmHistoryViewer.cs new file mode 100644 index 0000000..577cf10 --- /dev/null +++ b/UI/Forms/frmHistoryViewer.cs @@ -0,0 +1,292 @@ +using Mesen.GUI.Config; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Mesen.GUI.Forms +{ + public partial class frmHistoryViewer : BaseForm + { + private Thread _emuThread; + private bool _paused = true; + private bool _isNsf = false; + + public frmHistoryViewer() + { + InitializeComponent(); + } + + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + RestoreLocation(ConfigManager.Config.HistoryViewer.WindowLocation, ConfigManager.Config.HistoryViewer.WindowSize); + + _isNsf = false; // InteropEmu.IsNsf(); + tlpRenderer.Visible = !_isNsf; + picNsfIcon.Visible = _isNsf; + } + + protected override void OnClosed(EventArgs e) + { + base.OnClosed(e); + + ConfigManager.Config.HistoryViewer.WindowLocation = this.WindowState == FormWindowState.Normal ? this.Location : this.RestoreBounds.Location; + ConfigManager.Config.HistoryViewer.WindowSize = this.WindowState == FormWindowState.Normal ? this.Size : this.RestoreBounds.Size; + ConfigManager.Config.HistoryViewer.Volume = trkVolume.Value; + ConfigManager.ApplyChanges(); + } + + protected override void OnShown(EventArgs e) + { + base.OnShown(e); + + HistoryViewerApi.HistoryViewerInitialize(this.Handle, ctrlRenderer.Handle); + trkPosition.Maximum = (int)(HistoryViewerApi.HistoryViewerGetHistoryLength() / 60); + UpdatePositionLabel(0); + StartEmuThread(); + EmuApi.Resume(EmuApi.ConsoleId.HistoryViewer); + tmrUpdatePosition.Start(); + trkVolume.Value = ConfigManager.Config.HistoryViewer.Volume; + btnPausePlay.Focus(); + + UpdateScale(); + this.Resize += (s, evt) => { + UpdateScale(); + }; + } + + protected override void OnClosing(CancelEventArgs e) + { + tmrUpdatePosition.Stop(); + HistoryViewerApi.HistoryViewerRelease(); + base.OnClosing(e); + } + + private void StartEmuThread() + { + if(_emuThread == null) { + _emuThread = new Thread(() => { + try { + HistoryViewerApi.HistoryViewerRun(); + _emuThread = null; + } catch(Exception ex) { + MesenMsgBox.Show("UnexpectedError", MessageBoxButtons.OK, MessageBoxIcon.Error, ex.ToString()); + _emuThread = null; + } + }); + _emuThread.Start(); + } + } + + private void TogglePause() + { + if(trkPosition.Value == trkPosition.Maximum) { + HistoryViewerApi.HistoryViewerSetPosition(0); + } + if(_paused) { + EmuApi.Resume(EmuApi.ConsoleId.HistoryViewer); + } else { + EmuApi.Pause(EmuApi.ConsoleId.HistoryViewer); + } + } + + private void trkPosition_ValueChanged(object sender, EventArgs e) + { + HistoryViewerApi.HistoryViewerSetPosition((UInt32)trkPosition.Value * 2); + } + + private void SetScale(int scale) + { + ScreenSize size = EmuApi.GetScreenSize(true); + Size newSize = new Size(size.Width * scale, size.Height * scale); + if(this.WindowState != FormWindowState.Maximized) { + Size sizeGap = newSize - ctrlRenderer.Size; + this.ClientSize += sizeGap; + } + ctrlRenderer.Size = newSize; + } + + private void UpdateScale() + { + Size dimensions = pnlRenderer.ClientSize; + ScreenSize size = EmuApi.GetScreenSize(true, EmuApi.ConsoleId.HistoryViewer); + + double verticalScale = (double)dimensions.Height / size.Height; + double horizontalScale = (double)dimensions.Width / size.Width; + double scale = Math.Min(verticalScale, horizontalScale); +// InteropEmu.SetVideoScale(scale, InteropEmu.ConsoleId.HistoryViewer); + } + + private void tmrUpdatePosition_Tick(object sender, EventArgs e) + { + ScreenSize size = EmuApi.GetScreenSize(false, EmuApi.ConsoleId.HistoryViewer); + if(size.Width != ctrlRenderer.ClientSize.Width || size.Height != ctrlRenderer.ClientSize.Height) { + ctrlRenderer.ClientSize = new Size(size.Width, size.Height); + } + + _paused = EmuApi.IsPaused(EmuApi.ConsoleId.HistoryViewer); + if(_paused) { + btnPausePlay.Image = Properties.Resources.MediaPlay; + } else { + btnPausePlay.Image = Properties.Resources.MediaPause; + } + + UInt32 positionInSeconds = HistoryViewerApi.HistoryViewerGetPosition() / 2; + UpdatePositionLabel(positionInSeconds); + + if(positionInSeconds <= trkPosition.Maximum) { + trkPosition.ValueChanged -= trkPosition_ValueChanged; + trkPosition.Value = (int)positionInSeconds; + trkPosition.ValueChanged += trkPosition_ValueChanged; + } + } + + private void UpdatePositionLabel(uint positionInSeconds) + { + TimeSpan currentPosition = new TimeSpan(0, 0, (int)positionInSeconds); + TimeSpan totalLength = new TimeSpan(0, 0, trkPosition.Maximum); + lblPosition.Text = ( + currentPosition.Minutes.ToString("00") + ":" + currentPosition.Seconds.ToString("00") + + " / " + + totalLength.Minutes.ToString("00") + ":" + totalLength.Seconds.ToString("00") + ); + } + + private void mnuClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void mnuResumeGameplay_Click(object sender, EventArgs e) + { + HistoryViewerApi.HistoryViewerResumeGameplay(HistoryViewerApi.HistoryViewerGetPosition()); + } + + private void mnuFile_DropDownOpening(object sender, EventArgs e) + { + mnuExportMovie.DropDownItems.Clear(); + + List segments = new List(HistoryViewerApi.HistoryViewerGetSegments()); + UInt32 segmentStart = 0; + segments.Add(HistoryViewerApi.HistoryViewerGetHistoryLength() / 30); + + for(int i = 0; i < segments.Count; i++) { + if(segments[i] - segmentStart > 4) { + //Only list segments that are at least 2 seconds long + UInt32 segStart = segmentStart; + UInt32 segEnd = segments[i]; + TimeSpan start = new TimeSpan(0, 0, (int)(segmentStart) / 2); + TimeSpan end = new TimeSpan(0, 0, (int)(segEnd / 2)); + + string segmentName = ResourceHelper.GetMessage("MovieSegment", (mnuExportMovie.DropDownItems.Count + 1).ToString()); + ToolStripMenuItem segmentItem = new ToolStripMenuItem(segmentName + ", " + start.ToString() + " - " + end.ToString()); + + ToolStripMenuItem exportFull = new ToolStripMenuItem(ResourceHelper.GetMessage("MovieExportEntireSegment")); + exportFull.Click += (s, evt) => { + ExportMovie(segStart, segEnd); + }; + + ToolStripMenuItem exportCustomRange = new ToolStripMenuItem(ResourceHelper.GetMessage("MovieExportSpecificRange")); + exportCustomRange.Click += (s, evt) => { + using(frmSelectExportRange frm = new frmSelectExportRange(segStart, segEnd)) { + if(frm.ShowDialog(this) == DialogResult.OK) { + ExportMovie(frm.ExportStart, frm.ExportEnd); + } + } + }; + + segmentItem.DropDown.Items.Add(exportFull); + segmentItem.DropDown.Items.Add(exportCustomRange); + mnuExportMovie.DropDownItems.Add(segmentItem); + } + segmentStart = segments[i] + 1; + } + + mnuImportMovie.Visible = false; + mnuExportMovie.Enabled = mnuExportMovie.HasDropDownItems && !_isNsf; + } + + private void ExportMovie(UInt32 segStart, UInt32 segEnd) + { + using(SaveFileDialog sfd = new SaveFileDialog()) { + sfd.SetFilter(ResourceHelper.GetMessage("FilterMovie")); + sfd.InitialDirectory = ConfigManager.MovieFolder; + sfd.FileName = EmuApi.GetRomInfo().GetRomName() + ".mmo"; + if(sfd.ShowDialog() == DialogResult.OK) { + if(!HistoryViewerApi.HistoryViewerSaveMovie(sfd.FileName, segStart, segEnd)) { + MesenMsgBox.Show("MovieSaveError", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } + + private void mnuCreateSaveState_Click(object sender, EventArgs e) + { + using(SaveFileDialog sfd = new SaveFileDialog()) { + sfd.SetFilter(ResourceHelper.GetMessage("FilterSavestate")); + sfd.InitialDirectory = ConfigManager.SaveStateFolder; + sfd.FileName = EmuApi.GetRomInfo().GetRomName() + ".mst"; + if(sfd.ShowDialog() == DialogResult.OK) { + if(!HistoryViewerApi.HistoryViewerCreateSaveState(sfd.FileName, HistoryViewerApi.HistoryViewerGetPosition())) { + MesenMsgBox.Show("FileSaveError", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + } + + private void btnPausePlay_Click(object sender, EventArgs e) + { + TogglePause(); + } + + private void ctrlRenderer_MouseClick(object sender, MouseEventArgs e) + { + if(e.Button == MouseButtons.Left) { + TogglePause(); + } + } + + private void trkVolume_ValueChanged(object sender, EventArgs e) + { +// InteropEmu.SetMasterVolume(trkVolume.Value / 10d, 0, EmuApi.ConsoleId.HistoryViewer); + } + + private void mnuScale1x_Click(object sender, EventArgs e) + { + SetScale(1); + } + + private void mnuScale2x_Click(object sender, EventArgs e) + { + SetScale(2); + } + + private void mnuScale3x_Click(object sender, EventArgs e) + { + SetScale(3); + } + + private void mnuScale4x_Click(object sender, EventArgs e) + { + SetScale(4); + } + + private void mnuScale5x_Click(object sender, EventArgs e) + { + SetScale(5); + } + + private void mnuScale6x_Click(object sender, EventArgs e) + { + SetScale(6); + } + } +} diff --git a/UI/Forms/frmHistoryViewer.resx b/UI/Forms/frmHistoryViewer.resx new file mode 100644 index 0000000..d5ffb8b --- /dev/null +++ b/UI/Forms/frmHistoryViewer.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 107, 17 + + + 261, 17 + + \ No newline at end of file diff --git a/UI/Forms/frmMain.Designer.cs b/UI/Forms/frmMain.Designer.cs index b8914de..2bd87ed 100644 --- a/UI/Forms/frmMain.Designer.cs +++ b/UI/Forms/frmMain.Designer.cs @@ -27,197 +27,198 @@ /// private void InitializeComponent() { - this.ctrlRenderer = new Mesen.GUI.Controls.ctrlRenderer(); - this.mnuMain = new Mesen.GUI.Controls.ctrlMesenMenuStrip(); - this.mnuFile = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuOpen = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuReloadRom = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuSaveState = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuLoadState = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuRecentFiles = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuExit = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGame = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPause = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuReset = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPowerCycle = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem24 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuPowerOff = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuOptions = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmulationSpeed = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmuSpeedNormal = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuIncreaseSpeed = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuDecreaseSpeed = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmuSpeedMaximumSpeed = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuEmuSpeedTriple = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmuSpeedDouble = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmuSpeedHalf = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmuSpeedQuarter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuShowFPS = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuVideoScale = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale1x = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale2x = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale3x = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale4x = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale5x = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale6x = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuFullscreen = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuVideoFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNoneFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem21 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuNtscFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuXBRZ2xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuXBRZ3xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuXBRZ4xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuXBRZ5xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuXBRZ6xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuHQ2xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuHQ3xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuHQ4xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuScale2xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale3xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScale4xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem23 = new System.Windows.Forms.ToolStripSeparator(); - this.mnu2xSaiFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuSuper2xSaiFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuSuperEagleFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuPrescale2xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPrescale3xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPrescale4xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPrescale6xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPrescale8xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPrescale10xFilter = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuBilinearInterpolation = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuBlendHighResolutionModes = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRegion = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRegionAuto = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuRegionNtsc = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRegionPal = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuAudioConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuInputConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuVideoConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEmulationConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuGameboyConfig = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuPreferences = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTools = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuCheats = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuMovies = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPlayMovie = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRecordMovie = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuStopMovie = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlay = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuStartServer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuConnect = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlaySelectController = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlayPlayer1 = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlayPlayer2 = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlayPlayer3 = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlayPlayer4 = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNetPlayPlayer5 = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuNetPlaySpectator = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuProfile = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem25 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuSoundRecorder = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuWaveRecord = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuWaveStop = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuVideoRecorder = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuAviRecord = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuAviStop = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuTests = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTestRun = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTestRecord = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTestStop = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRunAllTests = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuLogWindow = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuRandomGame = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTakeScreenshot = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuDebug = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbDebugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbEventViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbTilemapViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbTileViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbSpriteViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGbPaletteViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.sepGameboyDebugger = new System.Windows.Forms.ToolStripSeparator(); - this.mnuDebugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuEventViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuMemoryTools = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuRegisterViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTraceLogger = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem26 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuAssembler = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuDebugLog = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuProfiler = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuScriptWindow = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuTilemapViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuTileViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuSpriteViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuPaletteViewer = new System.Windows.Forms.ToolStripMenuItem(); - this.sepCoprocessors = new System.Windows.Forms.ToolStripSeparator(); - this.mnuSpcDebugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuSa1Debugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuGsuDebugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuNecDspDebugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuCx4Debugger = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuHelp = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuReportBug = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem(); - this.pnlRenderer = new System.Windows.Forms.Panel(); - this.ctrlRecentGames = new Mesen.GUI.Controls.ctrlRecentGames(); - this.mnuOnlineHelp = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem27 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuMain.SuspendLayout(); - this.pnlRenderer.SuspendLayout(); - this.SuspendLayout(); - // - // ctrlRenderer - // - this.ctrlRenderer.Location = new System.Drawing.Point(0, 0); - this.ctrlRenderer.Name = "ctrlRenderer"; - this.ctrlRenderer.Size = new System.Drawing.Size(512, 478); - this.ctrlRenderer.TabIndex = 0; - // - // mnuMain - // - this.mnuMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.ctrlRenderer = new Mesen.GUI.Controls.ctrlRenderer(); + this.mnuMain = new Mesen.GUI.Controls.ctrlMesenMenuStrip(); + this.mnuFile = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuOpen = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuReloadRom = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuSaveState = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuLoadState = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRecentFiles = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuExit = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGame = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPause = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuReset = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPowerCycle = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem24 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuPowerOff = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuOptions = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmulationSpeed = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmuSpeedNormal = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuIncreaseSpeed = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuDecreaseSpeed = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmuSpeedMaximumSpeed = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuEmuSpeedTriple = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmuSpeedDouble = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmuSpeedHalf = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmuSpeedQuarter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuShowFPS = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuVideoScale = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale1x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale2x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale3x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale4x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale5x = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale6x = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuFullscreen = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuVideoFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNoneFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem21 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuNtscFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuXBRZ2xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXBRZ3xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXBRZ4xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXBRZ5xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuXBRZ6xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuHQ2xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuHQ3xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuHQ4xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuScale2xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale3xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScale4xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem23 = new System.Windows.Forms.ToolStripSeparator(); + this.mnu2xSaiFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSuper2xSaiFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSuperEagleFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuPrescale2xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPrescale3xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPrescale4xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPrescale6xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPrescale8xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPrescale10xFilter = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuBilinearInterpolation = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuBlendHighResolutionModes = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRegion = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRegionAuto = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRegionNtsc = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRegionPal = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuAudioConfig = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuInputConfig = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuVideoConfig = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEmulationConfig = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuGameboyConfig = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuPreferences = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTools = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlay = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuStartServer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuConnect = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlaySelectController = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlayPlayer1 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlayPlayer2 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlayPlayer3 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlayPlayer4 = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNetPlayPlayer5 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuNetPlaySpectator = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuProfile = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuMovies = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPlayMovie = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRecordMovie = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuStopMovie = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuHistoryViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuCheats = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem25 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuSoundRecorder = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuWaveRecord = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuWaveStop = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuVideoRecorder = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuAviRecord = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuAviStop = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuTests = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTestRun = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTestRecord = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTestStop = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRunAllTests = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuLogWindow = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRandomGame = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTakeScreenshot = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuDebug = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbDebugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbEventViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbTilemapViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbTileViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbSpriteViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGbPaletteViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.sepGameboyDebugger = new System.Windows.Forms.ToolStripSeparator(); + this.mnuDebugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuEventViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuMemoryTools = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuRegisterViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTraceLogger = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem26 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuAssembler = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuDebugLog = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuProfiler = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuScriptWindow = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuTilemapViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuTileViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSpriteViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuPaletteViewer = new System.Windows.Forms.ToolStripMenuItem(); + this.sepCoprocessors = new System.Windows.Forms.ToolStripSeparator(); + this.mnuSpcDebugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSa1Debugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuGsuDebugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuNecDspDebugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuCx4Debugger = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuHelp = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuOnlineHelp = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem27 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuReportBug = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem(); + this.pnlRenderer = new System.Windows.Forms.Panel(); + this.ctrlRecentGames = new Mesen.GUI.Controls.ctrlRecentGames(); + this.mnuMain.SuspendLayout(); + this.pnlRenderer.SuspendLayout(); + this.SuspendLayout(); + // + // ctrlRenderer + // + this.ctrlRenderer.Location = new System.Drawing.Point(0, 0); + this.ctrlRenderer.Name = "ctrlRenderer"; + this.ctrlRenderer.Size = new System.Drawing.Size(512, 478); + this.ctrlRenderer.TabIndex = 0; + // + // mnuMain + // + this.mnuMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuFile, this.mnuGame, this.mnuOptions, this.mnuTools, this.mnuDebug, this.mnuHelp}); - this.mnuMain.Location = new System.Drawing.Point(0, 0); - this.mnuMain.Name = "mnuMain"; - this.mnuMain.Size = new System.Drawing.Size(512, 24); - this.mnuMain.TabIndex = 1; - this.mnuMain.Text = "ctrlMesenMenuStrip1"; - // - // mnuFile - // - this.mnuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuMain.Location = new System.Drawing.Point(0, 0); + this.mnuMain.Name = "mnuMain"; + this.mnuMain.Size = new System.Drawing.Size(512, 24); + this.mnuMain.TabIndex = 1; + this.mnuMain.Text = "ctrlMesenMenuStrip1"; + // + // mnuFile + // + this.mnuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuOpen, this.mnuReloadRom, this.toolStripMenuItem2, @@ -227,122 +228,122 @@ this.mnuRecentFiles, this.toolStripMenuItem6, this.mnuExit}); - this.mnuFile.Name = "mnuFile"; - this.mnuFile.Size = new System.Drawing.Size(37, 20); - this.mnuFile.Text = "File"; - this.mnuFile.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuFile.DropDownOpening += new System.EventHandler(this.mnuFile_DropDownOpening); - this.mnuFile.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuOpen - // - this.mnuOpen.Image = global::Mesen.GUI.Properties.Resources.Folder; - this.mnuOpen.Name = "mnuOpen"; - this.mnuOpen.Size = new System.Drawing.Size(140, 22); - this.mnuOpen.Text = "Open"; - // - // mnuReloadRom - // - this.mnuReloadRom.Image = global::Mesen.GUI.Properties.Resources.Refresh; - this.mnuReloadRom.Name = "mnuReloadRom"; - this.mnuReloadRom.Size = new System.Drawing.Size(140, 22); - this.mnuReloadRom.Text = "Reload ROM"; - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(137, 6); - // - // mnuSaveState - // - this.mnuSaveState.Name = "mnuSaveState"; - this.mnuSaveState.Size = new System.Drawing.Size(140, 22); - this.mnuSaveState.Text = "Save State"; - this.mnuSaveState.DropDownOpening += new System.EventHandler(this.mnuSaveState_DropDownOpening); - // - // mnuLoadState - // - this.mnuLoadState.Name = "mnuLoadState"; - this.mnuLoadState.Size = new System.Drawing.Size(140, 22); - this.mnuLoadState.Text = "Load State"; - this.mnuLoadState.DropDownOpening += new System.EventHandler(this.mnuLoadState_DropDownOpening); - // - // toolStripMenuItem10 - // - this.toolStripMenuItem10.Name = "toolStripMenuItem10"; - this.toolStripMenuItem10.Size = new System.Drawing.Size(137, 6); - // - // mnuRecentFiles - // - this.mnuRecentFiles.Name = "mnuRecentFiles"; - this.mnuRecentFiles.Size = new System.Drawing.Size(140, 22); - this.mnuRecentFiles.Text = "Recent Files"; - // - // toolStripMenuItem6 - // - this.toolStripMenuItem6.Name = "toolStripMenuItem6"; - this.toolStripMenuItem6.Size = new System.Drawing.Size(137, 6); - // - // mnuExit - // - this.mnuExit.Image = global::Mesen.GUI.Properties.Resources.Exit; - this.mnuExit.Name = "mnuExit"; - this.mnuExit.Size = new System.Drawing.Size(140, 22); - this.mnuExit.Text = "Exit"; - // - // mnuGame - // - this.mnuGame.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuFile.Name = "mnuFile"; + this.mnuFile.Size = new System.Drawing.Size(37, 20); + this.mnuFile.Text = "File"; + this.mnuFile.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuFile.DropDownOpening += new System.EventHandler(this.mnuFile_DropDownOpening); + this.mnuFile.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuOpen + // + this.mnuOpen.Image = global::Mesen.GUI.Properties.Resources.Folder; + this.mnuOpen.Name = "mnuOpen"; + this.mnuOpen.Size = new System.Drawing.Size(140, 22); + this.mnuOpen.Text = "Open"; + // + // mnuReloadRom + // + this.mnuReloadRom.Image = global::Mesen.GUI.Properties.Resources.Refresh; + this.mnuReloadRom.Name = "mnuReloadRom"; + this.mnuReloadRom.Size = new System.Drawing.Size(140, 22); + this.mnuReloadRom.Text = "Reload ROM"; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(137, 6); + // + // mnuSaveState + // + this.mnuSaveState.Name = "mnuSaveState"; + this.mnuSaveState.Size = new System.Drawing.Size(140, 22); + this.mnuSaveState.Text = "Save State"; + this.mnuSaveState.DropDownOpening += new System.EventHandler(this.mnuSaveState_DropDownOpening); + // + // mnuLoadState + // + this.mnuLoadState.Name = "mnuLoadState"; + this.mnuLoadState.Size = new System.Drawing.Size(140, 22); + this.mnuLoadState.Text = "Load State"; + this.mnuLoadState.DropDownOpening += new System.EventHandler(this.mnuLoadState_DropDownOpening); + // + // toolStripMenuItem10 + // + this.toolStripMenuItem10.Name = "toolStripMenuItem10"; + this.toolStripMenuItem10.Size = new System.Drawing.Size(137, 6); + // + // mnuRecentFiles + // + this.mnuRecentFiles.Name = "mnuRecentFiles"; + this.mnuRecentFiles.Size = new System.Drawing.Size(140, 22); + this.mnuRecentFiles.Text = "Recent Files"; + // + // toolStripMenuItem6 + // + this.toolStripMenuItem6.Name = "toolStripMenuItem6"; + this.toolStripMenuItem6.Size = new System.Drawing.Size(137, 6); + // + // mnuExit + // + this.mnuExit.Image = global::Mesen.GUI.Properties.Resources.Exit; + this.mnuExit.Name = "mnuExit"; + this.mnuExit.Size = new System.Drawing.Size(140, 22); + this.mnuExit.Text = "Exit"; + // + // mnuGame + // + this.mnuGame.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuPause, this.mnuReset, this.mnuPowerCycle, this.toolStripMenuItem24, this.mnuPowerOff}); - this.mnuGame.Name = "mnuGame"; - this.mnuGame.Size = new System.Drawing.Size(50, 20); - this.mnuGame.Text = "Game"; - this.mnuGame.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuGame.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuPause - // - this.mnuPause.Enabled = false; - this.mnuPause.Image = global::Mesen.GUI.Properties.Resources.MediaPause; - this.mnuPause.Name = "mnuPause"; - this.mnuPause.Size = new System.Drawing.Size(139, 22); - this.mnuPause.Text = "Pause"; - // - // mnuReset - // - this.mnuReset.Enabled = false; - this.mnuReset.Image = global::Mesen.GUI.Properties.Resources.Refresh; - this.mnuReset.Name = "mnuReset"; - this.mnuReset.Size = new System.Drawing.Size(139, 22); - this.mnuReset.Text = "Reset"; - // - // mnuPowerCycle - // - this.mnuPowerCycle.Enabled = false; - this.mnuPowerCycle.Image = global::Mesen.GUI.Properties.Resources.PowerCycle; - this.mnuPowerCycle.Name = "mnuPowerCycle"; - this.mnuPowerCycle.Size = new System.Drawing.Size(139, 22); - this.mnuPowerCycle.Text = "Power Cycle"; - // - // toolStripMenuItem24 - // - this.toolStripMenuItem24.Name = "toolStripMenuItem24"; - this.toolStripMenuItem24.Size = new System.Drawing.Size(136, 6); - // - // mnuPowerOff - // - this.mnuPowerOff.Image = global::Mesen.GUI.Properties.Resources.MediaStop; - this.mnuPowerOff.Name = "mnuPowerOff"; - this.mnuPowerOff.Size = new System.Drawing.Size(139, 22); - this.mnuPowerOff.Text = "Power Off"; - // - // mnuOptions - // - this.mnuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuGame.Name = "mnuGame"; + this.mnuGame.Size = new System.Drawing.Size(50, 20); + this.mnuGame.Text = "Game"; + this.mnuGame.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuGame.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuPause + // + this.mnuPause.Enabled = false; + this.mnuPause.Image = global::Mesen.GUI.Properties.Resources.MediaPause; + this.mnuPause.Name = "mnuPause"; + this.mnuPause.Size = new System.Drawing.Size(139, 22); + this.mnuPause.Text = "Pause"; + // + // mnuReset + // + this.mnuReset.Enabled = false; + this.mnuReset.Image = global::Mesen.GUI.Properties.Resources.Refresh; + this.mnuReset.Name = "mnuReset"; + this.mnuReset.Size = new System.Drawing.Size(139, 22); + this.mnuReset.Text = "Reset"; + // + // mnuPowerCycle + // + this.mnuPowerCycle.Enabled = false; + this.mnuPowerCycle.Image = global::Mesen.GUI.Properties.Resources.PowerCycle; + this.mnuPowerCycle.Name = "mnuPowerCycle"; + this.mnuPowerCycle.Size = new System.Drawing.Size(139, 22); + this.mnuPowerCycle.Text = "Power Cycle"; + // + // toolStripMenuItem24 + // + this.toolStripMenuItem24.Name = "toolStripMenuItem24"; + this.toolStripMenuItem24.Size = new System.Drawing.Size(136, 6); + // + // mnuPowerOff + // + this.mnuPowerOff.Image = global::Mesen.GUI.Properties.Resources.MediaStop; + this.mnuPowerOff.Name = "mnuPowerOff"; + this.mnuPowerOff.Size = new System.Drawing.Size(139, 22); + this.mnuPowerOff.Text = "Power Off"; + // + // mnuOptions + // + this.mnuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuEmulationSpeed, this.mnuVideoScale, this.mnuVideoFilter, @@ -356,15 +357,15 @@ this.mnuGameboyConfig, this.toolStripMenuItem3, this.mnuPreferences}); - this.mnuOptions.Name = "mnuOptions"; - this.mnuOptions.Size = new System.Drawing.Size(61, 20); - this.mnuOptions.Text = "Options"; - this.mnuOptions.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuOptions.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuEmulationSpeed - // - this.mnuEmulationSpeed.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuOptions.Name = "mnuOptions"; + this.mnuOptions.Size = new System.Drawing.Size(61, 20); + this.mnuOptions.Text = "Options"; + this.mnuOptions.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuOptions.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuEmulationSpeed + // + this.mnuEmulationSpeed.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuEmuSpeedNormal, this.toolStripMenuItem8, this.mnuIncreaseSpeed, @@ -377,85 +378,85 @@ this.mnuEmuSpeedQuarter, this.toolStripMenuItem14, this.mnuShowFPS}); - this.mnuEmulationSpeed.Image = global::Mesen.GUI.Properties.Resources.Speed; - this.mnuEmulationSpeed.Name = "mnuEmulationSpeed"; - this.mnuEmulationSpeed.Size = new System.Drawing.Size(135, 22); - this.mnuEmulationSpeed.Text = "Speed"; - this.mnuEmulationSpeed.DropDownOpening += new System.EventHandler(this.mnuEmulationSpeed_DropDownOpening); - // - // mnuEmuSpeedNormal - // - this.mnuEmuSpeedNormal.Name = "mnuEmuSpeedNormal"; - this.mnuEmuSpeedNormal.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedNormal.Text = "Normal (100%)"; - // - // toolStripMenuItem8 - // - this.toolStripMenuItem8.Name = "toolStripMenuItem8"; - this.toolStripMenuItem8.Size = new System.Drawing.Size(160, 6); - // - // mnuIncreaseSpeed - // - this.mnuIncreaseSpeed.Name = "mnuIncreaseSpeed"; - this.mnuIncreaseSpeed.Size = new System.Drawing.Size(163, 22); - this.mnuIncreaseSpeed.Text = "Increase Speed"; - // - // mnuDecreaseSpeed - // - this.mnuDecreaseSpeed.Name = "mnuDecreaseSpeed"; - this.mnuDecreaseSpeed.Size = new System.Drawing.Size(163, 22); - this.mnuDecreaseSpeed.Text = "Decrease Speed"; - // - // mnuEmuSpeedMaximumSpeed - // - this.mnuEmuSpeedMaximumSpeed.Name = "mnuEmuSpeedMaximumSpeed"; - this.mnuEmuSpeedMaximumSpeed.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedMaximumSpeed.Text = "Maximum Speed"; - // - // toolStripMenuItem9 - // - this.toolStripMenuItem9.Name = "toolStripMenuItem9"; - this.toolStripMenuItem9.Size = new System.Drawing.Size(160, 6); - // - // mnuEmuSpeedTriple - // - this.mnuEmuSpeedTriple.Name = "mnuEmuSpeedTriple"; - this.mnuEmuSpeedTriple.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedTriple.Tag = ""; - this.mnuEmuSpeedTriple.Text = "Triple (300%)"; - // - // mnuEmuSpeedDouble - // - this.mnuEmuSpeedDouble.Name = "mnuEmuSpeedDouble"; - this.mnuEmuSpeedDouble.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedDouble.Text = "Double (200%)"; - // - // mnuEmuSpeedHalf - // - this.mnuEmuSpeedHalf.Name = "mnuEmuSpeedHalf"; - this.mnuEmuSpeedHalf.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedHalf.Text = "Half (50%)"; - // - // mnuEmuSpeedQuarter - // - this.mnuEmuSpeedQuarter.Name = "mnuEmuSpeedQuarter"; - this.mnuEmuSpeedQuarter.Size = new System.Drawing.Size(163, 22); - this.mnuEmuSpeedQuarter.Text = "Quarter (25%)"; - // - // toolStripMenuItem14 - // - this.toolStripMenuItem14.Name = "toolStripMenuItem14"; - this.toolStripMenuItem14.Size = new System.Drawing.Size(160, 6); - // - // mnuShowFPS - // - this.mnuShowFPS.Name = "mnuShowFPS"; - this.mnuShowFPS.Size = new System.Drawing.Size(163, 22); - this.mnuShowFPS.Text = "Show FPS"; - // - // mnuVideoScale - // - this.mnuVideoScale.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuEmulationSpeed.Image = global::Mesen.GUI.Properties.Resources.Speed; + this.mnuEmulationSpeed.Name = "mnuEmulationSpeed"; + this.mnuEmulationSpeed.Size = new System.Drawing.Size(135, 22); + this.mnuEmulationSpeed.Text = "Speed"; + this.mnuEmulationSpeed.DropDownOpening += new System.EventHandler(this.mnuEmulationSpeed_DropDownOpening); + // + // mnuEmuSpeedNormal + // + this.mnuEmuSpeedNormal.Name = "mnuEmuSpeedNormal"; + this.mnuEmuSpeedNormal.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedNormal.Text = "Normal (100%)"; + // + // toolStripMenuItem8 + // + this.toolStripMenuItem8.Name = "toolStripMenuItem8"; + this.toolStripMenuItem8.Size = new System.Drawing.Size(161, 6); + // + // mnuIncreaseSpeed + // + this.mnuIncreaseSpeed.Name = "mnuIncreaseSpeed"; + this.mnuIncreaseSpeed.Size = new System.Drawing.Size(164, 22); + this.mnuIncreaseSpeed.Text = "Increase Speed"; + // + // mnuDecreaseSpeed + // + this.mnuDecreaseSpeed.Name = "mnuDecreaseSpeed"; + this.mnuDecreaseSpeed.Size = new System.Drawing.Size(164, 22); + this.mnuDecreaseSpeed.Text = "Decrease Speed"; + // + // mnuEmuSpeedMaximumSpeed + // + this.mnuEmuSpeedMaximumSpeed.Name = "mnuEmuSpeedMaximumSpeed"; + this.mnuEmuSpeedMaximumSpeed.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedMaximumSpeed.Text = "Maximum Speed"; + // + // toolStripMenuItem9 + // + this.toolStripMenuItem9.Name = "toolStripMenuItem9"; + this.toolStripMenuItem9.Size = new System.Drawing.Size(161, 6); + // + // mnuEmuSpeedTriple + // + this.mnuEmuSpeedTriple.Name = "mnuEmuSpeedTriple"; + this.mnuEmuSpeedTriple.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedTriple.Tag = ""; + this.mnuEmuSpeedTriple.Text = "Triple (300%)"; + // + // mnuEmuSpeedDouble + // + this.mnuEmuSpeedDouble.Name = "mnuEmuSpeedDouble"; + this.mnuEmuSpeedDouble.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedDouble.Text = "Double (200%)"; + // + // mnuEmuSpeedHalf + // + this.mnuEmuSpeedHalf.Name = "mnuEmuSpeedHalf"; + this.mnuEmuSpeedHalf.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedHalf.Text = "Half (50%)"; + // + // mnuEmuSpeedQuarter + // + this.mnuEmuSpeedQuarter.Name = "mnuEmuSpeedQuarter"; + this.mnuEmuSpeedQuarter.Size = new System.Drawing.Size(164, 22); + this.mnuEmuSpeedQuarter.Text = "Quarter (25%)"; + // + // toolStripMenuItem14 + // + this.toolStripMenuItem14.Name = "toolStripMenuItem14"; + this.toolStripMenuItem14.Size = new System.Drawing.Size(161, 6); + // + // mnuShowFPS + // + this.mnuShowFPS.Name = "mnuShowFPS"; + this.mnuShowFPS.Size = new System.Drawing.Size(164, 22); + this.mnuShowFPS.Text = "Show FPS"; + // + // mnuVideoScale + // + this.mnuVideoScale.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuScale1x, this.mnuScale2x, this.mnuScale3x, @@ -464,62 +465,62 @@ this.mnuScale6x, this.toolStripMenuItem13, this.mnuFullscreen}); - this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen; - this.mnuVideoScale.Name = "mnuVideoScale"; - this.mnuVideoScale.Size = new System.Drawing.Size(135, 22); - this.mnuVideoScale.Text = "Video Size"; - this.mnuVideoScale.DropDownOpening += new System.EventHandler(this.mnuVideoScale_DropDownOpening); - // - // mnuScale1x - // - this.mnuScale1x.Name = "mnuScale1x"; - this.mnuScale1x.Size = new System.Drawing.Size(127, 22); - this.mnuScale1x.Text = "1x"; - // - // mnuScale2x - // - this.mnuScale2x.Name = "mnuScale2x"; - this.mnuScale2x.Size = new System.Drawing.Size(127, 22); - this.mnuScale2x.Text = "2x"; - // - // mnuScale3x - // - this.mnuScale3x.Name = "mnuScale3x"; - this.mnuScale3x.Size = new System.Drawing.Size(127, 22); - this.mnuScale3x.Text = "3x"; - // - // mnuScale4x - // - this.mnuScale4x.Name = "mnuScale4x"; - this.mnuScale4x.Size = new System.Drawing.Size(127, 22); - this.mnuScale4x.Text = "4x"; - // - // mnuScale5x - // - this.mnuScale5x.Name = "mnuScale5x"; - this.mnuScale5x.Size = new System.Drawing.Size(127, 22); - this.mnuScale5x.Text = "5x"; - // - // mnuScale6x - // - this.mnuScale6x.Name = "mnuScale6x"; - this.mnuScale6x.Size = new System.Drawing.Size(127, 22); - this.mnuScale6x.Text = "6x"; - // - // toolStripMenuItem13 - // - this.toolStripMenuItem13.Name = "toolStripMenuItem13"; - this.toolStripMenuItem13.Size = new System.Drawing.Size(124, 6); - // - // mnuFullscreen - // - this.mnuFullscreen.Name = "mnuFullscreen"; - this.mnuFullscreen.Size = new System.Drawing.Size(127, 22); - this.mnuFullscreen.Text = "Fullscreen"; - // - // mnuVideoFilter - // - this.mnuVideoFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen; + this.mnuVideoScale.Name = "mnuVideoScale"; + this.mnuVideoScale.Size = new System.Drawing.Size(135, 22); + this.mnuVideoScale.Text = "Video Size"; + this.mnuVideoScale.DropDownOpening += new System.EventHandler(this.mnuVideoScale_DropDownOpening); + // + // mnuScale1x + // + this.mnuScale1x.Name = "mnuScale1x"; + this.mnuScale1x.Size = new System.Drawing.Size(127, 22); + this.mnuScale1x.Text = "1x"; + // + // mnuScale2x + // + this.mnuScale2x.Name = "mnuScale2x"; + this.mnuScale2x.Size = new System.Drawing.Size(127, 22); + this.mnuScale2x.Text = "2x"; + // + // mnuScale3x + // + this.mnuScale3x.Name = "mnuScale3x"; + this.mnuScale3x.Size = new System.Drawing.Size(127, 22); + this.mnuScale3x.Text = "3x"; + // + // mnuScale4x + // + this.mnuScale4x.Name = "mnuScale4x"; + this.mnuScale4x.Size = new System.Drawing.Size(127, 22); + this.mnuScale4x.Text = "4x"; + // + // mnuScale5x + // + this.mnuScale5x.Name = "mnuScale5x"; + this.mnuScale5x.Size = new System.Drawing.Size(127, 22); + this.mnuScale5x.Text = "5x"; + // + // mnuScale6x + // + this.mnuScale6x.Name = "mnuScale6x"; + this.mnuScale6x.Size = new System.Drawing.Size(127, 22); + this.mnuScale6x.Text = "6x"; + // + // toolStripMenuItem13 + // + this.toolStripMenuItem13.Name = "toolStripMenuItem13"; + this.toolStripMenuItem13.Size = new System.Drawing.Size(124, 6); + // + // mnuFullscreen + // + this.mnuFullscreen.Name = "mnuFullscreen"; + this.mnuFullscreen.Size = new System.Drawing.Size(127, 22); + this.mnuFullscreen.Text = "Fullscreen"; + // + // mnuVideoFilter + // + this.mnuVideoFilter.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuNoneFilter, this.toolStripMenuItem21, this.mnuNtscFilter, @@ -551,298 +552,299 @@ this.toolStripMenuItem19, this.mnuBilinearInterpolation, this.mnuBlendHighResolutionModes}); - this.mnuVideoFilter.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; - this.mnuVideoFilter.Name = "mnuVideoFilter"; - this.mnuVideoFilter.Size = new System.Drawing.Size(135, 22); - this.mnuVideoFilter.Text = "Video Filter"; - this.mnuVideoFilter.DropDownOpening += new System.EventHandler(this.mnuVideoFilter_DropDownOpening); - // - // mnuNoneFilter - // - this.mnuNoneFilter.Name = "mnuNoneFilter"; - this.mnuNoneFilter.Size = new System.Drawing.Size(231, 22); - this.mnuNoneFilter.Text = "None"; - // - // toolStripMenuItem21 - // - this.toolStripMenuItem21.Name = "toolStripMenuItem21"; - this.toolStripMenuItem21.Size = new System.Drawing.Size(228, 6); - // - // mnuNtscFilter - // - this.mnuNtscFilter.Name = "mnuNtscFilter"; - this.mnuNtscFilter.Size = new System.Drawing.Size(231, 22); - this.mnuNtscFilter.Text = "NTSC"; - // - // toolStripMenuItem15 - // - this.toolStripMenuItem15.Name = "toolStripMenuItem15"; - this.toolStripMenuItem15.Size = new System.Drawing.Size(228, 6); - // - // mnuXBRZ2xFilter - // - this.mnuXBRZ2xFilter.Name = "mnuXBRZ2xFilter"; - this.mnuXBRZ2xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuXBRZ2xFilter.Text = "xBRZ 2x"; - // - // mnuXBRZ3xFilter - // - this.mnuXBRZ3xFilter.Name = "mnuXBRZ3xFilter"; - this.mnuXBRZ3xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuXBRZ3xFilter.Text = "xBRZ 3x"; - // - // mnuXBRZ4xFilter - // - this.mnuXBRZ4xFilter.Name = "mnuXBRZ4xFilter"; - this.mnuXBRZ4xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuXBRZ4xFilter.Text = "xBRZ 4x"; - // - // mnuXBRZ5xFilter - // - this.mnuXBRZ5xFilter.Name = "mnuXBRZ5xFilter"; - this.mnuXBRZ5xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuXBRZ5xFilter.Text = "xBRZ 5x"; - // - // mnuXBRZ6xFilter - // - this.mnuXBRZ6xFilter.Name = "mnuXBRZ6xFilter"; - this.mnuXBRZ6xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuXBRZ6xFilter.Text = "xBRZ 6x"; - // - // toolStripMenuItem16 - // - this.toolStripMenuItem16.Name = "toolStripMenuItem16"; - this.toolStripMenuItem16.Size = new System.Drawing.Size(228, 6); - // - // mnuHQ2xFilter - // - this.mnuHQ2xFilter.Name = "mnuHQ2xFilter"; - this.mnuHQ2xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuHQ2xFilter.Text = "HQ 2x"; - // - // mnuHQ3xFilter - // - this.mnuHQ3xFilter.Name = "mnuHQ3xFilter"; - this.mnuHQ3xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuHQ3xFilter.Text = "HQ 3x"; - // - // mnuHQ4xFilter - // - this.mnuHQ4xFilter.Name = "mnuHQ4xFilter"; - this.mnuHQ4xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuHQ4xFilter.Text = "HQ 4x"; - // - // toolStripMenuItem17 - // - this.toolStripMenuItem17.Name = "toolStripMenuItem17"; - this.toolStripMenuItem17.Size = new System.Drawing.Size(228, 6); - // - // mnuScale2xFilter - // - this.mnuScale2xFilter.Name = "mnuScale2xFilter"; - this.mnuScale2xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuScale2xFilter.Text = "Scale2x"; - // - // mnuScale3xFilter - // - this.mnuScale3xFilter.Name = "mnuScale3xFilter"; - this.mnuScale3xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuScale3xFilter.Text = "Scale3x"; - // - // mnuScale4xFilter - // - this.mnuScale4xFilter.Name = "mnuScale4xFilter"; - this.mnuScale4xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuScale4xFilter.Text = "Scale4x"; - // - // toolStripMenuItem23 - // - this.toolStripMenuItem23.Name = "toolStripMenuItem23"; - this.toolStripMenuItem23.Size = new System.Drawing.Size(228, 6); - // - // mnu2xSaiFilter - // - this.mnu2xSaiFilter.Name = "mnu2xSaiFilter"; - this.mnu2xSaiFilter.Size = new System.Drawing.Size(231, 22); - this.mnu2xSaiFilter.Text = "2xSai"; - // - // mnuSuper2xSaiFilter - // - this.mnuSuper2xSaiFilter.Name = "mnuSuper2xSaiFilter"; - this.mnuSuper2xSaiFilter.Size = new System.Drawing.Size(231, 22); - this.mnuSuper2xSaiFilter.Text = "Super2xSai"; - // - // mnuSuperEagleFilter - // - this.mnuSuperEagleFilter.Name = "mnuSuperEagleFilter"; - this.mnuSuperEagleFilter.Size = new System.Drawing.Size(231, 22); - this.mnuSuperEagleFilter.Text = "SuperEagle"; - // - // toolStripMenuItem18 - // - this.toolStripMenuItem18.Name = "toolStripMenuItem18"; - this.toolStripMenuItem18.Size = new System.Drawing.Size(228, 6); - // - // mnuPrescale2xFilter - // - this.mnuPrescale2xFilter.Name = "mnuPrescale2xFilter"; - this.mnuPrescale2xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale2xFilter.Text = "Prescale 2x"; - // - // mnuPrescale3xFilter - // - this.mnuPrescale3xFilter.Name = "mnuPrescale3xFilter"; - this.mnuPrescale3xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale3xFilter.Text = "Prescale 3x"; - // - // mnuPrescale4xFilter - // - this.mnuPrescale4xFilter.Name = "mnuPrescale4xFilter"; - this.mnuPrescale4xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale4xFilter.Text = "Prescale 4x"; - // - // mnuPrescale6xFilter - // - this.mnuPrescale6xFilter.Name = "mnuPrescale6xFilter"; - this.mnuPrescale6xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale6xFilter.Text = "Prescale 6x"; - // - // mnuPrescale8xFilter - // - this.mnuPrescale8xFilter.Name = "mnuPrescale8xFilter"; - this.mnuPrescale8xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale8xFilter.Text = "Prescale 8x"; - // - // mnuPrescale10xFilter - // - this.mnuPrescale10xFilter.Name = "mnuPrescale10xFilter"; - this.mnuPrescale10xFilter.Size = new System.Drawing.Size(231, 22); - this.mnuPrescale10xFilter.Text = "Prescale 10x"; - // - // toolStripMenuItem19 - // - this.toolStripMenuItem19.Name = "toolStripMenuItem19"; - this.toolStripMenuItem19.Size = new System.Drawing.Size(228, 6); - // - // mnuBilinearInterpolation - // - this.mnuBilinearInterpolation.CheckOnClick = true; - this.mnuBilinearInterpolation.Name = "mnuBilinearInterpolation"; - this.mnuBilinearInterpolation.Size = new System.Drawing.Size(231, 22); - this.mnuBilinearInterpolation.Text = "Use Bilinear Interpolation"; - // - // mnuBlendHighResolutionModes - // - this.mnuBlendHighResolutionModes.CheckOnClick = true; - this.mnuBlendHighResolutionModes.Name = "mnuBlendHighResolutionModes"; - this.mnuBlendHighResolutionModes.Size = new System.Drawing.Size(231, 22); - this.mnuBlendHighResolutionModes.Text = "Blend High Resolution Modes"; - // - // mnuRegion - // - this.mnuRegion.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuVideoFilter.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; + this.mnuVideoFilter.Name = "mnuVideoFilter"; + this.mnuVideoFilter.Size = new System.Drawing.Size(135, 22); + this.mnuVideoFilter.Text = "Video Filter"; + this.mnuVideoFilter.DropDownOpening += new System.EventHandler(this.mnuVideoFilter_DropDownOpening); + // + // mnuNoneFilter + // + this.mnuNoneFilter.Name = "mnuNoneFilter"; + this.mnuNoneFilter.Size = new System.Drawing.Size(231, 22); + this.mnuNoneFilter.Text = "None"; + // + // toolStripMenuItem21 + // + this.toolStripMenuItem21.Name = "toolStripMenuItem21"; + this.toolStripMenuItem21.Size = new System.Drawing.Size(228, 6); + // + // mnuNtscFilter + // + this.mnuNtscFilter.Name = "mnuNtscFilter"; + this.mnuNtscFilter.Size = new System.Drawing.Size(231, 22); + this.mnuNtscFilter.Text = "NTSC"; + // + // toolStripMenuItem15 + // + this.toolStripMenuItem15.Name = "toolStripMenuItem15"; + this.toolStripMenuItem15.Size = new System.Drawing.Size(228, 6); + // + // mnuXBRZ2xFilter + // + this.mnuXBRZ2xFilter.Name = "mnuXBRZ2xFilter"; + this.mnuXBRZ2xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuXBRZ2xFilter.Text = "xBRZ 2x"; + // + // mnuXBRZ3xFilter + // + this.mnuXBRZ3xFilter.Name = "mnuXBRZ3xFilter"; + this.mnuXBRZ3xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuXBRZ3xFilter.Text = "xBRZ 3x"; + // + // mnuXBRZ4xFilter + // + this.mnuXBRZ4xFilter.Name = "mnuXBRZ4xFilter"; + this.mnuXBRZ4xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuXBRZ4xFilter.Text = "xBRZ 4x"; + // + // mnuXBRZ5xFilter + // + this.mnuXBRZ5xFilter.Name = "mnuXBRZ5xFilter"; + this.mnuXBRZ5xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuXBRZ5xFilter.Text = "xBRZ 5x"; + // + // mnuXBRZ6xFilter + // + this.mnuXBRZ6xFilter.Name = "mnuXBRZ6xFilter"; + this.mnuXBRZ6xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuXBRZ6xFilter.Text = "xBRZ 6x"; + // + // toolStripMenuItem16 + // + this.toolStripMenuItem16.Name = "toolStripMenuItem16"; + this.toolStripMenuItem16.Size = new System.Drawing.Size(228, 6); + // + // mnuHQ2xFilter + // + this.mnuHQ2xFilter.Name = "mnuHQ2xFilter"; + this.mnuHQ2xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuHQ2xFilter.Text = "HQ 2x"; + // + // mnuHQ3xFilter + // + this.mnuHQ3xFilter.Name = "mnuHQ3xFilter"; + this.mnuHQ3xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuHQ3xFilter.Text = "HQ 3x"; + // + // mnuHQ4xFilter + // + this.mnuHQ4xFilter.Name = "mnuHQ4xFilter"; + this.mnuHQ4xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuHQ4xFilter.Text = "HQ 4x"; + // + // toolStripMenuItem17 + // + this.toolStripMenuItem17.Name = "toolStripMenuItem17"; + this.toolStripMenuItem17.Size = new System.Drawing.Size(228, 6); + // + // mnuScale2xFilter + // + this.mnuScale2xFilter.Name = "mnuScale2xFilter"; + this.mnuScale2xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuScale2xFilter.Text = "Scale2x"; + // + // mnuScale3xFilter + // + this.mnuScale3xFilter.Name = "mnuScale3xFilter"; + this.mnuScale3xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuScale3xFilter.Text = "Scale3x"; + // + // mnuScale4xFilter + // + this.mnuScale4xFilter.Name = "mnuScale4xFilter"; + this.mnuScale4xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuScale4xFilter.Text = "Scale4x"; + // + // toolStripMenuItem23 + // + this.toolStripMenuItem23.Name = "toolStripMenuItem23"; + this.toolStripMenuItem23.Size = new System.Drawing.Size(228, 6); + // + // mnu2xSaiFilter + // + this.mnu2xSaiFilter.Name = "mnu2xSaiFilter"; + this.mnu2xSaiFilter.Size = new System.Drawing.Size(231, 22); + this.mnu2xSaiFilter.Text = "2xSai"; + // + // mnuSuper2xSaiFilter + // + this.mnuSuper2xSaiFilter.Name = "mnuSuper2xSaiFilter"; + this.mnuSuper2xSaiFilter.Size = new System.Drawing.Size(231, 22); + this.mnuSuper2xSaiFilter.Text = "Super2xSai"; + // + // mnuSuperEagleFilter + // + this.mnuSuperEagleFilter.Name = "mnuSuperEagleFilter"; + this.mnuSuperEagleFilter.Size = new System.Drawing.Size(231, 22); + this.mnuSuperEagleFilter.Text = "SuperEagle"; + // + // toolStripMenuItem18 + // + this.toolStripMenuItem18.Name = "toolStripMenuItem18"; + this.toolStripMenuItem18.Size = new System.Drawing.Size(228, 6); + // + // mnuPrescale2xFilter + // + this.mnuPrescale2xFilter.Name = "mnuPrescale2xFilter"; + this.mnuPrescale2xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale2xFilter.Text = "Prescale 2x"; + // + // mnuPrescale3xFilter + // + this.mnuPrescale3xFilter.Name = "mnuPrescale3xFilter"; + this.mnuPrescale3xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale3xFilter.Text = "Prescale 3x"; + // + // mnuPrescale4xFilter + // + this.mnuPrescale4xFilter.Name = "mnuPrescale4xFilter"; + this.mnuPrescale4xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale4xFilter.Text = "Prescale 4x"; + // + // mnuPrescale6xFilter + // + this.mnuPrescale6xFilter.Name = "mnuPrescale6xFilter"; + this.mnuPrescale6xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale6xFilter.Text = "Prescale 6x"; + // + // mnuPrescale8xFilter + // + this.mnuPrescale8xFilter.Name = "mnuPrescale8xFilter"; + this.mnuPrescale8xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale8xFilter.Text = "Prescale 8x"; + // + // mnuPrescale10xFilter + // + this.mnuPrescale10xFilter.Name = "mnuPrescale10xFilter"; + this.mnuPrescale10xFilter.Size = new System.Drawing.Size(231, 22); + this.mnuPrescale10xFilter.Text = "Prescale 10x"; + // + // toolStripMenuItem19 + // + this.toolStripMenuItem19.Name = "toolStripMenuItem19"; + this.toolStripMenuItem19.Size = new System.Drawing.Size(228, 6); + // + // mnuBilinearInterpolation + // + this.mnuBilinearInterpolation.CheckOnClick = true; + this.mnuBilinearInterpolation.Name = "mnuBilinearInterpolation"; + this.mnuBilinearInterpolation.Size = new System.Drawing.Size(231, 22); + this.mnuBilinearInterpolation.Text = "Use Bilinear Interpolation"; + // + // mnuBlendHighResolutionModes + // + this.mnuBlendHighResolutionModes.CheckOnClick = true; + this.mnuBlendHighResolutionModes.Name = "mnuBlendHighResolutionModes"; + this.mnuBlendHighResolutionModes.Size = new System.Drawing.Size(231, 22); + this.mnuBlendHighResolutionModes.Text = "Blend High Resolution Modes"; + // + // mnuRegion + // + this.mnuRegion.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuRegionAuto, this.toolStripMenuItem1, this.mnuRegionNtsc, this.mnuRegionPal}); - this.mnuRegion.Image = global::Mesen.GUI.Properties.Resources.WebBrowser; - this.mnuRegion.Name = "mnuRegion"; - this.mnuRegion.Size = new System.Drawing.Size(135, 22); - this.mnuRegion.Text = "Region"; - this.mnuRegion.DropDownOpening += new System.EventHandler(this.mnuRegion_DropDownOpening); - // - // mnuRegionAuto - // - this.mnuRegionAuto.Name = "mnuRegionAuto"; - this.mnuRegionAuto.Size = new System.Drawing.Size(104, 22); - this.mnuRegionAuto.Text = "Auto"; - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(101, 6); - // - // mnuRegionNtsc - // - this.mnuRegionNtsc.Name = "mnuRegionNtsc"; - this.mnuRegionNtsc.Size = new System.Drawing.Size(104, 22); - this.mnuRegionNtsc.Text = "NTSC"; - // - // mnuRegionPal - // - this.mnuRegionPal.Name = "mnuRegionPal"; - this.mnuRegionPal.Size = new System.Drawing.Size(104, 22); - this.mnuRegionPal.Text = "PAL"; - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 6); - // - // mnuAudioConfig - // - this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio; - this.mnuAudioConfig.Name = "mnuAudioConfig"; - this.mnuAudioConfig.Size = new System.Drawing.Size(135, 22); - this.mnuAudioConfig.Text = "Audio"; - this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click); - // - // mnuInputConfig - // - this.mnuInputConfig.Image = global::Mesen.GUI.Properties.Resources.Controller; - this.mnuInputConfig.Name = "mnuInputConfig"; - this.mnuInputConfig.Size = new System.Drawing.Size(135, 22); - this.mnuInputConfig.Text = "Input"; - this.mnuInputConfig.Click += new System.EventHandler(this.mnuInputConfig_Click); - // - // mnuVideoConfig - // - this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; - this.mnuVideoConfig.Name = "mnuVideoConfig"; - this.mnuVideoConfig.Size = new System.Drawing.Size(135, 22); - this.mnuVideoConfig.Text = "Video"; - this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click); - // - // mnuEmulationConfig - // - this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches; - this.mnuEmulationConfig.Name = "mnuEmulationConfig"; - this.mnuEmulationConfig.Size = new System.Drawing.Size(135, 22); - this.mnuEmulationConfig.Text = "Emulation"; - this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click); - // - // toolStripMenuItem22 - // - this.toolStripMenuItem22.Name = "toolStripMenuItem22"; - this.toolStripMenuItem22.Size = new System.Drawing.Size(132, 6); - // - // mnuGameboyConfig - // - this.mnuGameboyConfig.Image = global::Mesen.GUI.Properties.Resources.GameboyIcon; - this.mnuGameboyConfig.Name = "mnuGameboyConfig"; - this.mnuGameboyConfig.Size = new System.Drawing.Size(135, 22); - this.mnuGameboyConfig.Text = "Game Boy"; - this.mnuGameboyConfig.Click += new System.EventHandler(this.mnuGameboyConfig_Click); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 6); - // - // mnuPreferences - // - this.mnuPreferences.Image = global::Mesen.GUI.Properties.Resources.Settings; - this.mnuPreferences.Name = "mnuPreferences"; - this.mnuPreferences.Size = new System.Drawing.Size(135, 22); - this.mnuPreferences.Text = "Preferences"; - this.mnuPreferences.Click += new System.EventHandler(this.mnuPreferences_Click); - // - // mnuTools - // - this.mnuTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuCheats, - this.mnuMovies, + this.mnuRegion.Image = global::Mesen.GUI.Properties.Resources.WebBrowser; + this.mnuRegion.Name = "mnuRegion"; + this.mnuRegion.Size = new System.Drawing.Size(135, 22); + this.mnuRegion.Text = "Region"; + this.mnuRegion.DropDownOpening += new System.EventHandler(this.mnuRegion_DropDownOpening); + // + // mnuRegionAuto + // + this.mnuRegionAuto.Name = "mnuRegionAuto"; + this.mnuRegionAuto.Size = new System.Drawing.Size(103, 22); + this.mnuRegionAuto.Text = "Auto"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(100, 6); + // + // mnuRegionNtsc + // + this.mnuRegionNtsc.Name = "mnuRegionNtsc"; + this.mnuRegionNtsc.Size = new System.Drawing.Size(103, 22); + this.mnuRegionNtsc.Text = "NTSC"; + // + // mnuRegionPal + // + this.mnuRegionPal.Name = "mnuRegionPal"; + this.mnuRegionPal.Size = new System.Drawing.Size(103, 22); + this.mnuRegionPal.Text = "PAL"; + // + // toolStripMenuItem4 + // + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 6); + // + // mnuAudioConfig + // + this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio; + this.mnuAudioConfig.Name = "mnuAudioConfig"; + this.mnuAudioConfig.Size = new System.Drawing.Size(135, 22); + this.mnuAudioConfig.Text = "Audio"; + this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click); + // + // mnuInputConfig + // + this.mnuInputConfig.Image = global::Mesen.GUI.Properties.Resources.Controller; + this.mnuInputConfig.Name = "mnuInputConfig"; + this.mnuInputConfig.Size = new System.Drawing.Size(135, 22); + this.mnuInputConfig.Text = "Input"; + this.mnuInputConfig.Click += new System.EventHandler(this.mnuInputConfig_Click); + // + // mnuVideoConfig + // + this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; + this.mnuVideoConfig.Name = "mnuVideoConfig"; + this.mnuVideoConfig.Size = new System.Drawing.Size(135, 22); + this.mnuVideoConfig.Text = "Video"; + this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click); + // + // mnuEmulationConfig + // + this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches; + this.mnuEmulationConfig.Name = "mnuEmulationConfig"; + this.mnuEmulationConfig.Size = new System.Drawing.Size(135, 22); + this.mnuEmulationConfig.Text = "Emulation"; + this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click); + // + // toolStripMenuItem22 + // + this.toolStripMenuItem22.Name = "toolStripMenuItem22"; + this.toolStripMenuItem22.Size = new System.Drawing.Size(132, 6); + // + // mnuGameboyConfig + // + this.mnuGameboyConfig.Image = global::Mesen.GUI.Properties.Resources.GameboyIcon; + this.mnuGameboyConfig.Name = "mnuGameboyConfig"; + this.mnuGameboyConfig.Size = new System.Drawing.Size(135, 22); + this.mnuGameboyConfig.Text = "Game Boy"; + this.mnuGameboyConfig.Click += new System.EventHandler(this.mnuGameboyConfig_Click); + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 6); + // + // mnuPreferences + // + this.mnuPreferences.Image = global::Mesen.GUI.Properties.Resources.Settings; + this.mnuPreferences.Name = "mnuPreferences"; + this.mnuPreferences.Size = new System.Drawing.Size(135, 22); + this.mnuPreferences.Text = "Preferences"; + this.mnuPreferences.Click += new System.EventHandler(this.mnuPreferences_Click); + // + // mnuTools + // + this.mnuTools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuNetPlay, + this.mnuMovies, + this.mnuHistoryViewer, + this.mnuCheats, this.toolStripMenuItem25, this.mnuSoundRecorder, this.mnuVideoRecorder, @@ -852,83 +854,41 @@ this.toolStripMenuItem7, this.mnuRandomGame, this.mnuTakeScreenshot}); - this.mnuTools.Name = "mnuTools"; - this.mnuTools.Size = new System.Drawing.Size(47, 20); - this.mnuTools.Text = "Tools"; - this.mnuTools.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuTools.DropDownOpening += new System.EventHandler(this.mnuTools_DropDownOpening); - this.mnuTools.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuCheats - // - this.mnuCheats.Image = global::Mesen.GUI.Properties.Resources.CheatCode; - this.mnuCheats.Name = "mnuCheats"; - this.mnuCheats.Size = new System.Drawing.Size(182, 22); - this.mnuCheats.Text = "Cheats"; - // - // mnuMovies - // - this.mnuMovies.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuPlayMovie, - this.mnuRecordMovie, - this.mnuStopMovie}); - this.mnuMovies.Image = global::Mesen.GUI.Properties.Resources.Movie; - this.mnuMovies.Name = "mnuMovies"; - this.mnuMovies.Size = new System.Drawing.Size(182, 22); - this.mnuMovies.Text = "Movies"; - // - // mnuPlayMovie - // - this.mnuPlayMovie.Image = global::Mesen.GUI.Properties.Resources.MediaPlay; - this.mnuPlayMovie.Name = "mnuPlayMovie"; - this.mnuPlayMovie.Size = new System.Drawing.Size(120, 22); - this.mnuPlayMovie.Text = "Play..."; - this.mnuPlayMovie.Click += new System.EventHandler(this.mnuPlayMovie_Click); - // - // mnuRecordMovie - // - this.mnuRecordMovie.Image = global::Mesen.GUI.Properties.Resources.Record; - this.mnuRecordMovie.Name = "mnuRecordMovie"; - this.mnuRecordMovie.Size = new System.Drawing.Size(120, 22); - this.mnuRecordMovie.Text = "Record..."; - this.mnuRecordMovie.Click += new System.EventHandler(this.mnuRecordMovie_Click); - // - // mnuStopMovie - // - this.mnuStopMovie.Image = global::Mesen.GUI.Properties.Resources.MediaStop; - this.mnuStopMovie.Name = "mnuStopMovie"; - this.mnuStopMovie.Size = new System.Drawing.Size(120, 22); - this.mnuStopMovie.Text = "Stop"; - this.mnuStopMovie.Click += new System.EventHandler(this.mnuStopMovie_Click); - // - // mnuNetPlay - // - this.mnuNetPlay.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuTools.Name = "mnuTools"; + this.mnuTools.Size = new System.Drawing.Size(46, 20); + this.mnuTools.Text = "Tools"; + this.mnuTools.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuTools.DropDownOpening += new System.EventHandler(this.mnuTools_DropDownOpening); + this.mnuTools.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuNetPlay + // + this.mnuNetPlay.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuStartServer, this.mnuConnect, this.mnuNetPlaySelectController, this.toolStripSeparator2, this.mnuProfile}); - this.mnuNetPlay.Image = global::Mesen.GUI.Properties.Resources.Network; - this.mnuNetPlay.Name = "mnuNetPlay"; - this.mnuNetPlay.Size = new System.Drawing.Size(182, 22); - this.mnuNetPlay.Text = "Net Play"; - // - // mnuStartServer - // - this.mnuStartServer.Name = "mnuStartServer"; - this.mnuStartServer.Size = new System.Drawing.Size(168, 22); - this.mnuStartServer.Text = "Start Server"; - // - // mnuConnect - // - this.mnuConnect.Name = "mnuConnect"; - this.mnuConnect.Size = new System.Drawing.Size(168, 22); - this.mnuConnect.Text = "Connect to Server"; - // - // mnuNetPlaySelectController - // - this.mnuNetPlaySelectController.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuNetPlay.Image = global::Mesen.GUI.Properties.Resources.Network; + this.mnuNetPlay.Name = "mnuNetPlay"; + this.mnuNetPlay.Size = new System.Drawing.Size(182, 22); + this.mnuNetPlay.Text = "Net Play"; + // + // mnuStartServer + // + this.mnuStartServer.Name = "mnuStartServer"; + this.mnuStartServer.Size = new System.Drawing.Size(168, 22); + this.mnuStartServer.Text = "Start Server"; + // + // mnuConnect + // + this.mnuConnect.Name = "mnuConnect"; + this.mnuConnect.Size = new System.Drawing.Size(168, 22); + this.mnuConnect.Text = "Connect to Server"; + // + // mnuNetPlaySelectController + // + this.mnuNetPlaySelectController.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuNetPlayPlayer1, this.mnuNetPlayPlayer2, this.mnuNetPlayPlayer3, @@ -936,189 +896,239 @@ this.mnuNetPlayPlayer5, this.toolStripSeparator1, this.mnuNetPlaySpectator}); - this.mnuNetPlaySelectController.Name = "mnuNetPlaySelectController"; - this.mnuNetPlaySelectController.Size = new System.Drawing.Size(168, 22); - this.mnuNetPlaySelectController.Text = "Select Controller"; - // - // mnuNetPlayPlayer1 - // - this.mnuNetPlayPlayer1.Name = "mnuNetPlayPlayer1"; - this.mnuNetPlayPlayer1.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlayPlayer1.Text = "Player 1"; - // - // mnuNetPlayPlayer2 - // - this.mnuNetPlayPlayer2.Name = "mnuNetPlayPlayer2"; - this.mnuNetPlayPlayer2.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlayPlayer2.Text = "Player 2"; - // - // mnuNetPlayPlayer3 - // - this.mnuNetPlayPlayer3.Name = "mnuNetPlayPlayer3"; - this.mnuNetPlayPlayer3.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlayPlayer3.Text = "Player 3"; - // - // mnuNetPlayPlayer4 - // - this.mnuNetPlayPlayer4.Name = "mnuNetPlayPlayer4"; - this.mnuNetPlayPlayer4.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlayPlayer4.Text = "Player 4"; - // - // mnuNetPlayPlayer5 - // - this.mnuNetPlayPlayer5.Name = "mnuNetPlayPlayer5"; - this.mnuNetPlayPlayer5.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlayPlayer5.Text = "Player 5"; - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(121, 6); - // - // mnuNetPlaySpectator - // - this.mnuNetPlaySpectator.Name = "mnuNetPlaySpectator"; - this.mnuNetPlaySpectator.Size = new System.Drawing.Size(124, 22); - this.mnuNetPlaySpectator.Text = "Spectator"; - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(165, 6); - // - // mnuProfile - // - this.mnuProfile.Name = "mnuProfile"; - this.mnuProfile.Size = new System.Drawing.Size(168, 22); - this.mnuProfile.Text = "Configure Profile"; - // - // toolStripMenuItem25 - // - this.toolStripMenuItem25.Name = "toolStripMenuItem25"; - this.toolStripMenuItem25.Size = new System.Drawing.Size(179, 6); - // - // mnuSoundRecorder - // - this.mnuSoundRecorder.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuNetPlaySelectController.Name = "mnuNetPlaySelectController"; + this.mnuNetPlaySelectController.Size = new System.Drawing.Size(168, 22); + this.mnuNetPlaySelectController.Text = "Select Controller"; + // + // mnuNetPlayPlayer1 + // + this.mnuNetPlayPlayer1.Name = "mnuNetPlayPlayer1"; + this.mnuNetPlayPlayer1.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlayPlayer1.Text = "Player 1"; + // + // mnuNetPlayPlayer2 + // + this.mnuNetPlayPlayer2.Name = "mnuNetPlayPlayer2"; + this.mnuNetPlayPlayer2.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlayPlayer2.Text = "Player 2"; + // + // mnuNetPlayPlayer3 + // + this.mnuNetPlayPlayer3.Name = "mnuNetPlayPlayer3"; + this.mnuNetPlayPlayer3.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlayPlayer3.Text = "Player 3"; + // + // mnuNetPlayPlayer4 + // + this.mnuNetPlayPlayer4.Name = "mnuNetPlayPlayer4"; + this.mnuNetPlayPlayer4.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlayPlayer4.Text = "Player 4"; + // + // mnuNetPlayPlayer5 + // + this.mnuNetPlayPlayer5.Name = "mnuNetPlayPlayer5"; + this.mnuNetPlayPlayer5.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlayPlayer5.Text = "Player 5"; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(121, 6); + // + // mnuNetPlaySpectator + // + this.mnuNetPlaySpectator.Name = "mnuNetPlaySpectator"; + this.mnuNetPlaySpectator.Size = new System.Drawing.Size(124, 22); + this.mnuNetPlaySpectator.Text = "Spectator"; + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(165, 6); + // + // mnuProfile + // + this.mnuProfile.Name = "mnuProfile"; + this.mnuProfile.Size = new System.Drawing.Size(168, 22); + this.mnuProfile.Text = "Configure Profile"; + // + // mnuMovies + // + this.mnuMovies.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuPlayMovie, + this.mnuRecordMovie, + this.mnuStopMovie}); + this.mnuMovies.Image = global::Mesen.GUI.Properties.Resources.Movie; + this.mnuMovies.Name = "mnuMovies"; + this.mnuMovies.Size = new System.Drawing.Size(182, 22); + this.mnuMovies.Text = "Movies"; + // + // mnuPlayMovie + // + this.mnuPlayMovie.Image = global::Mesen.GUI.Properties.Resources.MediaPlay; + this.mnuPlayMovie.Name = "mnuPlayMovie"; + this.mnuPlayMovie.Size = new System.Drawing.Size(180, 22); + this.mnuPlayMovie.Text = "Play..."; + this.mnuPlayMovie.Click += new System.EventHandler(this.mnuPlayMovie_Click); + // + // mnuRecordMovie + // + this.mnuRecordMovie.Image = global::Mesen.GUI.Properties.Resources.Record; + this.mnuRecordMovie.Name = "mnuRecordMovie"; + this.mnuRecordMovie.Size = new System.Drawing.Size(180, 22); + this.mnuRecordMovie.Text = "Record..."; + this.mnuRecordMovie.Click += new System.EventHandler(this.mnuRecordMovie_Click); + // + // mnuStopMovie + // + this.mnuStopMovie.Image = global::Mesen.GUI.Properties.Resources.MediaStop; + this.mnuStopMovie.Name = "mnuStopMovie"; + this.mnuStopMovie.Size = new System.Drawing.Size(180, 22); + this.mnuStopMovie.Text = "Stop"; + this.mnuStopMovie.Click += new System.EventHandler(this.mnuStopMovie_Click); + // + // mnuHistoryViewer + // + this.mnuHistoryViewer.Image = global::Mesen.GUI.Properties.Resources.HistoryViewer; + this.mnuHistoryViewer.Name = "mnuHistoryViewer"; + this.mnuHistoryViewer.Size = new System.Drawing.Size(182, 22); + this.mnuHistoryViewer.Text = "History Viewer"; + this.mnuHistoryViewer.Click += new System.EventHandler(this.mnuHistoryViewer_Click); + // + // mnuCheats + // + this.mnuCheats.Image = global::Mesen.GUI.Properties.Resources.CheatCode; + this.mnuCheats.Name = "mnuCheats"; + this.mnuCheats.Size = new System.Drawing.Size(182, 22); + this.mnuCheats.Text = "Cheats"; + // + // toolStripMenuItem25 + // + this.toolStripMenuItem25.Name = "toolStripMenuItem25"; + this.toolStripMenuItem25.Size = new System.Drawing.Size(179, 6); + // + // mnuSoundRecorder + // + this.mnuSoundRecorder.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuWaveRecord, this.mnuWaveStop}); - this.mnuSoundRecorder.Image = global::Mesen.GUI.Properties.Resources.Microphone; - this.mnuSoundRecorder.Name = "mnuSoundRecorder"; - this.mnuSoundRecorder.Size = new System.Drawing.Size(182, 22); - this.mnuSoundRecorder.Text = "Sound Recorder"; - // - // mnuWaveRecord - // - this.mnuWaveRecord.Image = global::Mesen.GUI.Properties.Resources.Record; - this.mnuWaveRecord.Name = "mnuWaveRecord"; - this.mnuWaveRecord.Size = new System.Drawing.Size(155, 22); - this.mnuWaveRecord.Text = "Record..."; - this.mnuWaveRecord.Click += new System.EventHandler(this.mnuWaveRecord_Click); - // - // mnuWaveStop - // - this.mnuWaveStop.Image = global::Mesen.GUI.Properties.Resources.MediaStop; - this.mnuWaveStop.Name = "mnuWaveStop"; - this.mnuWaveStop.Size = new System.Drawing.Size(155, 22); - this.mnuWaveStop.Text = "Stop Recording"; - this.mnuWaveStop.Click += new System.EventHandler(this.mnuWaveStop_Click); - // - // mnuVideoRecorder - // - this.mnuVideoRecorder.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuSoundRecorder.Image = global::Mesen.GUI.Properties.Resources.Microphone; + this.mnuSoundRecorder.Name = "mnuSoundRecorder"; + this.mnuSoundRecorder.Size = new System.Drawing.Size(182, 22); + this.mnuSoundRecorder.Text = "Sound Recorder"; + // + // mnuWaveRecord + // + this.mnuWaveRecord.Image = global::Mesen.GUI.Properties.Resources.Record; + this.mnuWaveRecord.Name = "mnuWaveRecord"; + this.mnuWaveRecord.Size = new System.Drawing.Size(155, 22); + this.mnuWaveRecord.Text = "Record..."; + this.mnuWaveRecord.Click += new System.EventHandler(this.mnuWaveRecord_Click); + // + // mnuWaveStop + // + this.mnuWaveStop.Image = global::Mesen.GUI.Properties.Resources.MediaStop; + this.mnuWaveStop.Name = "mnuWaveStop"; + this.mnuWaveStop.Size = new System.Drawing.Size(155, 22); + this.mnuWaveStop.Text = "Stop Recording"; + this.mnuWaveStop.Click += new System.EventHandler(this.mnuWaveStop_Click); + // + // mnuVideoRecorder + // + this.mnuVideoRecorder.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuAviRecord, this.mnuAviStop}); - this.mnuVideoRecorder.Image = global::Mesen.GUI.Properties.Resources.VideoRecorder; - this.mnuVideoRecorder.Name = "mnuVideoRecorder"; - this.mnuVideoRecorder.Size = new System.Drawing.Size(182, 22); - this.mnuVideoRecorder.Text = "Video Recorder"; - // - // mnuAviRecord - // - this.mnuAviRecord.Image = global::Mesen.GUI.Properties.Resources.Record; - this.mnuAviRecord.Name = "mnuAviRecord"; - this.mnuAviRecord.Size = new System.Drawing.Size(155, 22); - this.mnuAviRecord.Text = "Record..."; - this.mnuAviRecord.Click += new System.EventHandler(this.mnuAviRecord_Click); - // - // mnuAviStop - // - this.mnuAviStop.Image = global::Mesen.GUI.Properties.Resources.MediaStop; - this.mnuAviStop.Name = "mnuAviStop"; - this.mnuAviStop.Size = new System.Drawing.Size(155, 22); - this.mnuAviStop.Text = "Stop Recording"; - this.mnuAviStop.Click += new System.EventHandler(this.mnuAviStop_Click); - // - // toolStripMenuItem11 - // - this.toolStripMenuItem11.Name = "toolStripMenuItem11"; - this.toolStripMenuItem11.Size = new System.Drawing.Size(179, 6); - // - // mnuTests - // - this.mnuTests.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuVideoRecorder.Image = global::Mesen.GUI.Properties.Resources.VideoRecorder; + this.mnuVideoRecorder.Name = "mnuVideoRecorder"; + this.mnuVideoRecorder.Size = new System.Drawing.Size(182, 22); + this.mnuVideoRecorder.Text = "Video Recorder"; + // + // mnuAviRecord + // + this.mnuAviRecord.Image = global::Mesen.GUI.Properties.Resources.Record; + this.mnuAviRecord.Name = "mnuAviRecord"; + this.mnuAviRecord.Size = new System.Drawing.Size(155, 22); + this.mnuAviRecord.Text = "Record..."; + this.mnuAviRecord.Click += new System.EventHandler(this.mnuAviRecord_Click); + // + // mnuAviStop + // + this.mnuAviStop.Image = global::Mesen.GUI.Properties.Resources.MediaStop; + this.mnuAviStop.Name = "mnuAviStop"; + this.mnuAviStop.Size = new System.Drawing.Size(155, 22); + this.mnuAviStop.Text = "Stop Recording"; + this.mnuAviStop.Click += new System.EventHandler(this.mnuAviStop_Click); + // + // toolStripMenuItem11 + // + this.toolStripMenuItem11.Name = "toolStripMenuItem11"; + this.toolStripMenuItem11.Size = new System.Drawing.Size(179, 6); + // + // mnuTests + // + this.mnuTests.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuTestRun, this.mnuTestRecord, this.mnuTestStop, this.mnuRunAllTests}); - this.mnuTests.Name = "mnuTests"; - this.mnuTests.Size = new System.Drawing.Size(182, 22); - this.mnuTests.Text = "Tests"; - // - // mnuTestRun - // - this.mnuTestRun.Name = "mnuTestRun"; - this.mnuTestRun.Size = new System.Drawing.Size(152, 22); - this.mnuTestRun.Text = "Run..."; - // - // mnuTestRecord - // - this.mnuTestRecord.Name = "mnuTestRecord"; - this.mnuTestRecord.Size = new System.Drawing.Size(152, 22); - this.mnuTestRecord.Text = "Record..."; - // - // mnuTestStop - // - this.mnuTestStop.Name = "mnuTestStop"; - this.mnuTestStop.Size = new System.Drawing.Size(152, 22); - this.mnuTestStop.Text = "Stop recording"; - // - // mnuRunAllTests - // - this.mnuRunAllTests.Name = "mnuRunAllTests"; - this.mnuRunAllTests.Size = new System.Drawing.Size(152, 22); - this.mnuRunAllTests.Text = "Run all tests"; - // - // mnuLogWindow - // - this.mnuLogWindow.Image = global::Mesen.GUI.Properties.Resources.LogWindow; - this.mnuLogWindow.Name = "mnuLogWindow"; - this.mnuLogWindow.Size = new System.Drawing.Size(182, 22); - this.mnuLogWindow.Text = "Log Window"; - this.mnuLogWindow.Click += new System.EventHandler(this.mnuLogWindow_Click); - // - // toolStripMenuItem7 - // - this.toolStripMenuItem7.Name = "toolStripMenuItem7"; - this.toolStripMenuItem7.Size = new System.Drawing.Size(179, 6); - // - // mnuRandomGame - // - this.mnuRandomGame.Image = global::Mesen.GUI.Properties.Resources.Dice; - this.mnuRandomGame.Name = "mnuRandomGame"; - this.mnuRandomGame.Size = new System.Drawing.Size(182, 22); - this.mnuRandomGame.Text = "Load Random Game"; - // - // mnuTakeScreenshot - // - this.mnuTakeScreenshot.Image = global::Mesen.GUI.Properties.Resources.Camera; - this.mnuTakeScreenshot.Name = "mnuTakeScreenshot"; - this.mnuTakeScreenshot.Size = new System.Drawing.Size(182, 22); - this.mnuTakeScreenshot.Text = "Take Screenshot"; - // - // mnuDebug - // - this.mnuDebug.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuTests.Name = "mnuTests"; + this.mnuTests.Size = new System.Drawing.Size(182, 22); + this.mnuTests.Text = "Tests"; + // + // mnuTestRun + // + this.mnuTestRun.Name = "mnuTestRun"; + this.mnuTestRun.Size = new System.Drawing.Size(152, 22); + this.mnuTestRun.Text = "Run..."; + // + // mnuTestRecord + // + this.mnuTestRecord.Name = "mnuTestRecord"; + this.mnuTestRecord.Size = new System.Drawing.Size(152, 22); + this.mnuTestRecord.Text = "Record..."; + // + // mnuTestStop + // + this.mnuTestStop.Name = "mnuTestStop"; + this.mnuTestStop.Size = new System.Drawing.Size(152, 22); + this.mnuTestStop.Text = "Stop recording"; + // + // mnuRunAllTests + // + this.mnuRunAllTests.Name = "mnuRunAllTests"; + this.mnuRunAllTests.Size = new System.Drawing.Size(152, 22); + this.mnuRunAllTests.Text = "Run all tests"; + // + // mnuLogWindow + // + this.mnuLogWindow.Image = global::Mesen.GUI.Properties.Resources.LogWindow; + this.mnuLogWindow.Name = "mnuLogWindow"; + this.mnuLogWindow.Size = new System.Drawing.Size(182, 22); + this.mnuLogWindow.Text = "Log Window"; + this.mnuLogWindow.Click += new System.EventHandler(this.mnuLogWindow_Click); + // + // toolStripMenuItem7 + // + this.toolStripMenuItem7.Name = "toolStripMenuItem7"; + this.toolStripMenuItem7.Size = new System.Drawing.Size(179, 6); + // + // mnuRandomGame + // + this.mnuRandomGame.Image = global::Mesen.GUI.Properties.Resources.Dice; + this.mnuRandomGame.Name = "mnuRandomGame"; + this.mnuRandomGame.Size = new System.Drawing.Size(182, 22); + this.mnuRandomGame.Text = "Load Random Game"; + // + // mnuTakeScreenshot + // + this.mnuTakeScreenshot.Image = global::Mesen.GUI.Properties.Resources.Camera; + this.mnuTakeScreenshot.Name = "mnuTakeScreenshot"; + this.mnuTakeScreenshot.Size = new System.Drawing.Size(182, 22); + this.mnuTakeScreenshot.Text = "Take Screenshot"; + // + // mnuDebug + // + this.mnuDebug.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuGbDebugger, this.mnuGbEventViewer, this.mnuGbTilemapViewer, @@ -1147,203 +1157,203 @@ this.mnuGsuDebugger, this.mnuNecDspDebugger, this.mnuCx4Debugger}); - this.mnuDebug.Name = "mnuDebug"; - this.mnuDebug.Size = new System.Drawing.Size(54, 20); - this.mnuDebug.Text = "Debug"; - this.mnuDebug.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuDebug.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuGbDebugger - // - this.mnuGbDebugger.Image = global::Mesen.GUI.Properties.Resources.GbDebugger; - this.mnuGbDebugger.Name = "mnuGbDebugger"; - this.mnuGbDebugger.Size = new System.Drawing.Size(183, 22); - this.mnuGbDebugger.Text = "GB Debugger"; - // - // mnuGbEventViewer - // - this.mnuGbEventViewer.Image = global::Mesen.GUI.Properties.Resources.NesEventViewer; - this.mnuGbEventViewer.Name = "mnuGbEventViewer"; - this.mnuGbEventViewer.Size = new System.Drawing.Size(183, 22); - this.mnuGbEventViewer.Text = "GB Event Viewer"; - // - // mnuGbTilemapViewer - // - this.mnuGbTilemapViewer.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; - this.mnuGbTilemapViewer.Name = "mnuGbTilemapViewer"; - this.mnuGbTilemapViewer.Size = new System.Drawing.Size(183, 22); - this.mnuGbTilemapViewer.Text = "GB Tilemap Viewer"; - // - // mnuGbTileViewer - // - this.mnuGbTileViewer.Image = global::Mesen.GUI.Properties.Resources.VerticalLayout; - this.mnuGbTileViewer.Name = "mnuGbTileViewer"; - this.mnuGbTileViewer.Size = new System.Drawing.Size(183, 22); - this.mnuGbTileViewer.Text = "GB Tile Viewer"; - // - // mnuGbSpriteViewer - // - this.mnuGbSpriteViewer.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; - this.mnuGbSpriteViewer.Name = "mnuGbSpriteViewer"; - this.mnuGbSpriteViewer.Size = new System.Drawing.Size(183, 22); - this.mnuGbSpriteViewer.Text = "GB Sprite Viewer"; - // - // mnuGbPaletteViewer - // - this.mnuGbPaletteViewer.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; - this.mnuGbPaletteViewer.Name = "mnuGbPaletteViewer"; - this.mnuGbPaletteViewer.Size = new System.Drawing.Size(183, 22); - this.mnuGbPaletteViewer.Text = "GB Palette Viewer"; - // - // sepGameboyDebugger - // - this.sepGameboyDebugger.Name = "sepGameboyDebugger"; - this.sepGameboyDebugger.Size = new System.Drawing.Size(180, 6); - // - // mnuDebugger - // - this.mnuDebugger.Image = global::Mesen.GUI.Properties.Resources.Debugger; - this.mnuDebugger.Name = "mnuDebugger"; - this.mnuDebugger.Size = new System.Drawing.Size(183, 22); - this.mnuDebugger.Text = "Debugger"; - // - // mnuEventViewer - // - this.mnuEventViewer.Image = global::Mesen.GUI.Properties.Resources.NesEventViewer; - this.mnuEventViewer.Name = "mnuEventViewer"; - this.mnuEventViewer.Size = new System.Drawing.Size(183, 22); - this.mnuEventViewer.Text = "Event Viewer"; - // - // mnuMemoryTools - // - this.mnuMemoryTools.Image = global::Mesen.GUI.Properties.Resources.CheatCode; - this.mnuMemoryTools.Name = "mnuMemoryTools"; - this.mnuMemoryTools.Size = new System.Drawing.Size(183, 22); - this.mnuMemoryTools.Text = "Memory Tools"; - // - // mnuRegisterViewer - // - this.mnuRegisterViewer.Image = global::Mesen.GUI.Properties.Resources.RegisterIcon; - this.mnuRegisterViewer.Name = "mnuRegisterViewer"; - this.mnuRegisterViewer.Size = new System.Drawing.Size(183, 22); - this.mnuRegisterViewer.Text = "Register Viewer"; - // - // mnuTraceLogger - // - this.mnuTraceLogger.Image = global::Mesen.GUI.Properties.Resources.LogWindow; - this.mnuTraceLogger.Name = "mnuTraceLogger"; - this.mnuTraceLogger.Size = new System.Drawing.Size(183, 22); - this.mnuTraceLogger.Text = "Trace Logger"; - // - // toolStripMenuItem26 - // - this.toolStripMenuItem26.Name = "toolStripMenuItem26"; - this.toolStripMenuItem26.Size = new System.Drawing.Size(180, 6); - // - // mnuAssembler - // - this.mnuAssembler.Image = global::Mesen.GUI.Properties.Resources.Chip; - this.mnuAssembler.Name = "mnuAssembler"; - this.mnuAssembler.Size = new System.Drawing.Size(183, 22); - this.mnuAssembler.Text = "Assembler"; - // - // mnuDebugLog - // - this.mnuDebugLog.Image = global::Mesen.GUI.Properties.Resources.LogWindow; - this.mnuDebugLog.Name = "mnuDebugLog"; - this.mnuDebugLog.Size = new System.Drawing.Size(183, 22); - this.mnuDebugLog.Text = "Debug Log"; - // - // mnuProfiler - // - this.mnuProfiler.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; - this.mnuProfiler.Name = "mnuProfiler"; - this.mnuProfiler.Size = new System.Drawing.Size(183, 22); - this.mnuProfiler.Text = "Performance Profiler"; - // - // mnuScriptWindow - // - this.mnuScriptWindow.Image = global::Mesen.GUI.Properties.Resources.Script; - this.mnuScriptWindow.Name = "mnuScriptWindow"; - this.mnuScriptWindow.Size = new System.Drawing.Size(183, 22); - this.mnuScriptWindow.Text = "Script Window"; - // - // toolStripMenuItem12 - // - this.toolStripMenuItem12.Name = "toolStripMenuItem12"; - this.toolStripMenuItem12.Size = new System.Drawing.Size(180, 6); - // - // mnuTilemapViewer - // - this.mnuTilemapViewer.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; - this.mnuTilemapViewer.Name = "mnuTilemapViewer"; - this.mnuTilemapViewer.Size = new System.Drawing.Size(183, 22); - this.mnuTilemapViewer.Text = "Tilemap Viewer"; - // - // mnuTileViewer - // - this.mnuTileViewer.Image = global::Mesen.GUI.Properties.Resources.VerticalLayout; - this.mnuTileViewer.Name = "mnuTileViewer"; - this.mnuTileViewer.Size = new System.Drawing.Size(183, 22); - this.mnuTileViewer.Text = "Tile Viewer"; - // - // mnuSpriteViewer - // - this.mnuSpriteViewer.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; - this.mnuSpriteViewer.Name = "mnuSpriteViewer"; - this.mnuSpriteViewer.Size = new System.Drawing.Size(183, 22); - this.mnuSpriteViewer.Text = "Sprite Viewer"; - // - // mnuPaletteViewer - // - this.mnuPaletteViewer.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; - this.mnuPaletteViewer.Name = "mnuPaletteViewer"; - this.mnuPaletteViewer.Size = new System.Drawing.Size(183, 22); - this.mnuPaletteViewer.Text = "Palette Viewer"; - // - // sepCoprocessors - // - this.sepCoprocessors.Name = "sepCoprocessors"; - this.sepCoprocessors.Size = new System.Drawing.Size(180, 6); - // - // mnuSpcDebugger - // - this.mnuSpcDebugger.Image = global::Mesen.GUI.Properties.Resources.SpcDebugger; - this.mnuSpcDebugger.Name = "mnuSpcDebugger"; - this.mnuSpcDebugger.Size = new System.Drawing.Size(183, 22); - this.mnuSpcDebugger.Text = "SPC Debugger"; - // - // mnuSa1Debugger - // - this.mnuSa1Debugger.Image = global::Mesen.GUI.Properties.Resources.Sa1Debugger; - this.mnuSa1Debugger.Name = "mnuSa1Debugger"; - this.mnuSa1Debugger.Size = new System.Drawing.Size(183, 22); - this.mnuSa1Debugger.Text = "SA-1 Debugger"; - // - // mnuGsuDebugger - // - this.mnuGsuDebugger.Image = global::Mesen.GUI.Properties.Resources.GsuDebugger; - this.mnuGsuDebugger.Name = "mnuGsuDebugger"; - this.mnuGsuDebugger.Size = new System.Drawing.Size(183, 22); - this.mnuGsuDebugger.Text = "GSU Debugger"; - // - // mnuNecDspDebugger - // - this.mnuNecDspDebugger.Image = global::Mesen.GUI.Properties.Resources.NecDspDebugger; - this.mnuNecDspDebugger.Name = "mnuNecDspDebugger"; - this.mnuNecDspDebugger.Size = new System.Drawing.Size(183, 22); - this.mnuNecDspDebugger.Text = "DSP Debugger"; - // - // mnuCx4Debugger - // - this.mnuCx4Debugger.Image = global::Mesen.GUI.Properties.Resources.Cx4Debugger; - this.mnuCx4Debugger.Name = "mnuCx4Debugger"; - this.mnuCx4Debugger.Size = new System.Drawing.Size(183, 22); - this.mnuCx4Debugger.Text = "CX4 Debugger"; - // - // mnuHelp - // - this.mnuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuDebug.Name = "mnuDebug"; + this.mnuDebug.Size = new System.Drawing.Size(54, 20); + this.mnuDebug.Text = "Debug"; + this.mnuDebug.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuDebug.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuGbDebugger + // + this.mnuGbDebugger.Image = global::Mesen.GUI.Properties.Resources.GbDebugger; + this.mnuGbDebugger.Name = "mnuGbDebugger"; + this.mnuGbDebugger.Size = new System.Drawing.Size(183, 22); + this.mnuGbDebugger.Text = "GB Debugger"; + // + // mnuGbEventViewer + // + this.mnuGbEventViewer.Image = global::Mesen.GUI.Properties.Resources.NesEventViewer; + this.mnuGbEventViewer.Name = "mnuGbEventViewer"; + this.mnuGbEventViewer.Size = new System.Drawing.Size(183, 22); + this.mnuGbEventViewer.Text = "GB Event Viewer"; + // + // mnuGbTilemapViewer + // + this.mnuGbTilemapViewer.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; + this.mnuGbTilemapViewer.Name = "mnuGbTilemapViewer"; + this.mnuGbTilemapViewer.Size = new System.Drawing.Size(183, 22); + this.mnuGbTilemapViewer.Text = "GB Tilemap Viewer"; + // + // mnuGbTileViewer + // + this.mnuGbTileViewer.Image = global::Mesen.GUI.Properties.Resources.VerticalLayout; + this.mnuGbTileViewer.Name = "mnuGbTileViewer"; + this.mnuGbTileViewer.Size = new System.Drawing.Size(183, 22); + this.mnuGbTileViewer.Text = "GB Tile Viewer"; + // + // mnuGbSpriteViewer + // + this.mnuGbSpriteViewer.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; + this.mnuGbSpriteViewer.Name = "mnuGbSpriteViewer"; + this.mnuGbSpriteViewer.Size = new System.Drawing.Size(183, 22); + this.mnuGbSpriteViewer.Text = "GB Sprite Viewer"; + // + // mnuGbPaletteViewer + // + this.mnuGbPaletteViewer.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; + this.mnuGbPaletteViewer.Name = "mnuGbPaletteViewer"; + this.mnuGbPaletteViewer.Size = new System.Drawing.Size(183, 22); + this.mnuGbPaletteViewer.Text = "GB Palette Viewer"; + // + // sepGameboyDebugger + // + this.sepGameboyDebugger.Name = "sepGameboyDebugger"; + this.sepGameboyDebugger.Size = new System.Drawing.Size(180, 6); + // + // mnuDebugger + // + this.mnuDebugger.Image = global::Mesen.GUI.Properties.Resources.Debugger; + this.mnuDebugger.Name = "mnuDebugger"; + this.mnuDebugger.Size = new System.Drawing.Size(183, 22); + this.mnuDebugger.Text = "Debugger"; + // + // mnuEventViewer + // + this.mnuEventViewer.Image = global::Mesen.GUI.Properties.Resources.NesEventViewer; + this.mnuEventViewer.Name = "mnuEventViewer"; + this.mnuEventViewer.Size = new System.Drawing.Size(183, 22); + this.mnuEventViewer.Text = "Event Viewer"; + // + // mnuMemoryTools + // + this.mnuMemoryTools.Image = global::Mesen.GUI.Properties.Resources.CheatCode; + this.mnuMemoryTools.Name = "mnuMemoryTools"; + this.mnuMemoryTools.Size = new System.Drawing.Size(183, 22); + this.mnuMemoryTools.Text = "Memory Tools"; + // + // mnuRegisterViewer + // + this.mnuRegisterViewer.Image = global::Mesen.GUI.Properties.Resources.RegisterIcon; + this.mnuRegisterViewer.Name = "mnuRegisterViewer"; + this.mnuRegisterViewer.Size = new System.Drawing.Size(183, 22); + this.mnuRegisterViewer.Text = "Register Viewer"; + // + // mnuTraceLogger + // + this.mnuTraceLogger.Image = global::Mesen.GUI.Properties.Resources.LogWindow; + this.mnuTraceLogger.Name = "mnuTraceLogger"; + this.mnuTraceLogger.Size = new System.Drawing.Size(183, 22); + this.mnuTraceLogger.Text = "Trace Logger"; + // + // toolStripMenuItem26 + // + this.toolStripMenuItem26.Name = "toolStripMenuItem26"; + this.toolStripMenuItem26.Size = new System.Drawing.Size(180, 6); + // + // mnuAssembler + // + this.mnuAssembler.Image = global::Mesen.GUI.Properties.Resources.Chip; + this.mnuAssembler.Name = "mnuAssembler"; + this.mnuAssembler.Size = new System.Drawing.Size(183, 22); + this.mnuAssembler.Text = "Assembler"; + // + // mnuDebugLog + // + this.mnuDebugLog.Image = global::Mesen.GUI.Properties.Resources.LogWindow; + this.mnuDebugLog.Name = "mnuDebugLog"; + this.mnuDebugLog.Size = new System.Drawing.Size(183, 22); + this.mnuDebugLog.Text = "Debug Log"; + // + // mnuProfiler + // + this.mnuProfiler.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; + this.mnuProfiler.Name = "mnuProfiler"; + this.mnuProfiler.Size = new System.Drawing.Size(183, 22); + this.mnuProfiler.Text = "Performance Profiler"; + // + // mnuScriptWindow + // + this.mnuScriptWindow.Image = global::Mesen.GUI.Properties.Resources.Script; + this.mnuScriptWindow.Name = "mnuScriptWindow"; + this.mnuScriptWindow.Size = new System.Drawing.Size(183, 22); + this.mnuScriptWindow.Text = "Script Window"; + // + // toolStripMenuItem12 + // + this.toolStripMenuItem12.Name = "toolStripMenuItem12"; + this.toolStripMenuItem12.Size = new System.Drawing.Size(180, 6); + // + // mnuTilemapViewer + // + this.mnuTilemapViewer.Image = global::Mesen.GUI.Properties.Resources.VideoOptions; + this.mnuTilemapViewer.Name = "mnuTilemapViewer"; + this.mnuTilemapViewer.Size = new System.Drawing.Size(183, 22); + this.mnuTilemapViewer.Text = "Tilemap Viewer"; + // + // mnuTileViewer + // + this.mnuTileViewer.Image = global::Mesen.GUI.Properties.Resources.VerticalLayout; + this.mnuTileViewer.Name = "mnuTileViewer"; + this.mnuTileViewer.Size = new System.Drawing.Size(183, 22); + this.mnuTileViewer.Text = "Tile Viewer"; + // + // mnuSpriteViewer + // + this.mnuSpriteViewer.Image = global::Mesen.GUI.Properties.Resources.PerfTracker; + this.mnuSpriteViewer.Name = "mnuSpriteViewer"; + this.mnuSpriteViewer.Size = new System.Drawing.Size(183, 22); + this.mnuSpriteViewer.Text = "Sprite Viewer"; + // + // mnuPaletteViewer + // + this.mnuPaletteViewer.Image = global::Mesen.GUI.Properties.Resources.VideoFilter; + this.mnuPaletteViewer.Name = "mnuPaletteViewer"; + this.mnuPaletteViewer.Size = new System.Drawing.Size(183, 22); + this.mnuPaletteViewer.Text = "Palette Viewer"; + // + // sepCoprocessors + // + this.sepCoprocessors.Name = "sepCoprocessors"; + this.sepCoprocessors.Size = new System.Drawing.Size(180, 6); + // + // mnuSpcDebugger + // + this.mnuSpcDebugger.Image = global::Mesen.GUI.Properties.Resources.SpcDebugger; + this.mnuSpcDebugger.Name = "mnuSpcDebugger"; + this.mnuSpcDebugger.Size = new System.Drawing.Size(183, 22); + this.mnuSpcDebugger.Text = "SPC Debugger"; + // + // mnuSa1Debugger + // + this.mnuSa1Debugger.Image = global::Mesen.GUI.Properties.Resources.Sa1Debugger; + this.mnuSa1Debugger.Name = "mnuSa1Debugger"; + this.mnuSa1Debugger.Size = new System.Drawing.Size(183, 22); + this.mnuSa1Debugger.Text = "SA-1 Debugger"; + // + // mnuGsuDebugger + // + this.mnuGsuDebugger.Image = global::Mesen.GUI.Properties.Resources.GsuDebugger; + this.mnuGsuDebugger.Name = "mnuGsuDebugger"; + this.mnuGsuDebugger.Size = new System.Drawing.Size(183, 22); + this.mnuGsuDebugger.Text = "GSU Debugger"; + // + // mnuNecDspDebugger + // + this.mnuNecDspDebugger.Image = global::Mesen.GUI.Properties.Resources.NecDspDebugger; + this.mnuNecDspDebugger.Name = "mnuNecDspDebugger"; + this.mnuNecDspDebugger.Size = new System.Drawing.Size(183, 22); + this.mnuNecDspDebugger.Text = "DSP Debugger"; + // + // mnuCx4Debugger + // + this.mnuCx4Debugger.Image = global::Mesen.GUI.Properties.Resources.Cx4Debugger; + this.mnuCx4Debugger.Name = "mnuCx4Debugger"; + this.mnuCx4Debugger.Size = new System.Drawing.Size(183, 22); + this.mnuCx4Debugger.Text = "CX4 Debugger"; + // + // mnuHelp + // + this.mnuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuOnlineHelp, this.toolStripMenuItem27, this.mnuCheckForUpdates, @@ -1351,99 +1361,99 @@ this.mnuReportBug, this.toolStripMenuItem5, this.mnuAbout}); - this.mnuHelp.Name = "mnuHelp"; - this.mnuHelp.Size = new System.Drawing.Size(44, 20); - this.mnuHelp.Text = "Help"; - this.mnuHelp.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); - this.mnuHelp.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); - // - // mnuCheckForUpdates - // - this.mnuCheckForUpdates.Image = global::Mesen.GUI.Properties.Resources.Update; - this.mnuCheckForUpdates.Name = "mnuCheckForUpdates"; - this.mnuCheckForUpdates.Size = new System.Drawing.Size(180, 22); - this.mnuCheckForUpdates.Text = "Check for updates"; - this.mnuCheckForUpdates.Click += new System.EventHandler(this.mnuCheckForUpdates_Click); - // - // toolStripMenuItem20 - // - this.toolStripMenuItem20.Name = "toolStripMenuItem20"; - this.toolStripMenuItem20.Size = new System.Drawing.Size(177, 6); - // - // mnuReportBug - // - this.mnuReportBug.Image = global::Mesen.GUI.Properties.Resources.Comment; - this.mnuReportBug.Name = "mnuReportBug"; - this.mnuReportBug.Size = new System.Drawing.Size(180, 22); - this.mnuReportBug.Text = "Report a bug"; - this.mnuReportBug.Click += new System.EventHandler(this.mnuReportBug_Click); - // - // toolStripMenuItem5 - // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(177, 6); - // - // mnuAbout - // - this.mnuAbout.Image = global::Mesen.GUI.Properties.Resources.Exclamation; - this.mnuAbout.Name = "mnuAbout"; - this.mnuAbout.Size = new System.Drawing.Size(180, 22); - this.mnuAbout.Text = "About"; - this.mnuAbout.Click += new System.EventHandler(this.mnuAbout_Click); - // - // pnlRenderer - // - this.pnlRenderer.BackColor = System.Drawing.Color.Black; - this.pnlRenderer.Controls.Add(this.ctrlRenderer); - this.pnlRenderer.Dock = System.Windows.Forms.DockStyle.Fill; - this.pnlRenderer.Location = new System.Drawing.Point(0, 24); - this.pnlRenderer.Name = "pnlRenderer"; - this.pnlRenderer.Size = new System.Drawing.Size(512, 478); - this.pnlRenderer.TabIndex = 2; - // - // ctrlRecentGames - // - this.ctrlRecentGames.BackColor = System.Drawing.Color.Transparent; - this.ctrlRecentGames.Dock = System.Windows.Forms.DockStyle.Top; - this.ctrlRecentGames.Location = new System.Drawing.Point(0, 24); - this.ctrlRecentGames.Name = "ctrlRecentGames"; - this.ctrlRecentGames.Size = new System.Drawing.Size(512, 265); - this.ctrlRecentGames.TabIndex = 1; - this.ctrlRecentGames.Visible = false; - // - // mnuOnlineHelp - // - this.mnuOnlineHelp.Image = global::Mesen.GUI.Properties.Resources.Help; - this.mnuOnlineHelp.Name = "mnuOnlineHelp"; - this.mnuOnlineHelp.Size = new System.Drawing.Size(180, 22); - this.mnuOnlineHelp.Text = "Online Help"; - this.mnuOnlineHelp.Click += new System.EventHandler(this.mnuOnlineHelp_Click); - // - // toolStripMenuItem27 - // - this.toolStripMenuItem27.Name = "toolStripMenuItem27"; - this.toolStripMenuItem27.Size = new System.Drawing.Size(177, 6); - // - // frmMain - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(512, 502); - this.Controls.Add(this.ctrlRecentGames); - this.Controls.Add(this.pnlRenderer); - this.Controls.Add(this.mnuMain); - this.MainMenuStrip = this.mnuMain; - this.Name = "frmMain"; - this.Text = "frmMain"; - this.Controls.SetChildIndex(this.mnuMain, 0); - this.Controls.SetChildIndex(this.pnlRenderer, 0); - this.Controls.SetChildIndex(this.ctrlRecentGames, 0); - this.mnuMain.ResumeLayout(false); - this.mnuMain.PerformLayout(); - this.pnlRenderer.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); + this.mnuHelp.Name = "mnuHelp"; + this.mnuHelp.Size = new System.Drawing.Size(44, 20); + this.mnuHelp.Text = "Help"; + this.mnuHelp.DropDownClosed += new System.EventHandler(this.mnu_DropDownClosed); + this.mnuHelp.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened); + // + // mnuOnlineHelp + // + this.mnuOnlineHelp.Image = global::Mesen.GUI.Properties.Resources.Help; + this.mnuOnlineHelp.Name = "mnuOnlineHelp"; + this.mnuOnlineHelp.Size = new System.Drawing.Size(170, 22); + this.mnuOnlineHelp.Text = "Online Help"; + this.mnuOnlineHelp.Click += new System.EventHandler(this.mnuOnlineHelp_Click); + // + // toolStripMenuItem27 + // + this.toolStripMenuItem27.Name = "toolStripMenuItem27"; + this.toolStripMenuItem27.Size = new System.Drawing.Size(167, 6); + // + // mnuCheckForUpdates + // + this.mnuCheckForUpdates.Image = global::Mesen.GUI.Properties.Resources.Update; + this.mnuCheckForUpdates.Name = "mnuCheckForUpdates"; + this.mnuCheckForUpdates.Size = new System.Drawing.Size(170, 22); + this.mnuCheckForUpdates.Text = "Check for updates"; + this.mnuCheckForUpdates.Click += new System.EventHandler(this.mnuCheckForUpdates_Click); + // + // toolStripMenuItem20 + // + this.toolStripMenuItem20.Name = "toolStripMenuItem20"; + this.toolStripMenuItem20.Size = new System.Drawing.Size(167, 6); + // + // mnuReportBug + // + this.mnuReportBug.Image = global::Mesen.GUI.Properties.Resources.Comment; + this.mnuReportBug.Name = "mnuReportBug"; + this.mnuReportBug.Size = new System.Drawing.Size(170, 22); + this.mnuReportBug.Text = "Report a bug"; + this.mnuReportBug.Click += new System.EventHandler(this.mnuReportBug_Click); + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(167, 6); + // + // mnuAbout + // + this.mnuAbout.Image = global::Mesen.GUI.Properties.Resources.Exclamation; + this.mnuAbout.Name = "mnuAbout"; + this.mnuAbout.Size = new System.Drawing.Size(170, 22); + this.mnuAbout.Text = "About"; + this.mnuAbout.Click += new System.EventHandler(this.mnuAbout_Click); + // + // pnlRenderer + // + this.pnlRenderer.BackColor = System.Drawing.Color.Black; + this.pnlRenderer.Controls.Add(this.ctrlRenderer); + this.pnlRenderer.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlRenderer.Location = new System.Drawing.Point(0, 24); + this.pnlRenderer.Name = "pnlRenderer"; + this.pnlRenderer.Size = new System.Drawing.Size(512, 478); + this.pnlRenderer.TabIndex = 2; + // + // ctrlRecentGames + // + this.ctrlRecentGames.BackColor = System.Drawing.Color.Transparent; + this.ctrlRecentGames.Dock = System.Windows.Forms.DockStyle.Top; + this.ctrlRecentGames.Location = new System.Drawing.Point(0, 24); + this.ctrlRecentGames.Name = "ctrlRecentGames"; + this.ctrlRecentGames.Size = new System.Drawing.Size(512, 265); + this.ctrlRecentGames.TabIndex = 1; + this.ctrlRecentGames.Visible = false; + // + // frmMain + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(512, 502); + this.Controls.Add(this.ctrlRecentGames); + this.Controls.Add(this.pnlRenderer); + this.Controls.Add(this.mnuMain); + this.MainMenuStrip = this.mnuMain; + this.Name = "frmMain"; + this.Text = "frmMain"; + this.Controls.SetChildIndex(this.mnuMain, 0); + this.Controls.SetChildIndex(this.pnlRenderer, 0); + this.Controls.SetChildIndex(this.ctrlRecentGames, 0); + this.mnuMain.ResumeLayout(false); + this.mnuMain.PerformLayout(); + this.pnlRenderer.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -1611,5 +1621,6 @@ private System.Windows.Forms.ToolStripMenuItem mnuDebugLog; private System.Windows.Forms.ToolStripMenuItem mnuOnlineHelp; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem27; + private System.Windows.Forms.ToolStripMenuItem mnuHistoryViewer; } } \ No newline at end of file diff --git a/UI/Forms/frmMain.cs b/UI/Forms/frmMain.cs index dc3fb9b..1c7d37c 100644 --- a/UI/Forms/frmMain.cs +++ b/UI/Forms/frmMain.cs @@ -31,6 +31,7 @@ namespace Mesen.GUI.Forms private ShortcutHandler _shortcuts; private DisplayManager _displayManager; private CommandLineHelper _commandLine; + private frmHistoryViewer _historyViewerWindow; public static frmMain Instance { get; private set; } @@ -720,6 +721,7 @@ namespace Mesen.GUI.Forms mnuNetPlay.Enabled = runAheadDisabled && !isGameboyMode; mnuMovies.Enabled = runAheadDisabled && EmuRunner.IsRunning(); + mnuHistoryViewer.Enabled = runAheadDisabled && EmuRunner.IsRunning(); mnuPlayMovie.Enabled = runAheadDisabled && EmuRunner.IsRunning() && !RecordApi.MoviePlaying() && !RecordApi.MovieRecording() && !isClient; mnuRecordMovie.Enabled = runAheadDisabled && EmuRunner.IsRunning() && !RecordApi.MoviePlaying() && !RecordApi.MovieRecording(); mnuStopMovie.Enabled = runAheadDisabled && EmuRunner.IsRunning() && (RecordApi.MoviePlaying() || RecordApi.MovieRecording()); @@ -807,5 +809,23 @@ namespace Mesen.GUI.Forms string platform = Program.IsMono ? "linux" : "win"; Process.Start("http://www.mesen.ca/snes/docs/?v=" + EmuApi.GetMesenVersion() + "&p=" + platform + "&l=" + ResourceHelper.GetLanguageCode()); } - } + + private void mnuHistoryViewer_Click(object sender, EventArgs e) + { + if (_historyViewerWindow == null) + { + _historyViewerWindow = new frmHistoryViewer(); + _historyViewerWindow.Show(sender, this); + _historyViewerWindow.FormClosed += (s, evt) => { + _historyViewerWindow = null; + }; + } + else + { + _historyViewerWindow.WindowState = FormWindowState.Normal; + _historyViewerWindow.BringToFront(); + _historyViewerWindow.Focus(); + } + } + } } diff --git a/UI/Forms/frmSelectExportRange.Designer.cs b/UI/Forms/frmSelectExportRange.Designer.cs new file mode 100644 index 0000000..3087a41 --- /dev/null +++ b/UI/Forms/frmSelectExportRange.Designer.cs @@ -0,0 +1,141 @@ +using Mesen.GUI.Controls; + +namespace Mesen.GUI.Forms +{ + partial class frmSelectExportRange + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dtpStart = new System.Windows.Forms.DateTimePicker(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lblStartTime = new System.Windows.Forms.Label(); + this.lblEndTime = new System.Windows.Forms.Label(); + this.dtpEnd = new System.Windows.Forms.DateTimePicker(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // baseConfigPanel + // + this.baseConfigPanel.Location = new System.Drawing.Point(0, 61); + this.baseConfigPanel.Size = new System.Drawing.Size(198, 29); + // + // dtpStart + // + this.dtpStart.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.dtpStart.CustomFormat = "HH:mm:ss"; + this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpStart.Location = new System.Drawing.Point(63, 3); + this.dtpStart.MaxDate = new System.DateTime(3000, 1, 1, 0, 0, 0, 0); + this.dtpStart.MinDate = new System.DateTime(2000, 1, 1, 0, 0, 0, 0); + this.dtpStart.Name = "dtpStart"; + this.dtpStart.ShowUpDown = true; + this.dtpStart.Size = new System.Drawing.Size(69, 20); + this.dtpStart.TabIndex = 0; + this.dtpStart.Value = new System.DateTime(2000, 1, 1, 0, 0, 0, 0); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.dtpStart, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.lblStartTime, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.lblEndTime, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.dtpEnd, 1, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(198, 61); + this.tableLayoutPanel1.TabIndex = 1; + // + // lblStartTime + // + this.lblStartTime.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblStartTime.AutoSize = true; + this.lblStartTime.Location = new System.Drawing.Point(3, 6); + this.lblStartTime.Name = "lblStartTime"; + this.lblStartTime.Size = new System.Drawing.Size(54, 13); + this.lblStartTime.TabIndex = 2; + this.lblStartTime.Text = "Start time:"; + // + // lblEndTime + // + this.lblEndTime.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.lblEndTime.AutoSize = true; + this.lblEndTime.Location = new System.Drawing.Point(3, 32); + this.lblEndTime.Name = "lblEndTime"; + this.lblEndTime.Size = new System.Drawing.Size(51, 13); + this.lblEndTime.TabIndex = 3; + this.lblEndTime.Text = "End time:"; + // + // dtpEnd + // + this.dtpEnd.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.dtpEnd.CustomFormat = "HH:mm:ss"; + this.dtpEnd.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.dtpEnd.Location = new System.Drawing.Point(63, 29); + this.dtpEnd.MaxDate = new System.DateTime(3000, 1, 1, 0, 0, 0, 0); + this.dtpEnd.MinDate = new System.DateTime(2000, 1, 1, 0, 0, 0, 0); + this.dtpEnd.Name = "dtpEnd"; + this.dtpEnd.ShowUpDown = true; + this.dtpEnd.Size = new System.Drawing.Size(69, 20); + this.dtpEnd.TabIndex = 1; + this.dtpEnd.Value = new System.DateTime(2000, 1, 1, 0, 0, 0, 0); + // + // frmSelectExportRange + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(198, 90); + this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmSelectExportRange"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Custom range..."; + this.Controls.SetChildIndex(this.baseConfigPanel, 0); + this.Controls.SetChildIndex(this.tableLayoutPanel1, 0); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DateTimePicker dtpStart; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label lblEndTime; + private System.Windows.Forms.DateTimePicker dtpEnd; + private System.Windows.Forms.Label lblStartTime; + } +} \ No newline at end of file diff --git a/UI/Forms/frmSelectExportRange.cs b/UI/Forms/frmSelectExportRange.cs new file mode 100644 index 0000000..8982f92 --- /dev/null +++ b/UI/Forms/frmSelectExportRange.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Mesen.GUI.Forms +{ + public partial class frmSelectExportRange : BaseConfigForm + { + public UInt32 ExportStart { get; private set; } + public UInt32 ExportEnd { get; private set; } + + public frmSelectExportRange(UInt32 segStart, UInt32 segEnd) + { + InitializeComponent(); + + dtpStart.Value = new DateTime(2000, 1, 1, 0, 0, 0).AddSeconds((int)(Math.Ceiling((decimal)segStart / 2))); + dtpEnd.Value = new DateTime(2000, 1, 1, 0, 0, 0).AddSeconds(segEnd / 2); + + dtpStart.MinDate = dtpStart.Value; + dtpStart.MaxDate = dtpEnd.Value; + dtpEnd.MinDate = dtpStart.Value; + dtpEnd.MaxDate = dtpEnd.Value; + } + + protected override bool ValidateInput() + { + return dtpStart.Value < dtpEnd.Value; + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + base.OnFormClosing(e); + ExportStart = (UInt32)(dtpStart.Value.TimeOfDay.TotalSeconds * 2); + ExportEnd = (UInt32)(dtpEnd.Value.TimeOfDay.TotalSeconds * 2); + } + } +} diff --git a/UI/Forms/frmSelectExportRange.resx b/UI/Forms/frmSelectExportRange.resx new file mode 100644 index 0000000..8766f29 --- /dev/null +++ b/UI/Forms/frmSelectExportRange.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/UI/Interop/EmuApi.cs b/UI/Interop/EmuApi.cs index 5187a73..2b50f9c 100644 --- a/UI/Interop/EmuApi.cs +++ b/UI/Interop/EmuApi.cs @@ -13,8 +13,15 @@ using Mesen.GUI.Forms; namespace Mesen.GUI { + public class EmuApi { + public enum ConsoleId + { + Main = 0, + HistoryViewer = 1 + } + private const string DllPath = "MesenSCore.dll"; [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool TestDll(); [DllImport(DllPath)] public static extern void InitDll(); @@ -42,9 +49,9 @@ namespace Mesen.GUI [DllImport(DllPath)] public static extern void PowerCycle(); [DllImport(DllPath)] public static extern void ReloadRom(); - [DllImport(DllPath)] public static extern void Pause(); - [DllImport(DllPath)] public static extern void Resume(); - [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool IsPaused(); + [DllImport(DllPath)] public static extern void Pause(ConsoleId consoleId = ConsoleId.Main); + [DllImport(DllPath)] public static extern void Resume(ConsoleId consoleId = ConsoleId.Main); + [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool IsPaused(ConsoleId consoleId = ConsoleId.Main); [DllImport(DllPath)] public static extern void TakeScreenshot(); @@ -74,7 +81,7 @@ namespace Mesen.GUI [DllImport(DllPath)] public static extern void SetDisplayLanguage(Language lang); [DllImport(DllPath)] public static extern void SetFullscreenMode([MarshalAs(UnmanagedType.I1)]bool fullscreen, IntPtr windowHandle, UInt32 monitorWidth, UInt32 monitorHeight); - [DllImport(DllPath)] public static extern ScreenSize GetScreenSize([MarshalAs(UnmanagedType.I1)]bool ignoreScale); + [DllImport(DllPath)] public static extern ScreenSize GetScreenSize([MarshalAs(UnmanagedType.I1)]bool ignoreScale, ConsoleId consoleId = ConsoleId.Main); [DllImport(DllPath, EntryPoint = "GetLog")] private static extern IntPtr GetLogWrapper(); public static string GetLog() { return Utf8Marshaler.PtrToStringUtf8(EmuApi.GetLogWrapper()).Replace("\n", Environment.NewLine); } diff --git a/UI/Interop/HistoryViewerApi.cs b/UI/Interop/HistoryViewerApi.cs new file mode 100644 index 0000000..d5524c5 --- /dev/null +++ b/UI/Interop/HistoryViewerApi.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Runtime.InteropServices; + +namespace Mesen.GUI +{ + class HistoryViewerApi + { + private const string DllPath = "MesenSCore.dll"; + + [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool HistoryViewerEnabled(); + [DllImport(DllPath)] public static extern void HistoryViewerInitialize(IntPtr windowHandle, IntPtr viewerHandle); + [DllImport(DllPath)] public static extern void HistoryViewerRelease(); + [DllImport(DllPath)] public static extern void HistoryViewerRun(); + [DllImport(DllPath)] public static extern void HistoryViewerStop(); + + [DllImport(DllPath)] public static extern UInt32 HistoryViewerGetHistoryLength(); + [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool HistoryViewerSaveMovie([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8Marshaler))] string movieFile, UInt32 startPosition, UInt32 endPosition); + [DllImport(DllPath)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool HistoryViewerCreateSaveState([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8Marshaler))] string outfileFile, UInt32 position); + [DllImport(DllPath)] public static extern void HistoryViewerSetPosition(UInt32 seekPosition); + [DllImport(DllPath)] public static extern void HistoryViewerResumeGameplay(UInt32 seekPosition); + [DllImport(DllPath)] public static extern UInt32 HistoryViewerGetPosition(); + [DllImport(DllPath, EntryPoint = "HistoryViewerGetSegments")] public static extern void HistoryViewerGetSegmentsWrapper(IntPtr segmentBuffer, ref UInt32 bufferSize); + + public static UInt32[] HistoryViewerGetSegments() + { + UInt32[] segmentBuffer = new UInt32[HistoryViewerApi.HistoryViewerGetHistoryLength() / 30]; + UInt32 bufferSize = (UInt32)segmentBuffer.Length; + + GCHandle hSegmentBuffer = GCHandle.Alloc(segmentBuffer, GCHandleType.Pinned); + try + { + HistoryViewerApi.HistoryViewerGetSegmentsWrapper(hSegmentBuffer.AddrOfPinnedObject(), ref bufferSize); + } + finally + { + hSegmentBuffer.Free(); + } + Array.Resize(ref segmentBuffer, (int)bufferSize); + + return segmentBuffer; + } + } +} diff --git a/UI/UI.csproj b/UI/UI.csproj index 7a34da9..8c300d7 100644 --- a/UI/UI.csproj +++ b/UI/UI.csproj @@ -217,6 +217,7 @@ + @@ -906,6 +907,14 @@ frmRecordMovie.cs + + Form + + + + Form + + @@ -970,6 +979,7 @@ frmRecordAvi.cs + @@ -1298,6 +1308,8 @@ frmRecordMovie.cs + + frmClientConfig.cs