private void tmrUpdatePosition_Tick(object sender, EventArgs e) { InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(false, InteropEmu.ConsoleId.HistoryViewer); if (size.Width != ctrlRenderer.ClientSize.Width || size.Height != ctrlRenderer.ClientSize.Height) { ctrlRenderer.ClientSize = new Size(size.Width, size.Height); } _paused = InteropEmu.IsPaused(InteropEmu.ConsoleId.HistoryViewer); if (_paused) { btnPausePlay.Image = Properties.Resources.Play; } else { btnPausePlay.Image = Properties.Resources.Pause; } UInt32 positionInSeconds = InteropEmu.HistoryViewerGetPosition() / 2; UpdatePositionLabel(positionInSeconds); if (positionInSeconds <= trkPosition.Maximum) { trkPosition.ValueChanged -= trkPosition_ValueChanged; trkPosition.Value = (int)positionInSeconds; trkPosition.ValueChanged += trkPosition_ValueChanged; } }
private void mnuVideoConfig_Click(object sender, EventArgs e) { Size originalSize = this.Size; InteropEmu.ScreenSize originalScreenSize = InteropEmu.GetScreenSize(false); Configuration configBackup = ConfigManager.Config.Clone(); bool cancelled = false; using (frmVideoConfig frm = new frmVideoConfig()) { cancelled = frm.ShowDialog(sender, this) == DialogResult.Cancel; } if (cancelled) { ConfigManager.RevertToBackup(configBackup); ConfigManager.Config.ApplyConfig(); } UpdateVideoSettings(); InteropEmu.ScreenSize screenSize = InteropEmu.GetScreenSize(false); if ((cancelled || (screenSize.Height == originalScreenSize.Height && screenSize.Width == originalScreenSize.Width)) && this.WindowState == FormWindowState.Normal) { this.Size = originalSize; } if (_fullscreenMode && ConfigManager.Config.VideoInfo.UseExclusiveFullscreen && _frmFullscreenRenderer == null) { StopFullscreenWindowMode(); if (!this._isNsfPlayerMode) { SetFullscreenState(true); } } }
private void UpdateScale() { Size dimensions = pnlRenderer.ClientSize; InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(true, InteropEmu.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 SetScale(int scale) { InteropEmu.ScreenSize size = InteropEmu.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; }
public void SetScale(double scale) { if (scale % 1 == 0) { InteropEmu.SetVideoResizeFilter(VideoResizeFilter.NearestNeighbor); } else { InteropEmu.SetVideoResizeFilter(VideoResizeFilter.Bilinear); } InteropEmu.SetVideoScale(scale); InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(false); _renderControl.Size = new Size(size.Width, size.Height); }
private void StartEmulatorProcess(string baseDir) { /* * var process = new Process(); * process.StartInfo.WorkingDirectory = Environment.CurrentDirectory + @"\fceux"; * process.StartInfo.FileName = "fceux.exe"; * process.StartInfo.Arguments = cartridgeFile; * process.EnableRaisingEvents = true; * process.Exited += (sender, args) => { _emulatorProcess = null; }; * * process.Start(); * _emulatorProcess = process; */ var test = InteropEmu.TestDll(); var version = InteropEmu.GetMesenVersion(); InteropEmu.SetDisplayLanguage(Language.English); InteropEmu.InitDll(); _notifListener = new InteropEmu.NotificationListener(InteropEmu.ConsoleId.Master); _notifListener.OnNotification += HandleNotification; ApplyConfig(); InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(false); _renderControl.Size = new Size(size.Width, size.Height); InteropEmu.InitializeEmu(baseDir, _mainWindow.Handle, _renderControl.Handle, false, false, false); InteropEmu.AddKnownGameFolder(@"C:\Users\dkmrs\Documents\NesDev\sc"); ApplyInputConfig(); ApplyAudioConfig(); ApplyPreferenceConfig(); ApplyEmulationConfig(); InteropEmu.SetNesModel(NesModel.Auto); InteropEmu.DebugSetDebuggerConsole(InteropEmu.ConsoleId.Master); }
protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); InteropEmu.ScreenSize size = InteropEmu.GetScreenSize(false); int leftMargin = (this.Width - size.Width) / 2; int topMargin = (this.Height - size.Height) / 2; CursorManager.OnMouseMove(this); if (CursorManager.NeedMouseIcon) { this.Cursor = Cursors.Cross; } double xPos = (double)(e.X - leftMargin) / size.Width; double yPos = (double)(e.Y - topMargin) / size.Height; xPos = Math.Max(0.0, Math.Min(1.0, xPos)); yPos = Math.Max(0.0, Math.Min(1.0, yPos)); InteropEmu.SetMousePosition(xPos, yPos); }
private void mnuVideoConfig_Click(object sender, EventArgs e) { Size originalSize = this.Size; InteropEmu.ScreenSize originalScreenSize = InteropEmu.GetScreenSize(false); Configuration configBackup = ConfigManager.Config.Clone(); bool cancelled = false; using (frmVideoConfig frm = new frmVideoConfig()) { cancelled = frm.ShowDialog(sender) == DialogResult.Cancel; } if (cancelled) { ConfigManager.RevertToBackup(configBackup); ConfigManager.Config.ApplyConfig(); } UpdateVideoSettings(); InteropEmu.ScreenSize screenSize = InteropEmu.GetScreenSize(false); if ((cancelled || (screenSize.Height == originalScreenSize.Height && screenSize.Width == originalScreenSize.Width)) && this.WindowState == FormWindowState.Normal) { this.Size = originalSize; } }