Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
        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;
        }
Beispiel #5
0
 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);
 }
Beispiel #6
0
        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);
        }
Beispiel #8
0
        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;
            }
        }