Fix the dumbest bug in the universe

This commit is contained in:
scawful
2024-01-31 18:00:37 -05:00
parent c59f354450
commit adb7f0666e
5 changed files with 34 additions and 29 deletions

View File

@@ -85,7 +85,8 @@ Bytes PackBppTile(const tile8& tile, const uint32_t bpp) {
// 2bpp format
if (bpp >= 2) {
output[col * 2] += (uint8_t)((color & 1) << (7 - row));
output[col * 2 + 1] += (uint8_t)((uint8_t)((color & 2) == 2) << (7 - row));
output[col * 2 + 1] +=
(uint8_t)((uint8_t)((color & 2) == 2) << (7 - row));
}
// 3bpp format
@@ -101,7 +102,8 @@ Bytes PackBppTile(const tile8& tile, const uint32_t bpp) {
// 8bpp format
if (bpp == 8) {
output[32 + col * 2] += (uint8_t)(((color & 16) == 16) << (7 - row));
output[32 + col * 2 + 1] += (uint8_t)(((color & 32) == 32) << (7 - row));
output[32 + col * 2 + 1] +=
(uint8_t)(((color & 32) == 32) << (7 - row));
output[48 + col * 2] += (uint8_t)(((color & 64) == 64) << (7 - row));
output[48 + col * 2 + 1] +=
(uint8_t)(((color & 128) == 128) << (7 - row));
@@ -112,7 +114,7 @@ Bytes PackBppTile(const tile8& tile, const uint32_t bpp) {
}
std::vector<uint8_t> ConvertBpp(const std::vector<uint8_t>& tiles,
uint32_t from_bpp, uint32_t to_bpp) {
uint32_t from_bpp, uint32_t to_bpp) {
unsigned int nb_tile = tiles.size() / (from_bpp * 8);
std::vector<uint8_t> converted(nb_tile * to_bpp * 8);
@@ -346,8 +348,8 @@ uint16_t TileInfoToShort(TileInfo tile_info) {
TileInfo GetTilesInfo(uint16_t tile) {
// vhopppcc cccccccc
auto tid = (uint16_t)(tile & core::TileNameMask);
auto p = (uint8_t)((tile >> 10) & 0x07);
uint16_t tid = (uint16_t)(tile & core::TileNameMask);
uint8_t p = (uint8_t)((tile >> 10) & 0x07);
bool o = ((tile & core::TilePriorityBit) == core::TilePriorityBit);
bool h = ((tile & core::TileHFlipBit) == core::TileHFlipBit);

View File

@@ -12,7 +12,7 @@ namespace app {
namespace gfx {
constexpr uint8_t kGraphicsBitmap[8] = {0x80, 0x40, 0x20, 0x10,
0x08, 0x04, 0x02, 0x01};
0x08, 0x04, 0x02, 0x01};
Bytes SnesTo8bppSheet(Bytes sheet, int bpp);
Bytes Bpp8SnesToIndexed(Bytes data, uint64_t bpp = 0);
@@ -30,7 +30,7 @@ tile8 UnpackBppTile(const Bytes& data, const uint32_t offset,
Bytes PackBppTile(const tile8& tile, const uint32_t bpp);
std::vector<uint8_t> ConvertBpp(const std::vector<uint8_t>& tiles,
uint32_t from_bpp, uint32_t to_bpp);
uint32_t from_bpp, uint32_t to_bpp);
std::vector<uint8_t> Convert3bppTo4bpp(const std::vector<uint8_t>& tiles);
std::vector<uint8_t> Convert4bppTo3bpp(const std::vector<uint8_t>& tiles);