Esempio n. 1
0
        public void RunQueuedMovie(bool recordMode, IEmulator emulator, IDictionary <string, string> preferredCores)
        {
            MovieController = new Bk2Controller(emulator.ControllerDefinition);
            foreach (var previousPref in _preferredCores)
            {
                preferredCores[previousPref.Key] = previousPref.Value;
            }

            Movie = _queuedMovie;
            Movie.Attach(emulator);
            _queuedMovie = null;

            Movie.ProcessSavestate(Movie.Emulator);
            Movie.ProcessSram(Movie.Emulator);

            if (recordMode)
            {
                Movie.StartNewRecording();
                ReadOnly = false;
            }
            else
            {
                Movie.StartNewPlayback();
            }
        }
        private MovieZone(IEmulator emulator, ToolManager tools, IMovieSession movieSession)
        {
            _emulator     = emulator;
            _tools        = tools;
            _movieSession = movieSession;

            _targetController = movieSession.GenerateMovieController();
            _targetController.SetFrom(_targetController);             // Reference and create all buttons
        }
        private void InitController(string key)
        {
            string[] keys = key.Split('|');
            var      d    = new ControllerDefinition();

            foreach (var k in keys)
            {
                if (_emulator.ControllerDefinition.BoolButtons.Contains(k))
                {
                    d.BoolButtons.Add(k);
                }
                else
                {
                    d.Axes.Add(k, _emulator.ControllerDefinition.Axes[key]);
                }
            }

            _controller = _movieSession.GenerateMovieController(d);
        }
Esempio n. 4
0
        public void RunQueuedMovie(bool recordMode, IEmulator emulator)
        {
            MovieController = new Bk2Controller(emulator.ControllerDefinition);

            Movie = _queuedMovie;
            Movie.Attach(emulator);
            _queuedMovie = null;

            Movie.ProcessSavestate(Movie.Emulator);
            Movie.ProcessSram(Movie.Emulator);

            if (recordMode)
            {
                Movie.StartNewRecording();
                ReadOnly = false;
            }
            else
            {
                Movie.StartNewPlayback();
            }
        }
Esempio n. 5
0
        public void RunQueuedMovie(bool recordMode, IEmulator emulator)
        {
            MovieController = new Bk2Controller(emulator.ControllerDefinition);

            Movie = _queuedMovie;
            Movie.Attach(emulator);
            _queuedMovie = null;

            Movie.ProcessSavestate(Movie.Emulator);

            if (recordMode)
            {
                Movie.StartNewRecording();
                ReadOnly = false;
                // If we are starting a movie recording while another one is playing, we need to switch back to user input
                LatchInputToUser();
            }
            else
            {
                Movie.StartNewPlayback();
            }
        }
Esempio n. 6
0
 public MovieController(IMovieController implementation)
 {
     _implementation = implementation;
 }
        public MovieZone(IMovie movie, IEmulator emulator, ToolManager tools, IMovieSession movieSession, int start, int length, string key = "")
        {
            _emulator     = emulator;
            _tools        = tools;
            _movieSession = movieSession;
            var lg = movie.LogGeneratorInstance(movieSession.MovieController);

            _targetController = movieSession.GenerateMovieController();
            _targetController.SetFrom(_targetController);             // Reference and create all buttons

            if (key == "")
            {
                key = lg.GenerateLogKey();
            }

            key = key.Replace("LogKey:", "").Replace("#", "");
            key = key.Substring(0, key.Length - 1);

            _inputKey = key;
            Length    = length;
            _log      = new string[length];

            // Get a IController that only contains buttons in key.
            string[] keys = key.Split('|');
            var      d    = new ControllerDefinition();

            foreach (var k in keys)
            {
                if (_emulator.ControllerDefinition.BoolButtons.Contains(k))
                {
                    d.BoolButtons.Add(k);
                }
                else
                {
                    d.Axes.Add(k, _emulator.ControllerDefinition.Axes[k]);
                }
            }

            _controller = movieSession.GenerateMovieController(d);
            var logGenerator = movieSession.Movie.LogGeneratorInstance(_controller);

            logGenerator.GenerateLogEntry();             // Reference and create all buttons.

            string movieKey = logGenerator.GenerateLogKey().Replace("LogKey:", "").Replace("#", "");

            movieKey = movieKey.Substring(0, movieKey.Length - 1);
            if (key == movieKey)
            {
                for (int i = 0; i < length; i++)
                {
                    _log[i] = movie.GetInputLogEntry(i + start);
                }
            }
            else
            {
                for (int i = 0; i < length; i++)
                {
                    _controller.SetFrom(movie.GetInputState(i + start));
                    _log[i] = logGenerator.GenerateLogEntry();
                }
            }
        }