diff --git a/Core/HistoryViewer.cpp b/Core/HistoryViewer.cpp index 0c839542..b64cfedb 100644 --- a/Core/HistoryViewer.cpp +++ b/Core/HistoryViewer.cpp @@ -116,10 +116,12 @@ void HistoryViewer::ResumeGameplay(shared_ptr console, uint32_t resumeP bool HistoryViewer::SetInput(BaseControlDevice *device) { uint8_t port = device->GetPort(); - std::deque &stateData = _history[_position].InputLogs[port]; - if(_pollCounter < stateData.size()) { - ControlDeviceState state = stateData[_pollCounter]; - device->SetRawState(state); + 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++; diff --git a/GUI.NET/Dependencies/resources.ca.xml b/GUI.NET/Dependencies/resources.ca.xml index bc4d6524..f271a8bf 100644 --- a/GUI.NET/Dependencies/resources.ca.xml +++ b/GUI.NET/Dependencies/resources.ca.xml @@ -59,6 +59,7 @@ Emulació Preferències Utilitats + History Viewer Joc en línia Inicia un servidor Conecta a un servidor @@ -585,6 +586,14 @@ Atura la gravació Obre la carpeta destinatària +
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Exemple d'ús General @@ -708,6 +717,9 @@ Carrega des d'un fitxer... Desa al fitxer... + Segment #{0} + An error occurred while trying to save the movie file. + Esborra el registre Darrera carpeta utilitzada diff --git a/GUI.NET/Dependencies/resources.en.xml b/GUI.NET/Dependencies/resources.en.xml index 8c140830..0f465d03 100644 --- a/GUI.NET/Dependencies/resources.en.xml +++ b/GUI.NET/Dependencies/resources.en.xml @@ -59,6 +59,7 @@ Emulation Preferences Tools + History Viewer Net Play Start Server Connect to Server @@ -596,6 +597,14 @@ Stop Recording Open Save Folder
+
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Usage Example General @@ -739,6 +748,9 @@ Load from file... Save to file... + Segment #{0} + An error occurred while trying to save the movie file. + Clear History Last Folder Used diff --git a/GUI.NET/Dependencies/resources.es.xml b/GUI.NET/Dependencies/resources.es.xml index 6e4606dd..63db3ee0 100644 --- a/GUI.NET/Dependencies/resources.es.xml +++ b/GUI.NET/Dependencies/resources.es.xml @@ -59,6 +59,7 @@ Emulación Preferencias Utilidades + History Viewer Juego online Iniciar servidor Conectar a un servidor @@ -583,6 +584,14 @@ Parar de grabar Abrir carpeta contenedora
+
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Ejemplo de uso General @@ -725,6 +734,9 @@ Cargar desde archivo... Guardar en archivo... + Segment #{0} + An error occurred while trying to save the movie file. + Limpiar historial Última carpeta usada diff --git a/GUI.NET/Dependencies/resources.fr.xml b/GUI.NET/Dependencies/resources.fr.xml index 749669b4..3630978f 100644 --- a/GUI.NET/Dependencies/resources.fr.xml +++ b/GUI.NET/Dependencies/resources.fr.xml @@ -59,6 +59,7 @@ Émulation Préférences Outils + Visualiseur de l'historique Jeu en ligne Démarrer un serveur Connexion à un serveur @@ -595,6 +596,14 @@ Arrêter l'enregistrement Ouvrir le dossier de sauvegarde
+
+ Volume + Fichier + Importer un film + Exporter un film + Reprendre le jeu + Fermer +
Exemple d'utilisation Général @@ -738,6 +747,9 @@ Charger à partir d'un fichier... Sauvegarder dans un fichier... + Segment #{0} + Une erreur est survenue pendant la sauvegarde du film. + Effacer l'historique Dernier dossier utilisé diff --git a/GUI.NET/Dependencies/resources.ja.xml b/GUI.NET/Dependencies/resources.ja.xml index 21252375..a83b5f0c 100644 --- a/GUI.NET/Dependencies/resources.ja.xml +++ b/GUI.NET/Dependencies/resources.ja.xml @@ -61,6 +61,7 @@ エミュレーション 設定 ツール + ヒストリービューア ネットプレイ サーバを起動する サーバに接続 @@ -585,6 +586,14 @@ 停止 セーブフォルダを開く
+
+ 音量 + ファイル + 動画をインポートする + 動画をエクスポートする + ここからゲームを再開する + 終了 +
使い方 全般 @@ -728,6 +737,9 @@ ファイルからロードする… ファイルに保存する… + パート {0} + 動画エクスポートは失敗しました。 + 履歴を消去 最後に使用したフォルダ diff --git a/GUI.NET/Dependencies/resources.pt.xml b/GUI.NET/Dependencies/resources.pt.xml index 14428a89..bf341004 100644 --- a/GUI.NET/Dependencies/resources.pt.xml +++ b/GUI.NET/Dependencies/resources.pt.xml @@ -59,6 +59,7 @@ Emulação Preferências Ferramentas + History Viewer Jogo online Iniciar servidor Conectar a um servidor @@ -581,6 +582,14 @@ Parar gravação Abrir a pasta de destino
+
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Exemplo de uso Geral @@ -723,6 +732,9 @@ Carregar de um arquivo... Salvar para arquivo... + Segment #{0} + An error occurred while trying to save the movie file. + Limpar histórico Última pasta usada diff --git a/GUI.NET/Dependencies/resources.ru.xml b/GUI.NET/Dependencies/resources.ru.xml index dcb54d38..a3dc9d39 100644 --- a/GUI.NET/Dependencies/resources.ru.xml +++ b/GUI.NET/Dependencies/resources.ru.xml @@ -59,6 +59,7 @@ Эмуляция Настройки Утилиты + History Viewer Игра по сети Запустить сервер Подключиться к серверу @@ -583,6 +584,14 @@ Stop Recording Open Save Folder
+
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Usage example General @@ -726,6 +735,9 @@ Load from file... Save to file... + Segment #{0} + An error occurred while trying to save the movie file. + Clear History Last Folder Used diff --git a/GUI.NET/Dependencies/resources.uk.xml b/GUI.NET/Dependencies/resources.uk.xml index 243ce826..20e6bb54 100644 --- a/GUI.NET/Dependencies/resources.uk.xml +++ b/GUI.NET/Dependencies/resources.uk.xml @@ -59,6 +59,7 @@ Емуляція Налаштування Утиліти + History Viewer Гра по мережі Запустити сервер Підключитися до сервера @@ -583,6 +584,14 @@ Зупинити запис Вiдкрити папку збережень
+
+ Volume + File + Import Movie + Export Movie + Resume Gameplay + Close +
Приклад використання Загальний @@ -726,6 +735,9 @@ Завантажитти з файлу... Зберегти в файл... + Segment #{0} + An error occurred while trying to save the movie file. + Очистити історію Використовувана остання папка diff --git a/GUI.NET/Forms/frmHistoryViewer.Designer.cs b/GUI.NET/Forms/frmHistoryViewer.Designer.cs index aaf8ce06..0f32d792 100644 --- a/GUI.NET/Forms/frmHistoryViewer.Designer.cs +++ b/GUI.NET/Forms/frmHistoryViewer.Designer.cs @@ -40,7 +40,7 @@ this.trkVolume = new System.Windows.Forms.TrackBar(); this.tmrUpdatePosition = new System.Windows.Forms.Timer(this.components); this.menuStrip2 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + 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(); @@ -143,7 +143,7 @@ // this.ctrlRenderer.Anchor = System.Windows.Forms.AnchorStyles.None; this.ctrlRenderer.Location = new System.Drawing.Point(134, 89); - this.ctrlRenderer.Margin = new System.Windows.Forms.Padding(0, 0, 0, 0); + this.ctrlRenderer.Margin = new System.Windows.Forms.Padding(0); this.ctrlRenderer.Name = "ctrlRenderer"; this.ctrlRenderer.Size = new System.Drawing.Size(256, 240); this.ctrlRenderer.TabIndex = 0; @@ -196,26 +196,26 @@ // menuStrip2 // this.menuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem}); + this.mnuFile}); this.menuStrip2.Location = new System.Drawing.Point(0, 0); this.menuStrip2.Name = "menuStrip2"; this.menuStrip2.Size = new System.Drawing.Size(532, 24); this.menuStrip2.TabIndex = 1; this.menuStrip2.Text = "menuStrip2"; // - // fileToolStripMenuItem + // mnuFile // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mnuImportMovie, this.mnuExportMovie, this.toolStripMenuItem1, this.mnuResumeGameplay, this.toolStripMenuItem2, this.mnuClose}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "File"; - this.fileToolStripMenuItem.DropDownOpening += new System.EventHandler(this.fileToolStripMenuItem_DropDownOpening); + this.mnuFile.Name = "mnuFile"; + this.mnuFile.Size = new System.Drawing.Size(37, 20); + this.mnuFile.Text = "File"; + this.mnuFile.DropDownOpening += new System.EventHandler(this.fileToolStripMenuItem_DropDownOpening); // // mnuImportMovie // @@ -291,7 +291,7 @@ private System.Windows.Forms.Timer tmrUpdatePosition; private System.Windows.Forms.Label lblPosition; private System.Windows.Forms.MenuStrip menuStrip2; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem mnuFile; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem mnuImportMovie; private System.Windows.Forms.ToolStripMenuItem mnuExportMovie; diff --git a/GUI.NET/Forms/frmHistoryViewer.cs b/GUI.NET/Forms/frmHistoryViewer.cs index 912912ff..3d43d81f 100644 --- a/GUI.NET/Forms/frmHistoryViewer.cs +++ b/GUI.NET/Forms/frmHistoryViewer.cs @@ -121,7 +121,6 @@ namespace Mesen.GUI.Forms { InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(false, InteropEmu.ConsoleId.HistoryViewer); if(size.Width != ctrlRenderer.ClientSize.Width || size.Height != ctrlRenderer.ClientSize.Height) { - //MessageBox.Show(size.Height.ToString() + " vs " + ctrlRenderer.ClientSize.Height.ToString()); ctrlRenderer.ClientSize = new Size(size.Width, size.Height); } @@ -179,7 +178,8 @@ namespace Mesen.GUI.Forms TimeSpan start = new TimeSpan(0, 0, (int)(segmentStart) / 2); TimeSpan end = new TimeSpan(0, 0, (int)(segEnd / 2)); - ToolStripMenuItem item = new ToolStripMenuItem("Segment #" + (mnuExportMovie.DropDownItems.Count + 1).ToString() + ", " + start.ToString() + " - " + end.ToString()); + string segmentName = ResourceHelper.GetMessage("MovieSegment", (mnuExportMovie.DropDownItems.Count + 1).ToString()); + ToolStripMenuItem item = new ToolStripMenuItem(segmentName + ", " + start.ToString() + " - " + end.ToString()); item.Click += (s, evt) => { SaveFileDialog sfd = new SaveFileDialog(); sfd.SetFilter(ResourceHelper.GetMessage("FilterMovie")); @@ -187,7 +187,7 @@ namespace Mesen.GUI.Forms sfd.FileName = InteropEmu.GetRomInfo().GetRomName() + ".mmo"; if(sfd.ShowDialog() == DialogResult.OK) { if(!InteropEmu.HistoryViewerSaveMovie(sfd.FileName, segStart, segEnd)) { - MessageBox.Show("An error occurred while trying to save the movie file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + MesenMsgBox.Show("MovieSaveError", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }; diff --git a/GUI.NET/Forms/frmMain.Designer.cs b/GUI.NET/Forms/frmMain.Designer.cs index 45bdf88c..0ec2eb07 100644 --- a/GUI.NET/Forms/frmMain.Designer.cs +++ b/GUI.NET/Forms/frmMain.Designer.cs @@ -162,6 +162,7 @@ namespace Mesen.GUI.Forms 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.toolStripMenuItem22 = new System.Windows.Forms.ToolStripSeparator(); this.mnuSoundRecorder = new System.Windows.Forms.ToolStripMenuItem(); @@ -213,7 +214,6 @@ namespace Mesen.GUI.Forms this.mnuReportBug = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuHistoryViewer = new System.Windows.Forms.ToolStripMenuItem(); this.panelRenderer.SuspendLayout(); this.panelInfo.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.picIcon)).BeginInit(); @@ -1307,6 +1307,14 @@ namespace Mesen.GUI.Forms 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; @@ -1712,14 +1720,6 @@ namespace Mesen.GUI.Forms this.mnuAbout.Text = "About"; this.mnuAbout.Click += new System.EventHandler(this.mnuAbout_Click); // - // mnuHistoryViewer - // - this.mnuHistoryViewer.Image = global::Mesen.GUI.Properties.Resources.Speed; - 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); - // // frmMain // this.AllowDrop = true; diff --git a/GUI.NET/Forms/frmMain.cs b/GUI.NET/Forms/frmMain.cs index ccbce71d..8309761b 100644 --- a/GUI.NET/Forms/frmMain.cs +++ b/GUI.NET/Forms/frmMain.cs @@ -1089,7 +1089,7 @@ namespace Mesen.GUI.Forms mnuStopMovie.Enabled = running && !netPlay && (moviePlaying || movieRecording); mnuRecordMovie.Enabled = running && !moviePlaying && !movieRecording && !isNetPlayClient; mnuGameConfig.Enabled = !moviePlaying && !movieRecording; - mnuHistoryViewer.Enabled = running && !InteropEmu.IsNsf(); + mnuHistoryViewer.Enabled = running && !InteropEmu.IsNsf() && ConfigManager.Config.PreferenceInfo.RewindBufferSize > 0; bool waveRecording = InteropEmu.WaveIsRecording(); mnuWaveRecord.Enabled = running && !waveRecording; diff --git a/GUI.NET/GUI.NET.csproj b/GUI.NET/GUI.NET.csproj index 84120c16..1fe21cdc 100644 --- a/GUI.NET/GUI.NET.csproj +++ b/GUI.NET/GUI.NET.csproj @@ -1215,6 +1215,7 @@ + diff --git a/GUI.NET/Properties/Resources.Designer.cs b/GUI.NET/Properties/Resources.Designer.cs index 523a05fc..9c49ce03 100644 --- a/GUI.NET/Properties/Resources.Designer.cs +++ b/GUI.NET/Properties/Resources.Designer.cs @@ -460,6 +460,16 @@ namespace Mesen.GUI.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap HistoryViewer { + get { + object obj = ResourceManager.GetObject("HistoryViewer", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/GUI.NET/Properties/Resources.resx b/GUI.NET/Properties/Resources.resx index 44f954db..a8daef58 100644 --- a/GUI.NET/Properties/Resources.resx +++ b/GUI.NET/Properties/Resources.resx @@ -421,4 +421,7 @@ ..\Resources\VsButton4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\HistoryViewer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/GUI.NET/Resources/HistoryViewer.png b/GUI.NET/Resources/HistoryViewer.png new file mode 100644 index 00000000..0d2cab13 Binary files /dev/null and b/GUI.NET/Resources/HistoryViewer.png differ