diff --git a/Core/Ppu.cpp b/Core/Ppu.cpp index ea33240..e74d99a 100644 --- a/Core/Ppu.cpp +++ b/Core/Ppu.cpp @@ -115,26 +115,6 @@ void Ppu::Exec() } } -struct SpriteInfo -{ - int16_t X; - bool HorizontalMirror; - bool VerticalMirror; - uint8_t Priority; - - uint8_t TileColumn; - uint8_t TileRow; - uint8_t Palette; - bool UseSecondTable; - uint8_t LargeSprite; -}; - -SpriteInfo _sprites[32] = {}; -uint8_t _spriteCount = 0; -uint8_t _spritePriority[256] = {}; -uint8_t _spritePalette[256] = {}; -uint16_t _spritePixels[256] = {}; - template void Ppu::DrawSprites() { diff --git a/Core/Ppu.h b/Core/Ppu.h index 62cb4c0..ff9c2ae 100644 --- a/Core/Ppu.h +++ b/Core/Ppu.h @@ -5,6 +5,20 @@ class Console; class InternalRegisters; +struct SpriteInfo +{ + int16_t X; + bool HorizontalMirror; + bool VerticalMirror; + uint8_t Priority; + + uint8_t TileColumn; + uint8_t TileRow; + uint8_t Palette; + bool UseSecondTable; + uint8_t LargeSprite; +}; + class Ppu { public: @@ -52,6 +66,12 @@ private: uint16_t *_outputBuffers[2]; + SpriteInfo _sprites[32] = {}; + uint8_t _spriteCount = 0; + uint8_t _spritePriority[256] = {}; + uint8_t _spritePalette[256] = {}; + uint16_t _spritePixels[256] = {}; + uint8_t _rowPixelFlags[256]; uint16_t *_currentBuffer;