Exemple #1
0
        private void pge_OnUpdate(object sender, FrameUpdateEventArgs frameUpdateArgs)
        {
            pge.Clear(Pixel.DARK_BLUE);

            if (runEmulation)
            {
                if (residualTime > 0.0f)
                {
                    residualTime -= frameUpdateArgs.ElapsedTime;
                }
                else
                {
                    residualTime += (1.0 / 60.0988) - frameUpdateArgs.ElapsedTime;

                    handleControllerInputs(pge.Platform.KeyboardState);
                    do
                    {
                        nesBus.clock();
                        playAudioWhenReady();
                    } while (!nesBus.PPU.FrameComplete);
                    nesBus.PPU.FrameComplete = false;
                    _frameCount++;

                    if (DateTime.Now - dtStart >= TimeSpan.FromSeconds(1))
                    {
                        dtStart     = DateTime.Now;
                        _fps        = _frameCount;
                        _frameCount = 0;
                    }
                }
            }

            pge.DrawString(360, 2, $"FPS: {_fps}", Pixel.WHITE);

            // Draw rendered output
            pge.DrawSprite(0, 0, nesBus.PPU.GetScreen(), 1);

            pge.DrawString(0, 265, "X, Z - A, B", Pixel.WHITE);
            pge.DrawString(0, 280, "A, S - START, SELECT", Pixel.WHITE);

            // Draw Ram Page 0x00
            //DrawRam(2, 2, 0x0000, 16, 16);
            //DrawRam(2, 182, 0x0100, 16, 16);
            //DrawCpu(416, 2);
            //DrawCode(416, 72, 26);
            //DrawOam(270, 10, 0, 8, true);
            //DrawOam(270, 140, 0, 32);
            //DrawOam(500, 140, 32, 32);

            // Draw Palettes & Pattern Tables
            //DrawPalettes(516, 340);

            // Draw selection recticle around selected palette
            //pge.DrawRect(516 + selectedPalette * (swatchSize * 5) - 1, 339, (swatchSize * 4), swatchSize, Pixel.WHITE);

            // Generate Pattern Tables
            //pge.DrawSprite(316, 10, nesBus.PPU.GetPatternTable(0, (byte)selectedPalette));
            //pge.DrawSprite(448, 10, nesBus.PPU.GetPatternTable(1, (byte)selectedPalette));
        }
Exemple #2
0
        private void updateFrame(object sender, FrameUpdateEventArgs frameUpdateArgs)
        {
            pge.Clear(Pixel.BLUE);
            pge.PixelBlendMode = csPixelGameEngineCore.Enums.BlendMode.MASK;
            //testAnimation[1].CopyTo(pge.DefaultDrawTarget, 0, 0, -100, -100);
            //pge.DrawSprite(0, 0, testAnimation[1]);
            //pge.DrawDecal(new vec2d_f(), testAnimationDecal[1]);
            _rotation += _rotationStep % _fullCircle;
            pge.DrawRotatedDecal(new vec2d_f(testAnimationDecal[1].sprite.Width / 2.0f, testAnimationDecal[1].sprite.Height / 2.0f),
                                 testAnimationDecal[1],
                                 _rotation,
                                 new vec2d_f(testAnimationDecal[1].sprite.Width / 2.0f, testAnimationDecal[1].sprite.Height / 2.0f));
            pge.DrawWarpedDecal(testAnimationDecal[1],
                                new vec2d_f[] {
                new vec2d_f(400.0f, 200.0f),
                new vec2d_f(780.0f, 550.0f),
                new vec2d_f(10.0f, 500.0f),
                new vec2d_f(200.0f, 120.0f)
            });
            showCursorPos(0, 20);
            showMouseWheelDelta(0, 30);
            showMouseButtonState(0, 40, 0);
            showMouseButtonState(0, 50, 1);
            showMouseButtonState(0, 60, 2);
            //pge.PixelBlendMode = csPixelGameEngineCore.Enums.BlendMode.NORMAL;

            //pge.DrawCircle(100, 100, 100, Pixel.RED);
            //pge.FillCircle(500, 500, 30, Pixel.GREEN);
            //pge.PixelBlendMode = csPixelGameEngineCore.Enums.BlendMode.ALPHA;
            //pge.FillTriangle(new vec2d_i(304, 200),
            //                 new vec2d_i(544, 381),
            //                 new vec2d_i(444, 500),
            //                 Pixel.MAGENTA);
            //pge.PixelBlendMode = csPixelGameEngineCore.Enums.BlendMode.NORMAL;

            //drawRandomPixels();

            _curFrameCount++;
            if ((DateTime.Now - _dtStartFrame) >= TimeSpan.FromSeconds(1))
            {
                _fps           = _curFrameCount;
                _curFrameCount = 0;
                _dtStartFrame  = DateTime.Now;
            }
            pge.DrawStringDecal(0, 10, $"FPS: {_fps}", Pixel.BLACK);
        }