Esempio n. 1
0
        protected async Task LoadingRomWorksInternal(string romName)
        {
            var romsFolder = await GetRomsFolderAsync();

            var provider = new StreamProvider(VFS.SystemPath, romsFolder);

            Target.OpenFileStream  = provider.OpenFileStream;
            Target.CloseFileStream = provider.CloseFileStream;

            var romPath    = $"{VFS.SystemPath}{Path.DirectorySeparatorChar}{romName}";
            var loadResult = await Task.Run(() => Target.LoadGame(romPath));

            Assert.True(loadResult);
            Assert.NotEqual(PixelFormats.FormatUknown, Target.PixelFormat);

            var geometry = Target.Geometry;

            Assert.NotEqual(0, geometry.AspectRatio);
            Assert.NotEqual(0U, geometry.BaseWidth);
            Assert.NotEqual(0U, geometry.BaseHeight);
            Assert.NotEqual(0U, geometry.MaxHeight);
            Assert.NotEqual(0U, geometry.MaxWidth);

            var timing = Target.Timing;

            Assert.NotEqual(0, timing.FPS);
            Assert.NotEqual(0, timing.SampleRate);

            await Task.Run(() => Target.UnloadGame());

            loadResult = await Task.Run(() => Target.LoadGame(romPath));

            Assert.True(loadResult);
        }
Esempio n. 2
0
        protected async Task ExecutionWorksInternal(string romName)
        {
            var pollInputCalled = false;

            Target.PollInput = () => pollInputCalled = true;

            var getInputStateCalled = false;

            Target.GetInputState += (d, e) =>
            {
                getInputStateCalled = true;
                return(0);
            };

            var renderVideoFrameCalled = false;

            Target.RenderVideoFrame = (d, e, f, g) =>
            {
                Assert.True(e > 0);
                Assert.True(f > 0);
                Assert.True(g > 0);
                renderVideoFrameCalled = true;
            };

            var renderAudioFrameCalled = false;

            Target.RenderAudioFrames = (d) =>
            {
                Assert.NotEmpty(d);
                Assert.True(d.Length % 2 == 0);
                renderAudioFrameCalled = true;
            };

            var romsFolder = await GetRomsFolderAsync();

            var provider = new StreamProvider(VFS.SystemPath, romsFolder);

            Target.OpenFileStream  = provider.OpenFileStream;
            Target.CloseFileStream = provider.CloseFileStream;

            var loadResult = await Task.Run(() => Target.LoadGame($"{VFS.SystemPath}{Path.DirectorySeparatorChar}{romName}"));

            Assert.True(loadResult);

            await Task.Run(() =>
            {
                Target.RunFrame();
            });

            Assert.True(pollInputCalled);
            Assert.True(getInputStateCalled);
            Assert.True(renderVideoFrameCalled);
            Assert.True(renderAudioFrameCalled);
        }