Store 8x8 pixel images in Flash and access them

Hi all,
I want to store 8x8 pixel images in Arduino Flash using PROGMEM and then access them easily.

here an extract of my code:

const long Pumpkin2b[] PROGMEM =
{
0xff000000, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xff000000, 
0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 
0xffeb5e00, 0xfffa0505, 0xfffa0505, 0xfffaf7f5, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xffeb5e00, 
0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 
0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 
0xff000000, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xff000000, 
0xff000000, 0xff000000, 0xff000000, 0xff0c6624, 0xff0c6624, 0xff000000, 0xff000000, 0xff000000, 
0xff000000, 0xff000000, 0xff0c6624, 0xff0c6624, 0xff000000, 0xff000000, 0xff000000, 0xff000000
};
// Table of 8x8 pixart
const long* const pixart_table[] PROGMEM = { Pumpkin3, Pumpkin2a, Pumpkin2b }; //Bat1, Ghost, Heart, Pumpkin1, Pumpkin2,

Later I want to set the pixels of my LED matrix

leds[i] = pgm_read_dword(&(pixart_table[j][i]));

As long as I have only one image in the array it works. But when there are more I get weird mixes of the pixart images. (maybe an overflow)?
Cheers!

Then you will need to go to:-
http://snippets-r-us.com/

That's because the compiler can figure out the address of your image without fetching if from memory. You left out the part where you are fetching pointers from PROGMEM (pgm_read_ptr() or something like that) before then using the address in the pointer to fetch DWORDs from PROGMEM.

  uint32_t * imagePointer = (uint32_t *) pgm_read_ptr(&pixart_table[j]);
  leds[i] = pgm_read_dword(&imagePointer[i]);`
1 Like

that worked!! thanks so much for the help - you made my day :slight_smile:

Hello,

As you have many colors that are the same, you could make a lookup array of the different colors that are used in all the picture(s), and replace your heavy arrays of pixel colors with arrays of indexes

If you have at most 256 colors, you could reduce the memory usage of your picture(s) by 4 times (not counting the size of the array of colors)

Here is an example : t1042492.ino - Wokwi Arduino and ESP32 Simulator

It takes your original arrays and generates indexes arrays and the lookup color list, and print them in Serial monitor (press the Start button in the simulator window)

You could even reduce memory usage by 8 times if you have at most 16 colors, by using 4 bits per pixel

(Edit: I was tired and misused the term "lookup" : of course, the lookup array is the color list, not the pixels arrays..)

1 Like

Thats very helpful! Thanks!

I have another question on this:
I created the arrays of hex values to display on a 8x8 pixel matrix (i have serpentine layout), but I dont have the original images anymore. How can I reverse the order of every second row.

const long Pumpkin2b[] PROGMEM =
{
0xff000000, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xff000000, 
0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 
0xffeb5e00, 0xfffa0505, 0xfffa0505, 0xfffaf7f5, 0xfffa0505, 0xfffa0505, 0xfffa0505, 0xffeb5e00, 
0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 
0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 0xfffa0505, 0xffeb5e00, 0xffeb5e00, 
0xff000000, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xffeb5e00, 0xff000000, 
0xff000000, 0xff000000, 0xff000000, 0xff0c6624, 0xff0c6624, 0xff000000, 0xff000000, 0xff000000, 
0xff000000, 0xff000000, 0xff0c6624, 0xff0c6624, 0xff000000, 0xff000000, 0xff000000, 0xff000000
};

The simplest way would be to pull every other line from the image in reverse order.

A more tedious way would be to rearrange the order of every other line.

Finally you could write some code that did the first suggestion but printed the output to the serial monitor, complete with braces spaces and comers. Then copy the serial monitor output and paste it in to your original code.

I am trying to implement your solution because the flash memory is getting full.
How can I read the "compressed" images together with the color lists?
[Neopixel Matrix 8x8 - Wokwi Arduino and ESP32 Simulator]
main file is the "FFT_Visualizer... .ino" and the art is in pixelart.h (ignore the other files)

Simple

With your array, you normally do : pixel_color = Pumpkin2b[ pixel_id ];

With my "compressed" array you have to do : pixel_color = colorsList[ Pumpkin2b[ pixel_id ] ];

I dont really get this to work with the array pointers I am using:

void animateimage_pumpkin(int wait, int repeat){
   for (int j=0; j<number_skull*repeat; j++){
    uint32_t * imagePointer = (uint32_t *) pgm_read_ptr(&ani_pumpkin[j%number_pumpkin]);
    for(int i = 0; i < NUM_LEDS; i++) {
      strip.setPixelColor(i, pgm_read_dword(&imagePointer[i]));// Read array from Flash
    }
    strip.show();
    delay(wait);
   }
}

In what way does it 'not really work'?

Perhaps the mistake is somewhere else in your sketch so a full list might help.

Full sketch [Neopixel Matrix 8x8 - Wokwi Arduino and ESP32 Simulator]
main file is the "FFT_Visualizer... .ino" and the art is in pixelart.h (ignore the other files)

There are a whole bunch of warnings because many of the pixel values are too large to put in a 'long'. Changing all of the "const long" in pixelart.h to "const unsigned long" got rid of those warnings.

Shouldn't that third line ALSO use number_pumpkin? Same for all of the other copies of the function, except animateimage_skull().

Thanks I will change that, but how do I properly use the compression function above with my pointers/adresses?

I think you start by assigning each of your unique colors an 8-bit index. That can be done with an 'enum' that automatically assigns sequential numbers to names. Then you convert each of your "long" images to "uint8_t" images using the index name instead of the 32-bit color value. After that, your sketch takes up 62% of the PROGMEM instead of 88%.

Then these lines:
strip.setPixelColor(i, pgm_read_dword(&imagePointer[i]));
change to:

   byte colorIndex = pgm_read_byte(&imagePointer[i]);
   strip.setPixelColor(i, pgm_read_dword(&colorsList[colorIndex]));

It's easy! :slight_smile:

//------------Pixel ART-----------
// Create the array of retro arcade characters and store it in Flash memory

enum {C000000,
C0000ff,
C000203,
C006000,
C006bba,
C0070c4,
C0072c4,
C008fd1,
C00a2a8,
C00a8f8,
C00ac43,
C00b0b7,
C00b396,
C00ba3b,
C00bfff,
C00ff00,
C02589e,
C0272c2,
C05559a,
C0638a4,
C066eb8,
C074a86,
C076eb9,
C080008,
C080807,
C085291,
C0869ae,
C0964a5,
C0b5ca2,
C0cf1ff,
C0d1a23,
C0d75bf,
C111d25,
C117ac1,
C121205,
C125895,
C131313,
C157cc4,
C162d3c,
C1a237e,
C201716,
C2267aa,
C2460ad,
C250081,
C253847,
C271616,
C272727,
C282828,
C2d4f76,
C2f6d9e,
C317545,
C388dc6,
C3973ad,
C3b3b3b,
C3c464d,
C4caf50,
C4cfa08,
C4f4c03,
C514135,
C515050,
C529cac,
C59008f,
C5f261b,
C625747,
C625845,
C686868,
C6c6c6c,
C6ea84a,
C74483f,
C750975,
C750d10,
C780878,
C781c78,
C7a797a,
C858585,
C85f246,
C89ff4a,
C98ff5c,
C99004e,
C9e9e9e,
Ca0042f,
Ca3c255,
Ca40025,
Ca5ac9d,
Ca8001c,
Ca80035,
Ca90025,
Ca9002f,
Ca90034,
Cab0026,
Cac0026,
Cac0032,
Cacaeae,
Cad1457,
Cae002a,
Cae9f7f,
Caf001c,
Cb10030,
Cb2002b,
Cb2002f,
Cb30025,
Cb30029,
Cb3002a,
Cb34428,
Cb3af97,
Cb5002f,
Cb60028,
Cb80032,
Cb9002b,
Cb90031,
Cba002e,
Cbebebe,
Cc0c6ca,
Cc2185b,
Cc30033,
Cc4c420,
Cc7ccd0,
Cc81517,
Cc9a870,
Ccbb184,
Ccc0003,
Cccad7d,
Ccf7308,
Ccfab70,
Ccfd4d7,
Cd12e2e,
Cd16630,
Cd18da8,
Cd1d6da,
Cd2d7db,
Cd67405,
Cd8dde1,
Cd96d48,
Cd9dee1,
Cda8205,
Cdbe0e3,
Cde6c4c,
Cded2cd,
Cded3cd,
Cdf7400,
Cdfc08e,
Cdfd3ce,
Cdfe3e6,
Ce08505,
Ce0e0e0,
Ce26a1c,
Ce26c15,
Ce2752f,
Ce37111,
Ce37324,
Ce53935,
Ce55944,
Ce56c37,
Ce66218,
Ce6634b,
Ce66928,
Ce66b26,
Ce68d3e,
Ce6c694,
Ce6eaed,
Ce72f06,
Ce76835,
Ce8e8e8,
Ce9652f,
Ce96b2e,
Ceb673b,
Ceb9205,
Cecf0f3,
Ced652a,
Ced6e21,
Cedac4a,
Cee0000,
Cee8902,
Cee8b04,
Ceea3c0,
Ceef2f5,
Ceff3f6,
Cf06292,
Cf0f4f7,
Cf2005c,
Cf38c4a,
Cf38d4a,
Cf400fd,
Cf48102,
Cf48d4b,
Cf48fb1,
Cf49e71,
Cf8bbd0,
Cfaf7fa,
Cfb5a6e,
Cfcad13,
Cfe00fe,
Cfe967c,
Cff0000,
Cff0022,
Cff0040,
Cff0077,
Cff78b0,
Cff7b34,
Cff8c97,
Cff8d00,
Cff9800,
Cff9f00,
Cffa100,
Cffa326,
Cffa42c,
Cffa525,
Cffa71a,
Cffa805,
Cffa819,
Cffa828,
Cffa900,
Cffab14,
Cffab1c,
Cffad04,
Cffad0f,
Cffb000,
Cffb866,
Cffc100,
Cffc582,
Cffcc00,
Cffe0ae,
Cffe0ec,
Cffebee,
Cffee00,
Cfff202,
Cfff488,
Cffffff,
};




const uint8_t Bat1[] PROGMEM =
{
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313,
  C131313, C131313, Cff0040, C131313, C131313, Cff0040, C131313, C131313,
  C131313, Cff0040, Cff0040, C131313, C131313, Cff0040, Cff0040, C131313,
  Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040,
  C131313, C131313, Cff0040, Cff0040, C0cf1ff, Cff0040, C131313, C131313,
  C131313, C131313, Cffffff, Cff0040, Cffffff, Cff0040, C131313, C131313,
  C131313, C131313, Cff0040, C131313, C131313, Cff0040, C131313, C131313,
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313
};
const uint8_t Bat2[] PROGMEM =
{
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313,
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313,
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313,
  Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040, Cff0040,
  Cff0040, C131313, Cff0040, Cff0040, C0cf1ff, Cff0040, C131313, Cff0040,
  C131313, C131313, Cffffff, Cff0040, Cffffff, Cff0040, C131313, C131313,
  C131313, C131313, Cff0040, C131313, C131313, Cff0040, C131313, C131313,
  C131313, C131313, C131313, C131313, C131313, C131313, C131313, C131313
};

const uint8_t Skull1[] PROGMEM =
{
  C131313, C131313, Cffffff, C131313, Cffffff, C131313, C131313, C131313,
  C131313, C131313, C131313, Cffffff, C858585, Cffffff, C131313, C131313,
  C858585, C858585, Cffffff, Cffffff, Cffffff, C858585, C858585, C131313,
  C131313, Cffffff, Cffffff, Cffffff, C272727, Cffffff, Cffffff, Cffffff,
  Cffffff, C131313, C4cfa08, Cffffff, C4cfa08, C131313, Cffffff, C131313,
  C131313, Cffffff, C131313, C131313, Cffffff, C131313, C131313, Cffffff,
  Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, C131313,
  C131313, C131313, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, C131313
};
const uint8_t Skull2[] PROGMEM =
{
  C131313, C131313, Cffffff, C131313, Cffffff, C131313, C131313, C131313,
  C131313, C131313, C131313, Cffffff, C858585, Cffffff, C131313, C131313,
  C858585, C858585, Cffffff, Cffffff, Cffffff, C858585, C858585, C131313,
  C131313, Cffffff, Cffffff, Cffffff, C272727, Cffffff, Cffffff, Cffffff,
  Cffffff, C131313, C131313, Cffffff, C131313, C131313, Cffffff, C131313,
  C131313, Cffffff, C131313, C131313, Cffffff, C131313, C131313, Cffffff,
  Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, C131313,
  C131313, C131313, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, C131313
};

const uint8_t PurpleSkull1[] PROGMEM =
{
  C000000, C000000, C000000, C781c78, C781c78, C781c78, C000000, C000000,
  C000000, C781c78, C781c78, Cff0000, C781c78, C781c78, C000000, C000000,
  C000000, C000000, C781c78, Cfaf7fa, Cfaf7fa, Cfaf7fa, C781c78, C000000,
  C750975, C750975, C750975, C750975, C750975, C750975, C750975, C750975,
  C750975, C750975, Cfaf7fa, Cfaf7fa, C750975, Cfaf7fa, Cfaf7fa, C750975,
  C750975, Cfaf7fa, C080008, C780878, Cfaf7fa, C000000, C750975, C750975,
  C000000, C750975, C750975, C750975, C750975, C750975, C750975, C000000,
  C000000, C000000, C750975, C000000, C000000, C750975, C000000, C000000
};

const uint8_t PurpleSkull2[] PROGMEM =
{
  C000000, C000000, C000000, C781c78, C781c78, C781c78, C000000, C000000,
  C000000, C781c78, C781c78, C781c78, C781c78, C781c78, C000000, C000000,
  C000000, C000000, C781c78, Cfaf7fa, Cfaf7fa, Cfaf7fa, C781c78, C000000,
  C750975, C750975, C750975, C750975, C750975, C750975, C750975, C750975,
  C750975, C750975, C000000, Cfaf7fa, C750975, C000000, Cfaf7fa, C750975,
  C750975, Cfaf7fa, Cffffff, C780878, Cfaf7fa, Cffffff, C750975, C750975,
  C000000, C750975, C750975, C750975, C750975, C750975, C750975, C000000,
  C000000, C000000, C750975, C000000, C000000, C750975, C000000, C000000
};

const uint8_t PurpleSkull3[] PROGMEM =
{
  C000000, C000000, C000000, C781c78, C781c78, C781c78, C000000, C000000,
  C000000, C781c78, C781c78, Cff0000, C781c78, C781c78, C000000, C000000,
  C000000, C000000, C781c78, Cfaf7fa, Cfaf7fa, Cfaf7fa, C781c78, C000000,
  C750975, C750975, C750975, C750975, C750975, C750975, C750975, C750975,
  C750975, C750975, Cffffff, C000000, C750975, Cffffff, C000000, C750975,
  C750975, Cfaf7fa, Cffffff, C780878, Cfaf7fa, Cffffff, C750975, C750975,
  C000000, C750975, C750975, C750975, C750975, C750975, C750975, C000000,
  C000000, C000000, C750975, C000000, C000000, C750975, C000000, C000000
};

const uint8_t PurpleSkull4[] PROGMEM =
{
  C000000, C000000, C000000, C781c78, C781c78, C781c78, C000000, C000000,
  C000000, C781c78, C781c78, C750975, C781c78, C781c78, C000000, C000000,
  C000000, C000000, C781c78, Cfaf7fa, Cfaf7fa, Cfaf7fa, C781c78, C000000,
  C750975, C750975, C750975, C750975, C750975, C750975, C750975, C750975,
  C750975, C750975, Cffffff, Cffffff, C750975, Cffffff, Cffffff, C750975,
  C750975, C000000, Cffffff, C780878, C000000, Cffffff, C750975, C750975,
  C000000, C750975, C750975, C750975, C750975, C750975, C750975, C000000,
  C000000, C000000, C750975, C000000, C000000, C750975, C000000, C000000
};

const uint8_t Pumpkin1[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C000000, Ca3c255, Ca3c255, C317545, C000000, C000000
};
const uint8_t Pumpkin2[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C000000, Ca3c255, C317545, C000000, C000000, C000000
};
const uint8_t Pumpkin3[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, Cd16630, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C000000, C317545, C000000, C000000, C000000, C000000
};
const uint8_t Pumpkin4[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C317545, Ca3c255, C000000, C000000, C000000, C000000
};
const uint8_t Pumpkin5[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C317545, Ca3c255, Ca3c255, C000000, C000000, C000000, C000000
};
const uint8_t Pumpkin6[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, Ca3c255, Ca3c255, C000000, C000000, C000000, C000000
};
const uint8_t Pumpkin7[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000, C000000
};
const uint8_t Pumpkin8[] PROGMEM =
{
  C000000, Ce68d3e, Ce68d3e, Cd16630, Cd16630, Cd16630, Cb34428, C000000,
  Cb34428, Cd16630, C000000, C000000, C000000, C000000, Ce68d3e, Cd16630,
  Cd16630, C000000, C000000, C000000, C000000, C000000, C000000, Cb34428,
  Cb34428, Cd16630, Cd16630, Cd16630, Cd16630, Cedac4a, Ce68d3e, Cd16630,
  Cd16630, Ce68d3e, C000000, Cd16630, Cd16630, C000000, Cd16630, Cb34428,
  C000000, C750d10, Cd16630, Cd16630, Cd16630, Ce68d3e, Cd16630, C000000,
  C000000, C000000, C000000, C000000, Ca3c255, C000000, C000000, C000000,
  C000000, C000000, C000000, Ca3c255, Ca3c255, C000000, C000000, C000000
};
const uint8_t Cat1[] PROGMEM =
{
  C3973ad, C000203, C3973ad, C3973ad, C3973ad, C3973ad, C000203, C3973ad,
  C3973ad, C000203, C3973ad, C3973ad, C3973ad, C3973ad, C000203, C3973ad,
  C3973ad, C000203, C000203, C000203, C000203, C000203, C000203, C3973ad,
  C3973ad, C000203, C000203, C000203, C000203, Cb34428, C000203, C000203,
  C000203, C000203, C000203, C000203, C000203, C000203, C000203, C3973ad,
  C000203, C000203, C3973ad, C3973ad, C000203, C6ea84a, C000203, C6ea84a,
  C000203, C000203, C000203, C000203, C3973ad, C3973ad, C3973ad, C000203,
  C000203, C3973ad, C3973ad, C3973ad, C000203, C3973ad, C3973ad, C000203
};
const uint8_t Cat2[] PROGMEM =
{
  C3973ad, C000203, C3973ad, C3973ad, C3973ad, C3973ad, C000203, C3973ad,
  C3973ad, C000203, C3973ad, C3973ad, C3973ad, C3973ad, C000203, C3973ad,
  C3973ad, C000203, C000203, C000203, C000203, C000203, C000203, C3973ad,
  C3973ad, C000203, C000203, C000203, C000203, Cb34428, C000203, C000203,
  C000203, C000203, C000203, C000203, C000203, C000203, C000203, C3973ad,
  C3973ad, C000203, C3973ad, C3973ad, C000203, C6ea84a, C000203, C6ea84a,
  C000203, C000203, C000203, C000203, C3973ad, C000203, C000203, C3973ad,
  C3973ad, C3973ad, C000203, C3973ad, C000203, C3973ad, C3973ad, C000203
};
const uint8_t Ghost1[] PROGMEM =
{
  C000000, C000000, Cd8dde1, Cf0f4f7, Cf0f4f7, Cf0f4f7, Cf0f4f7, Cf0f4f7,
  Cf0f4f7, Cf0f4f7, Cf0f4f7, C3c464d, Cf0f4f7, Cd8dde1, C000000, C000000,
  Ccfd4d7, Ccfd4d7, Cecf0f3, Cf0f4f7, C0d1a23, Cf0f4f7, Cf0f4f7, Cf0f4f7,
  Cf0f4f7, Cf0f4f7, Cf0f4f7, Cdbe0e3, Cf0f4f7, Cf0f4f7, Cf0f4f7, Cf0f4f7,
  C000000, C000000, Cd9dee1, C000000, Cecf0f3, C000000, Cd2d7db, C111d25,
  C000000, Cd1d6da, C000000, Cecf0f3, C000000, Cd8dde1, C000000, C000000,
  C000000, C000000, Cc7ccd0, Ceff3f6, Cf0f4f7, Ceef2f5, Cc0c6ca, C000000,
  C000000, C000000, Cdfe3e6, Cf0f4f7, Ce6eaed, C000000, C000000, C000000
};
const uint8_t Ghost2[] PROGMEM =
{
  C000000, C000000, Cd8dde1, Cf0f4f7, Cf0f4f7, Cf0f4f7, Cf0f4f7, Cf0f4f7,
  Cf0f4f7, Cf0f4f7, Cf0f4f7, C3c464d, Cf0f4f7, Cd8dde1, C000000, C000000,
  C000000, C000000, Cecf0f3, Cf0f4f7, C0d1a23, Cf0f4f7, Cf0f4f7, Cf0f4f7,
  Cf0f4f7, Cf0f4f7, Cf0f4f7, Cdbe0e3, Cf0f4f7, Cf0f4f7, C000000, C000000,
  C000000, C000000, Cd9dee1, C000000, Cecf0f3, C000000, Cd2d7db, C111d25,
  C000000, Cd1d6da, C000000, Cecf0f3, C000000, Cd8dde1, C000000, C000000,
  C000000, C000000, Cc7ccd0, Ceff3f6, Cf0f4f7, Ceef2f5, Cc0c6ca, C000000,
  C000000, C000000, Cdfe3e6, Cf0f4f7, Ce6eaed, C000000, C000000, C000000
};
const uint8_t Heart1[] PROGMEM =
{
  Cff8c97, Cff8c97, Cff8c97, C000000, C000000, Cff8c97, Cff8c97, Cff8c97,
  Cff8c97, Cff8c97, C000000, Ccc0003, Ccc0003, C000000, Cff8c97, Cff8c97,
  Cff8c97, C000000, Ccc0003, Ccc0003, Ccc0003, Cee0000, C000000, Cff8c97,
  C000000, Cee0000, Cee0000, Cee0000, Ccc0003, Ccc0003, Ccc0003, C000000,
  C000000, Ccc0003, Ccc0003, Cee0000, Cee0000, Cee0000, Cffe0ec, C000000,
  C000000, Cffe0ec, Cffe0ec, C000000, C000000, Ccc0003, Ccc0003, C000000,
  Cff8c97, C000000, C000000, Cff8c97, Cff8c97, C000000, C000000, Cff8c97,
  Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97
};
const uint8_t Heart2[] PROGMEM =
{
  Cff8c97, Cff8c97, Cff8c97, C000000, C000000, Cff8c97, Cff8c97, Cff8c97,
  Cff8c97, Cff8c97, C000000, Ccc0003, Ccc0003, C000000, Cff8c97, Cff8c97,
  Cff8c97, C000000, Cee0000, Ccc0003, Ccc0003, Ccc0003, C000000, Cff8c97,
  C000000, Ccc0003, Ccc0003, Ccc0003, Cee0000, Cee0000, Cee0000, C000000,
  C000000, Cffe0ec, Cee0000, Cee0000, Cee0000, Ccc0003, Ccc0003, C000000,
  C000000, Ccc0003, Ccc0003, C000000, C000000, Cffe0ec, Cffe0ec, C000000,
  Cff8c97, C000000, C000000, Cff8c97, Cff8c97, C000000, C000000, Cff8c97,
  Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97, Cff8c97
};
const uint8_t Heart3[] PROGMEM =
{
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, Cff0000, Ccc0003, Ccc0003, Cff0000, C000000, C000000,
  C000000, Cff0000, Ccc0003, Ccc0003, Ccc0003, Cee0000, Cff0000, C000000,
  Cff0000, Cee0000, Cee0000, Cee0000, Ccc0003, Ccc0003, Ccc0003, Cff0000,
  Cff0000, Ccc0003, Ccc0003, Cee0000, Cee0000, Cee0000, Cff0000, Cff0000,
  Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Ccc0003, Ccc0003, Cff0000,
  C000000, Cff0000, Cff0000, C000000, C000000, Cff0000, Cff0000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000
};
const uint8_t Heart4[] PROGMEM =
{
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, Cff0000, Ccc0003, Ccc0003, Cff0000, C000000, C000000,
  C000000, Cff0000, Cee0000, Ccc0003, Ccc0003, Ccc0003, Cff0000, C000000,
  Cff0000, Ccc0003, Ccc0003, Ccc0003, Cee0000, Cee0000, Cee0000, Cff0000,
  Cff0000, Cff0000, Cee0000, Cee0000, Cee0000, Ccc0003, Ccc0003, Cff0000,
  Cff0000, Ccc0003, Ccc0003, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000,
  Cff0000, Cff0000, Cff0000, C000000, C000000, Cff0000, Cff0000, Cff0000,
  C000000, Cff0000, Cff0000, C000000, C000000, Cff0000, Cff0000, C000000
};
const uint8_t Heart5[] PROGMEM =
{
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, Cff0000, Cff0000, Cff0000, Cff0000, C000000, C000000,
  C000000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, C000000,
  C000000, Cff0000, Cff0000, C000000, C000000, Cff0000, Cff0000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000
};
const uint8_t Pika[] PROGMEM =
{
  C000000, C000000, C000000, Ce08505, Cffee00, Cee8902, Cd67405, C000000,
  C000000, C000000, Cf48102, Cffa100, Cffee00, Cda8205, Ccf7308, C000000,
  Ceb9205, Cffee00, C000000, Cffee00, Cffee00, Cee8b04, C000000, C000000,
  C000000, Cffee00, Cffee00, Cffee00, Ce72f06, C000000, Cffee00, Cffee00,
  Cffee00, C000000, C000000, Cffee00, C4f4c03, Cffee00, C000000, C000000,
  C000000, Cffee00, Cffee00, Cffee00, Cffee00, C000000, C000000, C000000,
  C000000, C000000, Cffee00, Cffee00, C000000, C000000, Cffee00, C000000,
  C000000, C000000, C000000, C000000, C000000, C121205, C080807, C000000
};
const uint8_t Sonic[] PROGMEM =
{
  C000000, C271616, Cc81517, Cffffff, C000000, Cffffff, Cc81517, C201716,
  C000000, C000000, C2d4f76, C000000, C125895, C000000, C000000, C000000,
  C000000, C000000, Cffffff, C2267aa, Ccbb184, Cdfc08e, Cffffff, C000000,
  C000000, C000000, Ccfab70, Cc9a870, C2f6d9e, C076eb9, C253847, C000000,
  C000000, C074a86, C0b5ca2, Cb3af97, Ce6c694, Cccad7d, Cae9f7f, Cacaeae,
  C000000, C0869ae, C162d3c, Cffffff, C388dc6, C02589e, C000000, C000000,
  C085291, C006bba, C117ac1, Ca5ac9d, C157cc4, C0070c4, C0964a5, C000000,
  C000000, C000000, C066eb8, C0072c4, C0d75bf, C0272c2, C05559a, C000000
};
const uint8_t Kirby[] PROGMEM =
{
  C4caf50, Cad1457, Cc2185b, Cc2185b, C4caf50, Cad1457, Cc2185b, C4caf50,
  C000000, Cad1457, Cf8bbd0, Cf8bbd0, Cf48fb1, Cf48fb1, Cad1457, C000000,
  Cf48fb1, Cf48fb1, Cf06292, Cf8bbd0, Cf8bbd0, Cf8bbd0, Cf06292, Cf48fb1,
  Cf48fb1, Cf8bbd0, C1a237e, Cf8bbd0, C1a237e, Cf8bbd0, Cf8bbd0, Cf48fb1,
  C000000, Cf48fb1, Cf8bbd0, C000000, Cf8bbd0, C000000, Cf8bbd0, C000000,
  C000000, Cf8bbd0, Cf8bbd0, Cf8bbd0, Cf8bbd0, Cf8bbd0, Cf8bbd0, C000000,
  C000000, C000000, Cf8bbd0, Cf8bbd0, Cf8bbd0, Cf8bbd0, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000
};
const uint8_t Sheep[] PROGMEM =
{
  Ceea3c0, Ceea3c0, Cd18da8, Cd18da8, Cd18da8, Cd18da8, Ceea3c0, Ceea3c0,
  Ceea3c0, C282828, C282828, C282828, C282828, C282828, C282828, Ceea3c0,
  Ceea3c0, C282828, C3b3b3b, C3b3b3b, C3b3b3b, C282828, Ceea3c0, Ceea3c0,
  Ceea3c0, Ceea3c0, Ceea3c0, C686868, C6c6c6c, C6c6c6c, Ceea3c0, Ceea3c0,
  Ceea3c0, C515050, Ce8e8e8, C686868, Ce8e8e8, C515050, Ceea3c0, Ceea3c0,
  Ceea3c0, Ceea3c0, Ceea3c0, C686868, C686868, C6c6c6c, Ceea3c0, Ceea3c0,
  Ceea3c0, Ceea3c0, Cbebebe, Cbebebe, Cbebebe, Ceea3c0, Ceea3c0, Ceea3c0,
  Ceea3c0, Ceea3c0, Ceea3c0, Ceea3c0, Ceea3c0, Ceea3c0, Ceea3c0, Ceea3c0
};
const uint8_t Mushroom[] PROGMEM =
{
  C89ff4a, C89ff4a, C85f246, Cffb866, Cffc582, C85f246, C89ff4a, C89ff4a,
  C89ff4a, C85f246, C85f246, Cffc582, Cffb866, C85f246, C85f246, C89ff4a,
  C89ff4a, Cd12e2e, Cd12e2e, Cd12e2e, Cd12e2e, Cd12e2e, Cd12e2e, C89ff4a,
  C89ff4a, Ce53935, Ce53935, Ce53935, Ce53935, Ce53935, Cd12e2e, C98ff5c,
  C98ff5c, Cd12e2e, Ce53935, Cffebee, Ce53935, Ce53935, Cffebee, C89ff4a,
  C85f246, Ce53935, Ce53935, Ce53935, Ce53935, Ce53935, Cd12e2e, C98ff5c,
  C98ff5c, C98ff5c, Ce53935, Ce53935, Cffebee, Ce53935, C85f246, C85f246,
  C98ff5c, C98ff5c, C98ff5c, C98ff5c, C98ff5c, C98ff5c, C98ff5c, C98ff5c
};
const uint8_t Pommes[] PROGMEM =
{
  C000000, Ca90034, Cb10030, Ca9002f, Ca9002f, Cac0032, Ca0042f, C000000,
  Cb5002f, Cb9002b, Ca40025, Cf49e71, Cfe967c, Ca90025, Cb60028, Ca80035,
  Cc30033, Cb2002b, Cb3002a, Cb30029, Cb30025, Cba002e, Cab0026, Cb80032,
  Cb90031, Caf001c, Ce9652f, Ce26a1c, Ceb673b, Ced652a, Ca8001c, Cb2002f,
  Cac0026, Ce6634b, Cffa900, Ce56c37, Cffa805, Ce76835, Ce66218, Cae002a,
  Ce66b26, Cffa42c, Ce37111, Cffa326, Ce26c15, Cffa525, Ce37324, Ce55944,
  Cde6c4c, Cffa71a, Ce66928, Cffa819, Ce96b2e, Cffab1c, Ced6e21, Cffad04,
  C000000, Cfcad13, Cffad0f, Cffab14, Ce2752f, Cffa828, Cd96d48, C000000
};
const uint8_t Ghostman[] PROGMEM =
{
  C000000, C250081, C250081, C250081, C000000, C250081, C250081, C250081,
  Ccc0003, Cff0022, Cff0022, Cff0022, Cff0022, Cff0022, Ccc0003, Cff0022,
  Cff0022, Cff0022, Ccc0003, Cff8d00, Cfff202, Cfff202, Cff8d00, C000000,
  C000000, Cffffff, Cffffff, Cffffff, Cffffff, Cff0022, Cff0022, C000000,
  C000000, Cff0022, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff, Cffffff,
  Cffffff, C000000, Cffffff, C000000, Cffffff, Cffffff, Ccc0003, C000000,
  Cff0022, Cff0022, Cffffff, Cffffff, C000000, Cffffff, C000000, Cffffff,
  C000000, Cffffff, Cffffff, Cffffff, Cffffff, Cff0022, Cff0022, C000000
};
const uint8_t Bowser[] PROGMEM =
{
  C000000, Cff8d00, Cfff202, C000000, C000000, Cdf7400, Cff8d00, C000000,
  C000000, Cff8d00, Cdf7400, C9e9e9e, C9e9e9e, Cff8d00, Cff8d00, C000000,
  C00ac43, Cdf7400, C000000, Cfff202, C9e9e9e, Cff8d00, Cffffff, Cff8d00,
  Cff8d00, Cffe0ae, Cffe0ae, Cffe0ae, Cfff202, C000000, Cff8d00, Cffffff,
  C00ac43, Cff8d00, Cdf7400, Cffe0ae, Cffe0ae, Cff78b0, Cff78b0, C000000,
  Cffe0ae, Cffe0ae, Cffe0ae, Cffe0ae, Cffe0ae, Cdf7400, C00ac43, C000000,
  C000000, C00ac43, Cffffff, C00ff00, C000000, Cffe0ae, Cffe0ae, Cffe0ae,
  C000000, C99004e, Cffffff, Cff0022, Cff0022, Cffffff, C000000, C000000
};
const uint8_t Toad[] PROGMEM =
{
  C000000, C000000, C74483f, C74483f, C000000, C74483f, C74483f, C000000,
  Cffe0ae, C0638a4, Cffffff, Cffffff, C00a8f8, C00a8f8, Cffe0ae, C000000,
  C000000, Cffffff, Cffffff, Cffe0ae, Cffe0ae, Cffe0ae, Cffe0ae, C000000,
  Cffffff, C000000, Cffe0ae, C000000, Cffe0ae, C000000, C000000, C000000,
  C000000, Cff0022, Cff0022, Cffe0ae, Cffe0ae, Cffe0ae, Cffe0ae, Cff0022,
  Cff0022, Cffffff, Cffffff, Cffffff, Cffffff, Cff0022, Cff0022, C000000,
  C000000, Cffffff, Cffffff, Cffffff, Cff0022, Cff0022, Cff0022, Cffffff,
  C000000, Cff0022, Cff0022, Cff0022, Cffffff, Cffffff, C000000, C000000
};
const uint8_t Yoshi[] PROGMEM =
{
  C000000, C000000, Cff0022, Cff0022, C000000, Cff0022, Cff0022, C000000,
  C00ac43, C00ac43, Ce0e0e0, Ce0e0e0, C00ac43, C00ff00, C00ac43, C000000,
  C00ac43, Cff0022, C00ac43, C00ac43, Ce0e0e0, Ce0e0e0, C00ac43, C000000,
  C000000, Cffffff, Cffffff, Cffffff, Ce0e0e0, Cff0022, C000000, C000000,
  C000000, Cff0022, Cffffff, Cffffff, C00ff00, C00ff00, C00ff00, C00ff00,
  C00ff00, C00ff00, C00ff00, C00ff00, Cffffff, Cffffff, C000000, C000000,
  C000000, Cff0022, C00ff00, C000000, C00ff00, C00ff00, C00ff00, C00ff00,
  C000000, C000000, C00ff00, C00ac43, C00ff00, Cff0022, C000000, C000000
};
const uint8_t Plant[] PROGMEM =
{
  C00ff00, C00ff00, C00ff00, C00ac43, C00ac43, C00ac43, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C00ff00, C000000,
  C00ff00, C000000, C000000, Cf2005c, Cffffff, Cf2005c, C000000, C000000,
  C000000, Cf2005c, Cf2005c, Cf2005c, Cf2005c, Cf2005c, C00ff00, C000000,
  C000000, Cf2005c, Cff0022, Cffffff, Cffffff, Cf2005c, Cf2005c, Ce0e0e0,
  Ce0e0e0, Ce0e0e0, Cffffff, Cffffff, Cff0022, Cff0022, Cf2005c, C000000,
  C000000, C000000, Cffffff, Cff0022, Cff0022, Cff0022, Cff0022, C000000,
  C000000, C000000, Cff0022, Cffffff, Cff0022, C000000, C000000, C000000
};
const uint8_t Mario[] PROGMEM =
{
  C000000, C000000, C74483f, C000000, C000000, C000000, C74483f, C000000,
  Cffffff, C250081, C00a8f8, C00a8f8, C00a8f8, C00a8f8, C000000, Cffffff,
  C000000, Cff0022, Cff0022, Cfff202, C00a8f8, C00a8f8, Cff8d00, C000000,
  C000000, Cffe0ae, Cffe0ae, Cffe0ae, C5f261b, C000000, C000000, C000000,
  C000000, C000000, C5f261b, Cffe0ae, Cffe0ae, C5f261b, C5f261b, Cffe0ae,
  C000000, Cffe0ae, C000000, C5f261b, Cffe0ae, C5f261b, C000000, C000000,
  C000000, C000000, Cff0022, Cff0022, Cff0022, Cff0022, Cff0022, Cff0022,
  C000000, Cffffff, Cff0022, Cff0022, Cff0022, Cff0022, C000000, C000000
};
const uint8_t Bird[] PROGMEM =
{
  C000000, C000000, Cff7b34, C000000, Cff7b34, C000000, C000000, C000000,
  C000000, C000000, C000000, C00b396, C00b396, C00b396, C000000, C000000,
  C000000, C000000, C00b396, C00b396, C00b396, C00b396, C00b396, C000000,
  C529cac, C529cac, C529cac, C529cac, C00b396, C00b396, C00b396, C000000,
  C000000, C00b396, C00b396, C00b396, C529cac, C529cac, C529cac, C529cac,
  C529cac, C000000, C000000, C00b396, C00b396, C2460ad, C00b396, Cff7b34,
  C000000, C00b396, C00b396, C00b396, C00b396, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C00b396, C00b396, C000000, C000000
};
const uint8_t Princess[] PROGMEM =
{
  C000000, Cff0077, Cff0077, Cff0077, Cff0077, Cff0077, Cff0077, C000000,
  C000000, Cffffff, C9e9e9e, Cffffff, Cffffff, Cff0077, Cfb5a6e, Cfff202,
  Cfff202, Cfff202, Cfb5a6e, Cfb5a6e, Cff0077, Cff0077, Cff8d00, C000000,
  C0638a4, Cffe0ae, Cffe0ae, Cffe0ae, Cffe0ae, C00a8f8, Cfff202, C000000,
  Cfff202, Cfff202, Cffe0ae, Cffe0ae, C000000, Cffe0ae, C000000, Cff8d00,
  C000000, Cfff202, Cfff202, Cfff202, Cfff202, Cfff202, Cfff202, C000000,
  C000000, C000000, C000000, C00a8f8, Cff8d00, Cff0022, C000000, C000000,
  C000000, C000000, Cff8d00, C000000, Cff8d00, C000000, C000000, C000000
};
const uint8_t Wario[] PROGMEM =
{
  C000000, Cff8d00, C000000, C000000, C000000, Cff8d00, C000000, C000000,
  C000000, C000000, C250081, C250081, C250081, C250081, C250081, Cffffff,
  C59008f, C59008f, Cff8d00, C59008f, Cffe0ae, Cffe0ae, C59008f, C9e9e9e,
  C000000, C000000, Cffffff, Cffffff, Cffe0ae, C250081, C59008f, C000000,
  C000000, C000000, Cffe0ae, C5f261b, C5f261b, C5f261b, Cfb5a6e, C000000,
  C000000, C000000, Cffe0ae, C5f261b, Cffe0ae, C5f261b, Cffe0ae, C000000,
  C000000, C000000, C59008f, C59008f, C59008f, C59008f, C59008f, C000000,
  C000000, C000000, Cffffff, C59008f, C59008f, C000000, C000000, C000000
};
const uint8_t Prof[] PROGMEM =
{
  C000000, C250081, C250081, C000000, C000000, C250081, C250081, C000000,
  C000000, C7a797a, C00a8f8, C00a8f8, C00a8f8, Cffffff, Cffffff, C000000,
  Cffe0ae, Cffffff, Cffffff, C9e9e9e, Cff0022, C9e9e9e, C7a797a, C7a797a,
  C000000, C7a797a, C9e9e9e, Cff0022, C9e9e9e, Cffffff, Cffffff, Cffffff,
  C000000, C000000, C000000, Cffe0ae, Cffffff, Cffe0ae, Cffffff, C000000,
  C7a797a, Cffffff, Cffffff, Cffffff, Cffe0ae, C9e9e9e, Cffffff, Cffffff,
  Cffffff, C9e9e9e, Cffe0ae, Cffe0ae, C000000, Cffe0ae, C000000, C7a797a,
  C000000, C7a797a, Cffe0ae, Cffe0ae, Cffe0ae, Cffffff, Cffffff, C000000
};
const uint8_t Shiggy[] PROGMEM =
{
  C000000, C000000, C00a2a8, C000000, C000000, C00a2a8, C000000, C000000,
  C000000, C00b0b7, Cfff488, Cfff488, C00b0b7, Cff9f00, C00a2a8, C00a2a8,
  C00a2a8, Cffa900, Cffa900, Cfff488, Cfff488, Cfff488, Cfff488, C000000,
  C00a2a8, C00b0b7, C00b0b7, C00b0b7, C00b0b7, Cffa900, Cffa900, C000000,
  C000000, C000000, Cffa900, C00b0b7, C000000, C00b0b7, C00b0b7, C000000,
  C00a2a8, C00b0b7, C00b0b7, C00b0b7, C00b0b7, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000
};
const uint8_t Catty[] PROGMEM =
{
  C000000, Cf48d4b, C514135, C000000, C000000, Cdfd3ce, C514135, C000000,
  C000000, Cdfd3ce, Cdfd3ce, Cdfd3ce, Cdfd3ce, Cdfd3ce, C625845, C000000,
  C625845, Cf48d4b, C625845, Cdfd3ce, Cdfd3ce, Cdfd3ce, Cf48d4b, C000000,
  Cdfd3ce, Cdfd3ce, Cf48d4b, C625845, C625845, C000000, C000000, Cf48d4b,
  Cf38d4a, C000000, C000000, C625747, C625845, Cf48d4b, Cded3cd, Cded2cd,
  Cc4c420, C625845, Cc4c420, Cf38c4a, Cf48d4b, C000000, Cf48d4b, C625845,
  C000000, C000000, C000000, Cf48d4b, Cf48d4b, Cf48d4b, C625845, C625845,
  C625845, C000000, C000000, Cf48d4b, Cf48d4b, C000000, C000000, C000000
};
const uint8_t Fish[] PROGMEM =
{
  C000000, C000000, C000000, Cf400fd, C000000, C000000, C000000, C000000,
  C000000, C000000, Cff9800, Cf400fd, Cfe00fe, Cff9800, C000000, Cfe00fe,
  Cfe00fe, Cf400fd, Cffb000, Cffb000, Cffb000, Cffb000, Cff9800, C000000,
  C000000, Cffb000, Cffc100, Cffc100, Cffc100, Cf400fd, Cfe00fe, Cfe00fe,
  Cfe00fe, Cf400fd, Cffcc00, Cffcc00, Cffcc00, C59008f, Cffc100, C000000,
  C000000, C000000, Cffcc00, Cffcc00, Cffcc00, Cffcc00, C000000, Cfe00fe,
  C000000, C000000, C000000, Cfe00fe, Cf400fd, C000000, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, Cf400fd, C000000, C000000
};
const uint8_t World[] PROGMEM =
{
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000,
  C000000, C000000, C006000, C006000, C008fd1, C006000, C000000, C000000,
  C000000, C006000, C00ba3b, C00bfff, C00bfff, C00ba3b, C006000, C000000,
  C000000, C006000, C006000, C00bfff, C00bfff, C00bfff, C00ba3b, C000000,
  C000000, C00ba3b, C00bfff, C00bfff, C00bfff, C00ba3b, C006000, C000000,
  C000000, C006000, C00bfff, C00bfff, C00bfff, C00ba3b, C00ba3b, C000000,
  C000000, C000000, C00ba3b, C00bfff, C00bfff, C008fd1, C000000, C000000,
  C000000, C000000, C000000, C000000, C000000, C000000, C000000, C000000
};
const uint8_t Cross[] PROGMEM =
{
  Cff0000, C000000, C000000, C000000, C000000, C000000, C000000, Cff0000,
  C000000, Cff0000, C000000, C000000, C000000, C000000, Cff0000, C000000,
  C000000, C000000, Cff0000, C000000, C000000, Cff0000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, Cff0000, C000000, C000000, Cff0000, C000000, C000000,
  C000000, Cff0000, C000000, C000000, C000000, C000000, Cff0000, C000000,
  Cff0000, C000000, C000000, C000000, C000000, C000000, C000000, Cff0000
};
const uint8_t Square[] PROGMEM =
{
  C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C000000, C000000, C000000, C000000, C000000, C000000, C0000ff,
  C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff, C0000ff
};
const uint8_t Circle[] PROGMEM =
{
  C000000, C000000, C000000, C00ff00, C00ff00, C000000, C000000, C000000,
  C000000, C00ff00, C00ff00, C000000, C000000, C00ff00, C00ff00, C000000,
  C000000, C00ff00, C000000, C000000, C000000, C000000, C00ff00, C000000,
  C00ff00, C000000, C000000, C000000, C000000, C000000, C000000, C00ff00,
  C00ff00, C000000, C000000, C000000, C000000, C000000, C000000, C00ff00,
  C000000, C00ff00, C000000, C000000, C000000, C000000, C00ff00, C000000,
  C000000, C00ff00, C00ff00, C000000, C000000, C00ff00, C00ff00, C000000,
  C000000, C000000, C000000, C00ff00, C00ff00, C000000, C000000, C000000
};
const uint8_t Cross2[] PROGMEM =
{
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000,
  Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000, Cff0000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000,
  C000000, C000000, C000000, Cff0000, Cff0000, C000000, C000000, C000000
};

const uint32_t colorsList[] PROGMEM = {
0xff000000,
0xff0000ff,
0xff000203,
0xff006000,
0xff006bba,
0xff0070c4,
0xff0072c4,
0xff008fd1,
0xff00a2a8,
0xff00a8f8,
0xff00ac43,
0xff00b0b7,
0xff00b396,
0xff00ba3b,
0xff00bfff,
0xff00ff00,
0xff02589e,
0xff0272c2,
0xff05559a,
0xff0638a4,
0xff066eb8,
0xff074a86,
0xff076eb9,
0xff080008,
0xff080807,
0xff085291,
0xff0869ae,
0xff0964a5,
0xff0b5ca2,
0xff0cf1ff,
0xff0d1a23,
0xff0d75bf,
0xff111d25,
0xff117ac1,
0xff121205,
0xff125895,
0xff131313,
0xff157cc4,
0xff162d3c,
0xff1a237e,
0xff201716,
0xff2267aa,
0xff2460ad,
0xff250081,
0xff253847,
0xff271616,
0xff272727,
0xff282828,
0xff2d4f76,
0xff2f6d9e,
0xff317545,
0xff388dc6,
0xff3973ad,
0xff3b3b3b,
0xff3c464d,
0xff4caf50,
0xff4cfa08,
0xff4f4c03,
0xff514135,
0xff515050,
0xff529cac,
0xff59008f,
0xff5f261b,
0xff625747,
0xff625845,
0xff686868,
0xff6c6c6c,
0xff6ea84a,
0xff74483f,
0xff750975,
0xff750d10,
0xff780878,
0xff781c78,
0xff7a797a,
0xff858585,
0xff85f246,
0xff89ff4a,
0xff98ff5c,
0xff99004e,
0xff9e9e9e,
0xffa0042f,
0xffa3c255,
0xffa40025,
0xffa5ac9d,
0xffa8001c,
0xffa80035,
0xffa90025,
0xffa9002f,
0xffa90034,
0xffab0026,
0xffac0026,
0xffac0032,
0xffacaeae,
0xffad1457,
0xffae002a,
0xffae9f7f,
0xffaf001c,
0xffb10030,
0xffb2002b,
0xffb2002f,
0xffb30025,
0xffb30029,
0xffb3002a,
0xffb34428,
0xffb3af97,
0xffb5002f,
0xffb60028,
0xffb80032,
0xffb9002b,
0xffb90031,
0xffba002e,
0xffbebebe,
0xffc0c6ca,
0xffc2185b,
0xffc30033,
0xffc4c420,
0xffc7ccd0,
0xffc81517,
0xffc9a870,
0xffcbb184,
0xffcc0003,
0xffccad7d,
0xffcf7308,
0xffcfab70,
0xffcfd4d7,
0xffd12e2e,
0xffd16630,
0xffd18da8,
0xffd1d6da,
0xffd2d7db,
0xffd67405,
0xffd8dde1,
0xffd96d48,
0xffd9dee1,
0xffda8205,
0xffdbe0e3,
0xffde6c4c,
0xffded2cd,
0xffded3cd,
0xffdf7400,
0xffdfc08e,
0xffdfd3ce,
0xffdfe3e6,
0xffe08505,
0xffe0e0e0,
0xffe26a1c,
0xffe26c15,
0xffe2752f,
0xffe37111,
0xffe37324,
0xffe53935,
0xffe55944,
0xffe56c37,
0xffe66218,
0xffe6634b,
0xffe66928,
0xffe66b26,
0xffe68d3e,
0xffe6c694,
0xffe6eaed,
0xffe72f06,
0xffe76835,
0xffe8e8e8,
0xffe9652f,
0xffe96b2e,
0xffeb673b,
0xffeb9205,
0xffecf0f3,
0xffed652a,
0xffed6e21,
0xffedac4a,
0xffee0000,
0xffee8902,
0xffee8b04,
0xffeea3c0,
0xffeef2f5,
0xffeff3f6,
0xfff06292,
0xfff0f4f7,
0xfff2005c,
0xfff38c4a,
0xfff38d4a,
0xfff400fd,
0xfff48102,
0xfff48d4b,
0xfff48fb1,
0xfff49e71,
0xfff8bbd0,
0xfffaf7fa,
0xfffb5a6e,
0xfffcad13,
0xfffe00fe,
0xfffe967c,
0xffff0000,
0xffff0022,
0xffff0040,
0xffff0077,
0xffff78b0,
0xffff7b34,
0xffff8c97,
0xffff8d00,
0xffff9800,
0xffff9f00,
0xffffa100,
0xffffa326,
0xffffa42c,
0xffffa525,
0xffffa71a,
0xffffa805,
0xffffa819,
0xffffa828,
0xffffa900,
0xffffab14,
0xffffab1c,
0xffffad04,
0xffffad0f,
0xffffb000,
0xffffb866,
0xffffc100,
0xffffc582,
0xffffcc00,
0xffffe0ae,
0xffffe0ec,
0xffffebee,
0xffffee00,
0xfffff202,
0xfffff488,
0xffffffff,
};


// Table of pixarts --always UPDATE--
const uint8_t * const pixart_table[] PROGMEM = {Pika, Sonic, Kirby, Sheep, Mushroom, Pommes, Ghostman, Bowser, Toad, Yoshi, Plant, Mario, Bird, Princess, Wario, Prof, Shiggy, Catty, Fish, World}; //
const int numberpics = sizeof(pixart_table) / sizeof(pixart_table[0]);

const uint8_t * const ani_skull[] PROGMEM = {Skull1, Skull2}; //
const int number_skull = 2;

const uint8_t * const ani_purpleskull[] PROGMEM = {PurpleSkull1, PurpleSkull2, PurpleSkull3, PurpleSkull4}; //
const int number_purpleskull = 4;

const uint8_t * const ani_bat[] PROGMEM = {Bat1, Bat2}; //
const int number_bat = 2;

const uint8_t * const ani_pumpkin[] PROGMEM = {Pumpkin1, Pumpkin2, Pumpkin3, Pumpkin4, Pumpkin5, Pumpkin6, Pumpkin7, Pumpkin8}; //
const int number_pumpkin = 8;

const uint8_t * const ani_ghost[] PROGMEM = {Ghost1, Ghost2}; //
const int number_ghost = 2;

const uint8_t * const ani_heart[] PROGMEM = {Heart1, Heart2, Heart3, Heart4, Heart5}; //
const int number_heart = 5;

const uint8_t * const ani_cat[] PROGMEM = {Cat1, Cat2}; //
const int number_cat = 2;

const uint8_t * const ani_signs[] PROGMEM = {Cross, Square, Cross2, Circle}; //
const int number_signs = 4;

I tried this, but now the images are all wrong/scrambled

Did you change all of the 'setPixelColor' lines in your sketch?

Yes, see here: Neopixel Matrix 8x8 compressed - Wokwi Arduino and ESP32 Simulator

I see the problem. 'imagePointer' should be a byte pointer now.

Change uint32_t * imagePointer = (uint32_t *) to uint8_t * imagePointer = (uint8_t *)

void animateimage_bat(int wait, int repeat){
   for (int j=0; j<number_skull*repeat; j++){
    uint32_t * imagePointer = (uint32_t *) pgm_read_ptr(&ani_bat[j%number_bat]);
    for(int i = 0; i < NUM_LEDS; i++) {
      byte colorIndex = pgm_read_byte(&imagePointer[i]);
      strip.setPixelColor(i, pgm_read_dword(&colorsList[colorIndex]));
    }
    strip.show();
    delay(wait);
   }
}

Note: I thought you said you had fixed the mistake of using "number_skull*repeat" for all of the images.