2026-03-21 10:24:15 +01:00
|
|
|
#include "font.h";
|
|
|
|
|
|
|
|
|
|
const uint32_t pone_wins[5][4] = {
|
|
|
|
|
{
|
|
|
|
|
0x78,
|
|
|
|
|
0xc4847844,
|
|
|
|
|
0x440e000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0x11,
|
|
|
|
|
0x1101501,
|
|
|
|
|
0x501f0000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0xe,
|
|
|
|
|
0x400400,
|
|
|
|
|
0x400e0000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0x9,
|
|
|
|
|
0xd00b00,
|
|
|
|
|
0x90090000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0xf,
|
|
|
|
|
0x800f00,
|
|
|
|
|
0x100f0000,
|
|
|
|
|
500
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const uint32_t ptwo_wins[5][4] = {
|
|
|
|
|
{
|
|
|
|
|
0x79,
|
|
|
|
|
0xe48279e4,
|
|
|
|
|
0x1041e000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0x11,
|
|
|
|
|
0x1101501,
|
|
|
|
|
0x501f0000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0xe,
|
|
|
|
|
0x400400,
|
|
|
|
|
0x400e0000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0x9,
|
|
|
|
|
0xd00b00,
|
|
|
|
|
0x90090000,
|
|
|
|
|
500
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
0xf,
|
|
|
|
|
0x800f00,
|
|
|
|
|
0x100f0000,
|
|
|
|
|
500
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const byte font_pong[10][8][3] = {
|
|
|
|
|
// Number 0
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 1
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 0 },
|
|
|
|
|
{ 0, 1, 0 },
|
|
|
|
|
{ 0, 1, 0 },
|
|
|
|
|
{ 0, 1, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 2
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 3
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 4
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 5
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 6
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0 },
|
|
|
|
|
{ 1, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 7
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 8
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
// Number 9
|
|
|
|
|
{
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 1, 0, 1 },
|
|
|
|
|
{ 1, 1, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 1 },
|
|
|
|
|
{ 0, 0, 0 }
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-21 11:19:40 +01:00
|
|
|
const byte frame_pvp[MATRIX_HEIGHT][MATRIX_WIDTH] = {
|
2026-03-21 10:24:15 +01:00
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0 },
|
|
|
|
|
{ 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0 },
|
|
|
|
|
{ 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-21 11:19:40 +01:00
|
|
|
const byte frame_pvc[MATRIX_HEIGHT][MATRIX_WIDTH] = {
|
2026-03-21 10:24:15 +01:00
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
|
|
|
|
|
{ 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-21 11:19:40 +01:00
|
|
|
const byte frame_cvc[MATRIX_HEIGHT][MATRIX_WIDTH] = {
|
2026-03-21 10:24:15 +01:00
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0 },
|
|
|
|
|
{ 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
|
|
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-21 11:19:40 +01:00
|
|
|
const byte (*frame_gmodes[3])[12]= {frame_pvp, frame_pvc, frame_cvc};
|