The image below shows all the 256 matching byte hexadecimal colour codes that can be displayed on a "pseudo 8bit" display.
The columns are numerically ordered but the rows are not, this is deliberate so that the colours end up being grouped into 4 colour coordinated sets. Black is at top left and white at bottom right.

This is the main code section that generated the image on a 480x320 TFT is:
tft.fillScreen(TFT_BLACK);
tft.setTextDatum(MC_DATUM); // Text datum is middle centre
uint16_t color = 0;
for ( int y = 0; y < 16; y++)
{
for ( int x = 0; x < 16; x++)
{
tft.fillRect(x*30,y*20,30,20, color<<8 | color);
String hex = "";
if (color < 16) hex = "0";
hex = hex + String(color, HEX);
hex = hex + hex;
if ((color<<8 | color)>0xC000) tft.setTextColor(0);
else tft.setTextColor(TFT_WHITE);
tft.drawString(hex, x*30+15,y*20+10,1);
color++;
if (color%16 == 0) color+=16;
if (color == 256) color = 16;
}
}