- { { {0x00, 0x00, 0x00, 0x00}, {0x47, 0xC7, 0x97, 0x00},
- {0x00, 0x00, 0x27, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //sharp horizontal
- { {0x00, 0x17, 0x00, 0x00}, {0x00, 0x37, 0x00, 0x00},
- {0x47, 0xA7, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //blunt vertical J
- { {0x17, 0x00, 0x00, 0x00}, {0x67, 0xC7, 0x87, 0x00},
- {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //blunt horizontal
- { {0x00, 0x57, 0x87, 0x00}, {0x00, 0x37, 0x00, 0x00},
- {0x00, 0x27, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} } }, //J (yellow)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x53, 0xC3, 0x83, 0x00},
- {0x23, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //sharp horizontal
- { {0x43, 0x93, 0x00, 0x00}, {0x00, 0x33, 0x00, 0x00},
- {0x00, 0x23, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //sharp vertical
- { {0x00, 0x00, 0x13, 0x00}, {0x43, 0xC3, 0xA3, 0x00},
- {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //blunt horizontal
- { {0x00, 0x13, 0x00, 0x00}, {0x00, 0x33, 0x00, 0x00},
- {0x00, 0x63, 0x83, 0x00}, {0x00, 0x00, 0x00, 0x00} } }, //L (cyan)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x48, 0xD8, 0x88, 0x00},
- {0x00, 0x28, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //pointing down
- { {0x00, 0x18, 0x00, 0x00}, {0x48, 0xB8, 0x00, 0x00},
- {0x00, 0x28, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //pointing left
- { {0x00, 0x18, 0x00, 0x00}, {0x48, 0xE8, 0x88, 0x00},
- {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //pointing up
- { {0x00, 0x18, 0x00, 0x00}, {0x00, 0x78, 0x88, 0x00},
- {0x00, 0x28, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} } }, //T (white)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x52, 0x82, 0x00},
- {0x42, 0xA2, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} },
- { {0x12, 0x00, 0x00, 0x00}, {0x62, 0x92, 0x00, 0x00},
- {0x00, 0x22, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} },
- { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x52, 0x82, 0x00},
- {0x42, 0xA2, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //rep
- { {0x12, 0x00, 0x00, 0x00}, {0x62, 0x92, 0x00, 0x00},
- {0x00, 0x22, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} } }, //S (green)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x46, 0x96, 0x00, 0x00},
- {0x00, 0x66, 0x86, 0x00}, {0x00, 0x00, 0x00, 0x00} },
- { {0x00, 0x16, 0x00, 0x00}, {0x56, 0xA6, 0x00, 0x00},
- {0x26, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} },
- { {0x00, 0x00, 0x00, 0x00}, {0x46, 0x96, 0x00, 0x00},
- {0x00, 0x66, 0x86, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //rep
- { {0x00, 0x16, 0x00, 0x00}, {0x56, 0xA6, 0x00, 0x00},
- {0x26, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} } }, //Z (red)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x44, 0xC4, 0xC4, 0x84},
- {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //lieing
- { {0x00, 0x14, 0x00, 0x00}, {0x00, 0x34, 0x00, 0x00},
- {0x00, 0x34, 0x00, 0x00}, {0x00, 0x24, 0x00, 0x00} }, //standing
- { {0x00, 0x00, 0x00, 0x00}, {0x44, 0xC4, 0xC4, 0x84},
- {0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //rep
- { {0x00, 0x14, 0x00, 0x00}, {0x00, 0x34, 0x00, 0x00},
- {0x00, 0x34, 0x00, 0x00}, {0x00, 0x24, 0x00, 0x00} } }, //I, stick (blue)
-
- { { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x55, 0x95, 0x00},
- {0x00, 0x65, 0xA5, 0x00}, {0x00, 0x00, 0x00, 0x00} },
- { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x55, 0x95, 0x00},
- {0x00, 0x65, 0xA5, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //rep
- { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x55, 0x95, 0x00},
- {0x00, 0x65, 0xA5, 0x00}, {0x00, 0x00, 0x00, 0x00} }, //rep
- { {0x00, 0x00, 0x00, 0x00}, {0x00, 0x55, 0x95, 0x00},
- {0x00, 0x65, 0xA5, 0x00}, {0x00, 0x00, 0x00, 0x00} } } //O, square (purple)
+ /*
+ * 4 rotations of 4x4 pixels per shape
+ * high nibble signifies joinage (left, right, top, bottom, from MSB)
+ * low nibble identifies block type (typically 2..8)
+ */
+
+ // J
+ { { { 0, 0, 0, 0000},
+ {0x47, 0xC7, 0x97, 0000},
+ { 0, 0, 0x27, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x17, 0, 0000},
+ { 0, 0x37, 0, 0000},
+ {0x47, 0xA7, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { {0x17, 0, 0, 0000},
+ {0x67, 0xC7, 0x87, 0000},
+ { 0, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x57, 0x87, 0000},
+ { 0, 0x37, 0, 0000},
+ { 0, 0x27, 0, 0000},
+ {0000, 0000, 0000, 0000} } },
+
+ // L
+ { { { 0, 0, 0, 0000},
+ {0x53, 0xC3, 0x83, 0000},
+ {0x23, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { {0x43, 0x93, 0, 0000},
+ { 0, 0x33, 0, 0000},
+ { 0, 0x23, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0x13, 0000},
+ {0x43, 0xC3, 0xA3, 0000},
+ { 0, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x13, 0, 0000},
+ { 0, 0x33, 0, 0000},
+ { 0, 0x63, 0x83, 0000},
+ {0000, 0000, 0000, 0000} } },
+
+ // T
+ { { { 0, 0, 0, 0000},
+ {0x48, 0xD8, 0x88, 0000},
+ { 0, 0x28, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x18, 0, 0000},
+ {0x48, 0xB8, 0, 0000},
+ { 0, 0x28, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x18, 0, 0000},
+ {0x48, 0xE8, 0x88, 0000},
+ { 0, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x18, 0, 0000},
+ { 0, 0x78, 0x88, 0000},
+ { 0, 0x28, 0, 0000},
+ {0000, 0000, 0000, 0000} } },
+
+ // S
+ { { { 0, 0, 0, 0000},
+ { 0, 0x52, 0x82, 0000},
+ {0x42, 0xA2, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { {0x12, 0, 0, 0000},
+ {0x62, 0x92, 0, 0000},
+ { 0, 0x22, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0, 0000},
+ { 0, 0x52, 0x82, 0000},
+ {0x42, 0xA2, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { {0x12, 0, 0, 0000},
+ {0x62, 0x92, 0, 0000},
+ { 0, 0x22, 0, 0000},
+ {0000, 0000, 0000, 0000} } },
+
+ // Z
+ { { { 0, 0, 0, 0000},
+ {0x46, 0x96, 0, 0000},
+ { 0, 0x66, 0x86, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x16, 0, 0000},
+ {0x56, 0xA6, 0, 0000},
+ {0x26, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0, 0000},
+ {0x46, 0x96, 0, 0000},
+ { 0, 0x66, 0x86, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0x16, 0, 0000},
+ {0x56, 0xA6, 0, 0000},
+ {0x26, 0, 0, 0000},
+ {0000, 0000, 0000, 0000} } },
+
+ // I
+ { { { 0, 0, 0, 0},
+ {0x44, 0xC4, 0xC4, 0x84},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0} },
+ { { 0, 0x14, 0, 0},
+ { 0, 0x34, 0, 0},
+ { 0, 0x34, 0, 0},
+ { 0, 0x24, 0, 0} },
+ { { 0, 0, 0, 0},
+ {0x44, 0xC4, 0xC4, 0x84},
+ { 0, 0, 0, 0},
+ { 0, 0, 0, 0} },
+ { { 0, 0x14, 0, 0},
+ { 0, 0x34, 0, 0},
+ { 0, 0x34, 0, 0},
+ { 0, 0x24, 0, 0} } },
+
+ // O
+ { { { 0, 0, 0, 0000},
+ { 0, 0x55, 0x95, 0000},
+ { 0, 0x65, 0xA5, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0, 0000},
+ { 0, 0x55, 0x95, 0000},
+ { 0, 0x65, 0xA5, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0, 0000},
+ { 0, 0x55, 0x95, 0000},
+ { 0, 0x65, 0xA5, 0000},
+ {0000, 0000, 0000, 0000} },
+ { { 0, 0, 0, 0000},
+ { 0, 0x55, 0x95, 0000},
+ { 0, 0x65, 0xA5, 0000},
+ {0000, 0000, 0000, 0000} } }