mirror of
https://github.com/zoriya/ComSquare.git
synced 2025-12-21 14:45:10 +00:00
found issues with rendering in 4 bpp
This commit is contained in:
@@ -14,7 +14,7 @@ namespace ComSquare::Debugger
|
|||||||
: _ram(nullptr),
|
: _ram(nullptr),
|
||||||
_cgram(nullptr),
|
_cgram(nullptr),
|
||||||
_bpp(2),
|
_bpp(2),
|
||||||
_palette(0),
|
_paletteIndex(0),
|
||||||
_renderSize(5000),
|
_renderSize(5000),
|
||||||
_nbColumns(16),
|
_nbColumns(16),
|
||||||
buffer({{{0}}})
|
buffer({{{0}}})
|
||||||
@@ -30,7 +30,7 @@ namespace ComSquare::Debugger
|
|||||||
{
|
{
|
||||||
uint8_t colorReference;
|
uint8_t colorReference;
|
||||||
uint24_t color;
|
uint24_t color;
|
||||||
std::vector<uint16_t> palette = this->getPalette(this->_palette);
|
std::vector<uint16_t> palette = this->getPalette(this->_paletteIndex);
|
||||||
int bufX = this->_offsetX;
|
int bufX = this->_offsetX;
|
||||||
int bufY = this->_offsetY;
|
int bufY = this->_offsetY;
|
||||||
int nbTilesDrawn = 0;
|
int nbTilesDrawn = 0;
|
||||||
@@ -46,8 +46,9 @@ namespace ComSquare::Debugger
|
|||||||
bufY -= PPU::Tile::NbPixelsHeight;
|
bufY -= PPU::Tile::NbPixelsHeight;
|
||||||
nbTilesDrawn++;
|
nbTilesDrawn++;
|
||||||
}
|
}
|
||||||
if (nbTilesDrawn && nbTilesDrawn % 16 == 0) {
|
if (nbTilesDrawn && nbTilesDrawn % this->_nbColumns == 0) {
|
||||||
nbTilesDrawn = 0;
|
nbTilesDrawn = 0;
|
||||||
|
break;
|
||||||
resetX = this->_offsetX;
|
resetX = this->_offsetX;
|
||||||
bufX = resetX;
|
bufX = resetX;
|
||||||
bufY += PPU::Tile::NbPixelsHeight;
|
bufY += PPU::Tile::NbPixelsHeight;
|
||||||
@@ -62,9 +63,9 @@ namespace ComSquare::Debugger
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileRenderer::setPalette(int palette)
|
void TileRenderer::setPaletteIndex(int paletteIndex)
|
||||||
{
|
{
|
||||||
this->_palette = palette;
|
this->_paletteIndex = paletteIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
void TileRenderer::setBpp(int bpp)
|
void TileRenderer::setBpp(int bpp)
|
||||||
@@ -127,4 +128,19 @@ namespace ComSquare::Debugger
|
|||||||
{
|
{
|
||||||
this->_nbColumns = nbColumns;
|
this->_nbColumns = nbColumns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int TileRenderer::getBpp() const
|
||||||
|
{
|
||||||
|
return this->_bpp;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TileRenderer::getPaletteIndex() const
|
||||||
|
{
|
||||||
|
return this->_paletteIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
int TileRenderer::getNbColumns() const
|
||||||
|
{
|
||||||
|
return this->_nbColumns;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,7 @@ namespace ComSquare::Debugger
|
|||||||
//! @brief The bpp to use while rendering
|
//! @brief The bpp to use while rendering
|
||||||
int _bpp;
|
int _bpp;
|
||||||
//! @brief The palette number to use while rendering
|
//! @brief The palette number to use while rendering
|
||||||
int _palette;
|
int _paletteIndex;
|
||||||
//! @brief The size to render in the ram
|
//! @brief The size to render in the ram
|
||||||
int _renderSize;
|
int _renderSize;
|
||||||
//! @brief The number of tile columns to display
|
//! @brief The number of tile columns to display
|
||||||
@@ -30,12 +30,24 @@ namespace ComSquare::Debugger
|
|||||||
public:
|
public:
|
||||||
//! @brief internal buffer
|
//! @brief internal buffer
|
||||||
std::array<std::array<uint32_t, 1024>, 1024> buffer;
|
std::array<std::array<uint32_t, 1024>, 1024> buffer;
|
||||||
void setPalette(int palette);
|
//! @brief Set the palette to use for render (index of palette)
|
||||||
|
void setPaletteIndex(int paletteIndex);
|
||||||
|
//! @brief Set the ram to look for color references
|
||||||
void setCgram(std::shared_ptr<Ram::Ram> ram);
|
void setCgram(std::shared_ptr<Ram::Ram> ram);
|
||||||
|
//! @brief Set the bpp to render graphics
|
||||||
void setBpp(int bpp);
|
void setBpp(int bpp);
|
||||||
|
//! @brief Set the number of maximum columns
|
||||||
void setNbColumns(int nbColumns);
|
void setNbColumns(int nbColumns);
|
||||||
|
//! @brief Set the size of ram to render
|
||||||
void setRenderSize(int size);
|
void setRenderSize(int size);
|
||||||
|
//! @brief The ram to render
|
||||||
void setRam(std::shared_ptr<Ram::Ram> ram);
|
void setRam(std::shared_ptr<Ram::Ram> ram);
|
||||||
|
//! @brief Get the current bpp
|
||||||
|
int getBpp() const;
|
||||||
|
//! @brief Get the index of the current palette used
|
||||||
|
int getPaletteIndex() const;
|
||||||
|
//! @brief Get the numbr of maximum tile columns to render
|
||||||
|
int getNbColumns() const;
|
||||||
uint8_t getPixelReferenceFromTileRow(uint16_t tileRowAddress, uint8_t pixelIndex);
|
uint8_t getPixelReferenceFromTileRow(uint16_t tileRowAddress, uint8_t pixelIndex);
|
||||||
std::vector<uint16_t> getPalette(int nbPalette);
|
std::vector<uint16_t> getPalette(int nbPalette);
|
||||||
//! @brief render the selected ram
|
//! @brief render the selected ram
|
||||||
|
|||||||
@@ -468,6 +468,9 @@ namespace ComSquare::PPU
|
|||||||
void PPU::update(unsigned cycles)
|
void PPU::update(unsigned cycles)
|
||||||
{
|
{
|
||||||
(void)cycles;
|
(void)cycles;
|
||||||
|
this->tileRenderer.setBpp(4);
|
||||||
|
this->tileRenderer.setPaletteIndex(2);
|
||||||
|
this->tileRenderer.setNbColumns(1);
|
||||||
this->tileRenderer.render();
|
this->tileRenderer.render();
|
||||||
this->add_buffer(this->_screen, this->tileRenderer.buffer);
|
this->add_buffer(this->_screen, this->tileRenderer.buffer);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user