/* B8ary constant generator macro
By Tom Torfs - donated to the public domain
All macro's evaluate to compile-time constants */
#define HEX__(n) 0x##n##LU
#define B8__(x) (((x&0x00000001LU)!=0)?1:0) \
+(((x&0x00000010LU)!=0)?2:0) \
+(((x&0x00000100LU)!=0)?4:0) \
+(((x&0x00001000LU)!=0)?8:0) \
+(((x&0x00010000LU)!=0)?16:0) \
+(((x&0x00100000LU)!=0)?32:0) \
+(((x&0x01000000LU)!=0)?64:0) \
+(((x&0x10000000LU)!=0)?128:0)
//#define B8(d) ((u8)B8__(HEX__(d)))
#define B8(d) ((u8)0b##d)
// Estructura para las distintas pantallas,
// 10 + 6 + 20 + 1 = 37 bytes por pantalla.
typedef struct
{
u8 descriptor;
u16 obj[10];
u16 movil[3];
u8 coin[10];
} FASE;
FASE fases[45];
// Definición de las pantallas del juego según esta documentación:
/*
B: L: C:
0 1 Byte descriptor de fase: TTPPPIII
TT : 2 bits, número de tile de fondo (0 a 3)
PPP: 3 bits, color de PAPER (0 a 8)
III: 3 bits, color de INK (0 a 8)
1 2 Descriptor de objeto, 2 bytes: XXXXYYYYLLLLTTTD
XXXX: 4 bits, coordenada X en tiles de la esquina sup.izq (0 a 15)
YYYY: 4 bits, coordenada Y en tiles de la esquina sup.izq (0 a 15)
LLLL: 4 bits, longitud del objeto en tiles (0 a 15)
TTT: 3 bits, número de objeto (0 a 7)
D: 1 bit, dirección: 0 horz, 1 vert.
P.ej. una plataforma de 6 tiles de ancho en (2, 2) del tipo 2, sería:
0010001001100100
[ 2][ 2][ 6][2]0
... x 10
21 2 Descriptor de enemigo, 2 bytes: AAAABBBBYYYYRTTV
AAAA: 4 bits, nº tile horizontal límite izquierdo (0 a 15)
BBBB: 4 bits, nº tile horizontal límite derecho (0 a 15)
YYYY: 4 bits, nº tile vertical (0 a 15)
R: 1 bit, reservado (por ahora no sirve pa ná).
TT: 2 bits, tipo de enemigo (0 a 3)// 1 = franky, 2 = vampy, 3 = fanty.
V: 1 bit, velocidad: 0 lento (de 1 en 1 pixels), 1 rápido (de 2 en 2 píxels).
... x 3
27 1 Descriptor de moneda, 1 byte: XXXXYYYY
XXXX: 4 bits, coordenada X en tiles (0 a 15)
YYYY: 4 bits, coordenada Y en tiles (0 a 15)
... x 10
*/
static const u8 fases_data[]={
//.Pantalla 0
//TTPPPIII
B8(00001101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000010), B8(00000000),
B8(00110000), B8(00010011),
B8(00110000), B8(10000011),
B8(00100000), B8(01010101),
B8(00110000), B8(00010111),
B8(00110000), B8(10000111),
B8(11001100), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010101), B8(00011010),
B8(01100011), B8(00011010),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(00010010),
B8(00110010),
B8(10010010),
B8(10100010),
B8(01010100),
B8(01100100),
B8(00010110),
B8(00110110),
B8(10000110),
B8(10100110),
//.Pantalla 1
//TTPPPIII
B8(00000100), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000100), B8(00000000),
B8(00110101), B8(00000001),
B8(00010111), B8(10100010),
B8(00010111), B8(10010011),
B8(00110110), B8(00100101),
B8(00110110), B8(10000101),
B8(00110101), B8(10110110),
B8(00110110), B8(01010111),
B8(11000100), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(01101001),
B8(01010000), B8(01010111),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(10010010),
B8(00100100),
B8(00110100),
B8(01000100),
B8(10000100),
B8(10110101),
B8(01010110),
B8(01100110),
B8(01110110),
B8(00011000),
//.Pantalla 2
//TTPPPIII
B8(00001111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000010), B8(00000000),
B8(10111100), B8(00010011),
B8(00011101), B8(00000101),
B8(10011100), B8(00000110),
B8(00011101), B8(10110111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100101), B8(00001011),
B8(01010010), B8(00011011),
B8(10000100), B8(00101010),
//Monedas
//XXXXYYYY
B8(00010001),
B8(01010001),
B8(10010001),
B8(00010100),
B8(01010100),
B8(10010100),
B8(10110110),
B8(00010111),
B8(01010111),
B8(10010111),
//.Pantalla 3
//TTPPPIII
B8(00000011), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10010000), B8(00000000),
B8(00110101), B8(10110000),
B8(01010101), B8(00000001),
B8(10010000), B8(00110011),
B8(00100101), B8(10110100),
B8(00011001), B8(00010101),
B8(01110000), B8(00100110),
B8(00011000), B8(10011000),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(00011010),
B8(01000011), B8(00011010),
B8(01110000), B8(00101010),
//Monedas
//XXXXYYYY
B8(00100001),
B8(01000001),
B8(01100001),
B8(10000001),
B8(10100001),
B8(00010100),
B8(00110100),
B8(01010100),
B8(01110100),
B8(10010100),
//.Pantalla 4
//TTPPPIII
B8(00010111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001100), B8(00000000),
B8(00101000), B8(00000011),
B8(00101000), B8(01010011),
B8(00101000), B8(10100011),
B8(00011001), B8(01000100),
B8(00110010), B8(00000110),
B8(00100010), B8(01010110),
B8(00110010), B8(10010110),
B8(00011011), B8(01111000),
B8(11001010), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(00000101),
B8(00100011), B8(01101011),
B8(01010011), B8(00001011),
//Monedas
//XXXXYYYY
B8(00000010),
B8(00110010),
B8(01010010),
B8(01100010),
B8(10000010),
B8(10110010),
B8(00000101),
B8(00100101),
B8(10010101),
B8(10110101),
//.Pantalla 5
//TTPPPIII
B8(00000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001010), B8(00000000),
B8(01100111), B8(10110001),
B8(00010111), B8(01000010),
B8(01010111), B8(00010011),
B8(00010111), B8(01100011),
B8(00100110), B8(01100101),
B8(00010111), B8(10000110),
B8(00110110), B8(00100111),
B8(00110110), B8(01111000),
B8(11001010), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010011), B8(00001010),
B8(01000100), B8(00100101),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(00000010),
B8(01100010),
B8(10000010),
B8(00000011),
B8(00000100),
B8(00000101),
B8(00000110),
B8(00100110),
B8(00110110),
B8(01000110),
//.Pantalla 6
//TTPPPIII
B8(00010110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001100), B8(00000000),
B8(01110101), B8(00000001),
B8(01110101), B8(10110001),
B8(00011001), B8(01010011),
B8(00011001), B8(10010100),
B8(00011001), B8(01100101),
B8(00011001), B8(01000110),
B8(00011001), B8(00100111),
B8(00011001), B8(10000111),
B8(11000000), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010011), B8(00011010),
B8(01000100), B8(00011000),
B8(01110001), B8(00110111),
//Monedas
//XXXXYYYY
B8(01000010),
B8(01100010),
B8(10010010),
B8(01000011),
B8(10010011),
B8(00100101),
B8(01000101),
B8(10000101),
B8(00100110),
B8(10000110),
//.Pantalla 7
//TTPPPIII
B8(00000011), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01010111), B8(01100001),
B8(01110111), B8(10100001),
B8(00010111), B8(10110001),
B8(00010111), B8(00100010),
B8(01010111), B8(10000010),
B8(00110110), B8(00000011),
B8(00100111), B8(01000011),
B8(00010111), B8(10110101),
B8(01010010), B8(00010111),
B8(11000000), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000101), B8(00001011),
B8(01010000), B8(00000101),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(01010010),
B8(01110010),
B8(10010010),
B8(01110011),
B8(10010011),
B8(01110100),
B8(10010100),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 8
//TTPPPIII
B8(00000010), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00010101), B8(00100001),
B8(00110100), B8(01010001),
B8(01010101), B8(00000011),
B8(10010010), B8(00010101),
B8(00010101), B8(10110111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110101), B8(00010110),
B8(00110101), B8(01101011),
B8(01100010), B8(00011011),
//Monedas
//XXXXYYYY
B8(01110000),
B8(01010010),
B8(01100010),
B8(01110010),
B8(00100110),
B8(00110110),
B8(10000110),
B8(10010110),
B8(00000000),
B8(00000000),
//.Pantalla 9
//TTPPPIII
B8(00000111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01101101), B8(00110010),
B8(00111101), B8(10000010),
B8(00011101), B8(01000011),
B8(00101100), B8(10100011),
B8(00101100), B8(00000101),
B8(01011100), B8(01000101),
B8(00101101), B8(10000110),
B8(00101100), B8(10010111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000101), B8(00001011),
B8(00100001), B8(01000111),
B8(10000011), B8(00011011),
//Monedas
//XXXXYYYY
B8(01000100),
B8(01010100),
B8(01100100),
B8(01110100),
B8(01010111),
B8(01100111),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 10
//TTPPPIII
B8(01001101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001100), B8(00000000),
B8(00011001), B8(00010011),
B8(00011001), B8(10100011),
B8(01001000), B8(01000100),
B8(00011101), B8(00110110),
B8(00011101), B8(10000110),
B8(00011101), B8(00010111),
B8(01000110), B8(01000111),
B8(00011101), B8(10100111),
B8(11001100), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110000), B8(00100101),
B8(01010001), B8(00111000),
B8(10000010), B8(01000101),
//Monedas
//XXXXYYYY
B8(00010010),
B8(01000010),
B8(01010010),
B8(01100010),
B8(01110010),
B8(10100010),
B8(01000110),
B8(01010110),
B8(01100110),
B8(01110110),
//.Pantalla 11
//TTPPPIII
B8(01000111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00111111), B8(01110001),
B8(00100010), B8(10100001),
B8(00101110), B8(00100010),
B8(00110010), B8(01010100),
B8(00100010), B8(00010110),
B8(00011111), B8(01111000),
B8(00101110), B8(10101000),
B8(00101110), B8(00001001),
B8(00010011), B8(01001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000100), B8(00001011),
B8(00110000), B8(00000110),
B8(10000010), B8(00100110),
//Monedas
//XXXXYYYY
B8(01110000),
B8(10110000),
B8(00100001),
B8(00110001),
B8(01010011),
B8(01100011),
B8(00110100),
B8(00010101),
B8(00100101),
B8(01110111),
//.Pantalla 12
//TTPPPIII
B8(01001100), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000100), B8(00000000),
B8(01010100), B8(00000011),
B8(00110100), B8(10000011),
B8(01011011), B8(10100100),
B8(00011001), B8(01100101),
B8(00101010), B8(00110111),
B8(00111010), B8(00101000),
B8(00011001), B8(10001000),
B8(01101010), B8(00001001),
B8(00101010), B8(10101001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100000), B8(00111001),
B8(01000010), B8(01111001),
B8(01100101), B8(01001001),
//Monedas
//XXXXYYYY
B8(00000001),
B8(01000001),
B8(10000001),
B8(00100010),
B8(10100010),
B8(01100100),
B8(10010101),
B8(01100111),
B8(10000111),
B8(10110111),
//.Pantalla 13
//TTPPPIII
B8(01000101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01110010), B8(00000000),
B8(00010001), B8(10000010),
B8(01011010), B8(00110100),
B8(00010001), B8(10100100),
B8(00010001), B8(00010110),
B8(00010001), B8(00110111),
B8(00111010), B8(00001001),
B8(01110010), B8(01011001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(00010111),
B8(01100101), B8(00111010),
B8(10000000), B8(01111001),
//Monedas
//XXXXYYYY
B8(10000001),
B8(00110011),
B8(01000011),
B8(01100011),
B8(01110011),
B8(10100011),
B8(00010101),
B8(00110110),
B8(01111000),
B8(10001000),
//.Pantalla 14
//TTPPPIII
B8(01000010), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011001), B8(00100010),
B8(01110010), B8(01010010),
B8(00011001), B8(00110011),
B8(00011001), B8(01000100),
B8(00011001), B8(01010101),
B8(00110010), B8(01100110),
B8(00100010), B8(10100111),
B8(01001110), B8(00001001),
B8(01101110), B8(01101001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010101), B8(01011011),
B8(01010101), B8(01101000),
B8(10000100), B8(00110110),
//Monedas
//XXXXYYYY
B8(00010000),
B8(00000001),
B8(00100001),
B8(10110001),
B8(00110010),
B8(01000011),
B8(10110110),
B8(01000111),
B8(01010111),
B8(10011000),
//.Pantalla 15
//TTPPPIII
B8(01010110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10100010), B8(00100001),
B8(10100010), B8(00010011),
B8(10100010), B8(00100101),
B8(10100010), B8(00010111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(00001010),
B8(01000010), B8(00001011),
B8(01100010), B8(00001010),
//Monedas
//XXXXYYYY
B8(10100000),
B8(10110000),
B8(00010001),
B8(10110010),
B8(10110011),
B8(10110100),
B8(00010101),
B8(10110110),
B8(10110111),
B8(10111000),
//.Pantalla 16
//TTPPPIII
B8(01000100), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00110001), B8(01100011),
B8(00011001), B8(00110100),
B8(00011001), B8(10010100),
B8(00011001), B8(01000101),
B8(00011001), B8(10000101),
B8(00110000), B8(00010111),
B8(01001000), B8(01000111),
B8(00110000), B8(10000111),
B8(01011100), B8(00001001),
B8(01011100), B8(01111001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100010), B8(01111001),
B8(00110010), B8(00110101),
B8(01100011), B8(00011010),
//Monedas
//XXXXYYYY
B8(01100001),
B8(01100010),
B8(01000100),
B8(10000100),
B8(00010110),
B8(01000110),
B8(10000110),
B8(10100110),
B8(01011000),
B8(01101000),
//.Pantalla 17
//TTPPPIII
B8(01000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00101100), B8(00000001),
B8(01001000), B8(10000010),
B8(00111000), B8(00110011),
B8(00011001), B8(00000100),
B8(10000100), B8(00100101),
B8(10110110), B8(00010111),
B8(11001110), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010101), B8(10001011),
B8(00100000), B8(00110101),
B8(01000010), B8(00101000),
//Monedas
//XXXXYYYY
B8(00000000),
B8(00010000),
B8(10110001),
B8(00110010),
B8(00000011),
B8(10000100),
B8(10010100),
B8(10100101),
B8(00000110),
B8(10110110),
//.Pantalla 18
//TTPPPIII
B8(01001011), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011001), B8(10010001),
B8(00011001), B8(10000010),
B8(00011001), B8(10100010),
B8(00011001), B8(01110011),
B8(00011001), B8(10110011),
B8(00011001), B8(01100100),
B8(00011001), B8(01010101),
B8(00011001), B8(01000110),
B8(00011001), B8(00110111),
B8(11000100), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000010), B8(01111011),
B8(00100010), B8(00000111),
B8(10000010), B8(00101011),
//Monedas
//XXXXYYYY
B8(10010000),
B8(10000001),
B8(10100001),
B8(00000010),
B8(01110010),
B8(10110010),
B8(01100011),
B8(01010100),
B8(01000101),
B8(00110110),
//.Pantalla 19
//TTPPPIII
B8(01000001), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01000000), B8(00000001),
B8(00010011), B8(10110001),
B8(00011001), B8(01000011),
B8(01101010), B8(01010011),
B8(00011001), B8(00110100),
B8(00011001), B8(00010101),
B8(00011001), B8(00100110),
B8(00011001), B8(00110111),
B8(10100000), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000011), B8(00001011),
B8(00100001), B8(01001010),
B8(10000011), B8(00110101),
//Monedas
//XXXXYYYY
B8(00000000),
B8(10110000),
B8(01000010),
B8(10100010),
B8(00110011),
B8(00010100),
B8(00100101),
B8(00110110),
B8(10101000),
B8(00000000),
//.Pantalla 20
//TTPPPIII
B8(01000101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011011), B8(00100010),
B8(00011011), B8(10010010),
B8(00101010), B8(01010011),
B8(00111010), B8(00000101),
B8(00111010), B8(10010101),
B8(01001110), B8(01000111),
B8(00111110), B8(00001001),
B8(00111110), B8(10011001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010001), B8(00001011),
B8(01100100), B8(00010100),
B8(01100010), B8(01111010),
//Monedas
//XXXXYYYY
B8(00100001),
B8(10010001),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 21
//TTPPPIII
B8(10000010), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01011101), B8(00100001),
B8(01101100), B8(00110001),
B8(00011101), B8(00000010),
B8(00011101), B8(10110010),
B8(00101100), B8(10000100),
B8(00101100), B8(00110101),
B8(00010001), B8(01110110),
B8(01001100), B8(01011000),
B8(00101110), B8(00001001),
B8(00101110), B8(10101001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000001), B8(00101000),
B8(00100010), B8(01101010),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(01100000),
B8(00000001),
B8(01110010),
B8(00110100),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 22
//TTPPPIII
B8(10000111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00000000), B8(10000001),
B8(00101110), B8(10000010),
B8(00111110), B8(01110011),
B8(01001110), B8(01100100),
B8(01011110), B8(01010101),
B8(01101110), B8(01000110),
B8(01111110), B8(00110111),
B8(10001110), B8(00101000),
B8(11001110), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010001), B8(00000111),
B8(00110100), B8(00000101),
B8(01010010), B8(00000011),
//Monedas
//XXXXYYYY
B8(10000001),
B8(01100011),
B8(01000101),
B8(00100111),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 23
//TTPPPIII
B8(10000101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000010), B8(00000000),
B8(00010001), B8(00000001),
B8(00010001), B8(10110001),
B8(10000000), B8(00100010),
B8(01000010), B8(00010100),
B8(01000010), B8(01110100),
B8(10000000), B8(00100110),
B8(00010001), B8(10111000),
B8(11000010), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110001), B8(00011010),
B8(01010100), B8(00011010),
B8(01110011), B8(00011010),
//Monedas
//XXXXYYYY
B8(00110001),
B8(10000001),
B8(00100011),
B8(01000011),
B8(01110011),
B8(10010011),
B8(00110101),
B8(10000101),
B8(00000111),
B8(10110111),
//.Pantalla 24
//TTPPPIII
B8(10010110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011011), B8(00100001),
B8(00011011), B8(10010001),
B8(00011011), B8(01000010),
B8(00011011), B8(01110010),
B8(00101010), B8(01010100),
B8(00011011), B8(01000110),
B8(00011011), B8(01110110),
B8(00011011), B8(00100111),
B8(00011011), B8(10010111),
B8(11000010), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000011), B8(00001011),
B8(00110100), B8(00101001),
B8(01010001), B8(00001011),
//Monedas
//XXXXYYYY
B8(00100000),
B8(10010000),
B8(01000001),
B8(01110001),
B8(01010011),
B8(01100011),
B8(01000101),
B8(01110101),
B8(00100110),
B8(10010110),
//.Pantalla 25
//TTPPPIII
B8(10001111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001110), B8(00000000),
B8(11000000), B8(00000001),
B8(10101010), B8(00010100),
B8(01010000), B8(00000110),
B8(01010000), B8(01010111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100101), B8(00001011),
B8(00110010), B8(00001011),
B8(01010001), B8(00001011),
//Monedas
//XXXXYYYY
B8(00010011),
B8(00110011),
B8(01010011),
B8(01100011),
B8(10000011),
B8(10100011),
B8(01101000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 26
//TTPPPIII
B8(10010111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10000111), B8(00000000),
B8(00101100), B8(00010001),
B8(01101100), B8(01000001),
B8(10010111), B8(10110001),
B8(00101110), B8(00100011),
B8(00101110), B8(10010011),
B8(00101110), B8(00010101),
B8(00101110), B8(10000101),
B8(00101110), B8(00100111),
B8(10110010), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100001), B8(00111010),
B8(01000101), B8(00011000),
B8(01100011), B8(00111010),
//Monedas
//XXXXYYYY
B8(00110010),
B8(00010100),
B8(10010100),
B8(00110110),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 27
//TTPPPIII
B8(10001101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10000100), B8(00010010),
B8(00100110), B8(01110100),
B8(00100110), B8(10100100),
B8(00010101), B8(10010110),
B8(00011001), B8(10000111),
B8(00011001), B8(10100111),
B8(00010101), B8(01101000),
B8(00010101), B8(01111000),
B8(00101000), B8(00001001),
B8(00101000), B8(10101001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010101), B8(00011010),
B8(01010100), B8(10111011),
B8(01100100), B8(01101000),
//Monedas
//XXXXYYYY
B8(00100001),
B8(01000001),
B8(01100001),
B8(10000001),
B8(01110011),
B8(10010011),
B8(10110011),
B8(10010101),
B8(01100111),
B8(10110111),
//.Pantalla 28
//TTPPPIII
B8(10001111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011001), B8(10100101),
B8(00011001), B8(01010111),
B8(01001110), B8(01100111),
B8(00011001), B8(10100111),
B8(00011001), B8(00101000),
B8(00011001), B8(01001000),
B8(00011011), B8(00001001),
B8(00011011), B8(00011001),
B8(00011001), B8(00111001),
B8(00101010), B8(10101001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110010), B8(10101011),
B8(01100000), B8(01011010),
B8(01110100), B8(00000010),
//Monedas
//XXXXYYYY
B8(10000100),
B8(10100100),
B8(01010110),
B8(01110110),
B8(10000110),
B8(10100110),
B8(00100111),
B8(01000111),
B8(00111000),
B8(10101000),
//.Pantalla 29
//TTPPPIII
B8(10000100), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011001), B8(00010001),
B8(00011001), B8(10100010),
B8(00011001), B8(00000011),
B8(00011001), B8(10010100),
B8(00011001), B8(00010101),
B8(00011001), B8(10100110),
B8(00011001), B8(00000111),
B8(00110010), B8(00001001),
B8(00010011), B8(01011001),
B8(00110010), B8(10011001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000010), B8(00000010),
B8(00110010), B8(01111011),
B8(10000101), B8(00011011),
//Monedas
//XXXXYYYY
B8(00010000),
B8(10100001),
B8(00000010),
B8(10010011),
B8(00010100),
B8(10100101),
B8(00000110),
B8(01011000),
B8(10011000),
B8(10111000),
//.Pantalla 30
//TTPPPIII
B8(10000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011001), B8(00000100),
B8(00011001), B8(10110100),
B8(00011001), B8(01000101),
B8(00011001), B8(00100111),
B8(00011101), B8(01000111),
B8(00011001), B8(01100111),
B8(00101000), B8(00001001),
B8(00011101), B8(00111001),
B8(00011101), B8(01011001),
B8(00011001), B8(01111001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110100), B8(00010101),
B8(01010000), B8(00010011),
B8(01010000), B8(01011000),
//Monedas
//XXXXYYYY
B8(00000011),
B8(10110011),
B8(01000100),
B8(00100110),
B8(01000110),
B8(01100110),
B8(00011000),
B8(00111000),
B8(01011000),
B8(01111000),
//.Pantalla 31
//TTPPPIII
B8(10000111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001110), B8(00000000),
B8(00101011), B8(01100100),
B8(00011011), B8(01101000),
B8(00010011), B8(01111000),
B8(00010011), B8(10001000),
B8(00101110), B8(10101000),
B8(00101000), B8(00001001),
B8(00011111), B8(01001001),
B8(00011111), B8(01011001),
B8(00011011), B8(01101001),
//Moviles
//YYYYTTTD AAAABBBB
B8(01110010), B8(00000100),
B8(01110000), B8(01111010),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(10000101),
B8(00010111),
B8(01010111),
B8(01100111),
B8(01110111),
B8(10100111),
B8(00101000),
B8(01001000),
B8(01011000),
B8(00000000),
//.Pantalla 32
//TTPPPIII
B8(10000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00110000), B8(01000001),
B8(01110001), B8(10000001),
B8(01100001), B8(10100001),
B8(01010001), B8(00010010),
B8(00010001), B8(01100010),
B8(00010001), B8(00100011),
B8(00100000), B8(00100101),
B8(01010000), B8(00000111),
B8(00100000), B8(10100111),
B8(11001110), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000010), B8(00000101),
B8(00000000), B8(01101011),
B8(01100100), B8(01000111),
//Monedas
//XXXXYYYY
B8(10010011),
B8(10010101),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 33
//TTPPPIII
B8(10001110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10000010), B8(00100010),
B8(01110011), B8(10110010),
B8(00100010), B8(00010011),
B8(01111010), B8(01000100),
B8(00100010), B8(00010101),
B8(01110010), B8(00100110),
B8(00100010), B8(00010111),
B8(00010010), B8(10010111),
B8(01011110), B8(00001001),
B8(01010010), B8(01111001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010101), B8(01101011),
B8(01000010), B8(00000011),
B8(01110100), B8(00110111),
//Monedas
//XXXXYYYY
B8(01110011),
B8(10010011),
B8(01010101),
B8(01110101),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 34
//TTPPPIII
B8(10000111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00100100), B8(10010001),
B8(00111110), B8(00100011),
B8(00110000), B8(10010011),
B8(00010001), B8(01110100),
B8(01000000), B8(01010110),
B8(00010101), B8(00010111),
B8(01101110), B8(00001001),
B8(00110000), B8(10001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010010), B8(00101000),
B8(01010011), B8(00001011),
B8(10000010), B8(00010101),
//Monedas
//XXXXYYYY
B8(10100000),
B8(01110011),
B8(00010101),
B8(01110101),
B8(01110111),
B8(10111000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 35
//TTPPPIII
B8(10000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(10100110), B8(00000000),
B8(00100110), B8(10010001),
B8(00111110), B8(00110011),
B8(00111010), B8(10010011),
B8(00111010), B8(00100100),
B8(01001010), B8(00010110),
B8(00101110), B8(10000110),
B8(00101010), B8(10010111),
B8(01101110), B8(00001001),
B8(00111010), B8(10011001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010100), B8(00000100),
B8(01110100), B8(00000100),
B8(10000010), B8(00011000),
//Monedas
//XXXXYYYY
B8(10100000),
B8(00010101),
B8(10111000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 36
//TTPPPIII
B8(11000011), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11001110), B8(00000000),
B8(00100000), B8(01010010),
B8(01000000), B8(00010100),
B8(01000000), B8(01110100),
B8(00011101), B8(00000101),
B8(00011101), B8(00000111),
B8(01000000), B8(01000111),
B8(00011101), B8(10110111),
B8(11001110), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00010000), B8(00001011),
B8(00110011), B8(00010111),
B8(10000101), B8(00101000),
//Monedas
//XXXXYYYY
B8(01010001),
B8(01100001),
B8(00110011),
B8(10000011),
B8(00000110),
B8(01010110),
B8(01100110),
B8(10110110),
B8(01001000),
B8(01111000),
//.Pantalla 37
//TTPPPIII
B8(11000101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(01101100), B8(00110001),
B8(00011101), B8(00100010),
B8(00011101), B8(10010010),
B8(00111101), B8(00010011),
B8(00010101), B8(01010100),
B8(00011101), B8(00100110),
B8(00011101), B8(10010110),
B8(01101100), B8(00110111),
B8(00011101), B8(10111000),
B8(11000100), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110000), B8(01010111),
B8(01010000), B8(01101000),
B8(01100000), B8(00111000),
//Monedas
//XXXXYYYY
B8(00110010),
B8(00100011),
B8(00110011),
B8(10010011),
B8(00000100),
B8(00010110),
B8(10100110),
B8(00100111),
B8(10010111),
B8(00000000),
//.Pantalla 38
//TTPPPIII
B8(11010110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00011101), B8(00000000),
B8(10111100), B8(00010000),
B8(00111010), B8(00000100),
B8(00101100), B8(01010100),
B8(00111010), B8(10010100),
B8(00000000), B8(00000000),
B8(00011101), B8(01110101),
B8(00011101), B8(00110111),
B8(00011101), B8(10000111),
B8(11001100), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110011), B8(00011010),
B8(01100001), B8(00111000),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(00100001),
B8(01000001),
B8(01110001),
B8(10010001),
B8(10110011),
B8(01010101),
B8(01100101),
B8(01000110),
B8(01110110),
B8(00000000),
//.Pantalla 39
//TTPPPIII
B8(11001100), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000010), B8(00000000),
B8(01011000), B8(00000100),
B8(01011000), B8(01110100),
B8(00011001), B8(01100110),
B8(00011001), B8(01001000),
B8(00010011), B8(01011000),
B8(00011001), B8(01101000),
B8(00011001), B8(01111000),
B8(11001000), B8(00001001),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110100), B8(00011010),
B8(01100001), B8(00010101),
B8(01110010), B8(00001011),
//Monedas
//XXXXYYYY
B8(00010001),
B8(00100001),
B8(01010001),
B8(10100001),
B8(00010101),
B8(00100101),
B8(00110101),
B8(10000101),
B8(10010101),
B8(10100101),
//.Pantalla 40
//TTPPPIII
B8(11001111), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(11000000), B8(00000000),
B8(00100001), B8(00000100),
B8(00100001), B8(01000100),
B8(00110001), B8(10110100),
B8(01000000), B8(00000110),
B8(00010000), B8(10010110),
B8(01010100), B8(01110111),
B8(11000000), B8(00001001),
B8(00000000), B8(00000000),
B8(00000000), B8(00000000),
//Moviles
//YYYYTTTD AAAABBBB
B8(00100001), B8(00011010),
B8(01010010), B8(01011000),
B8(00000000), B8(00000000),
//Monedas
//XXXXYYYY
B8(00010001),
B8(01010001),
B8(01100001),
B8(10100001),
B8(00010101),
B8(00100101),
B8(00110101),
B8(10100101),
B8(00000000),
B8(00000000),
//.Pantalla 41
//TTPPPIII
B8(11001110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00010011), B8(00010100),
B8(00010001), B8(01100100),
B8(00010001), B8(01010101),
B8(00010001), B8(01110101),
B8(00010001), B8(10100110),
B8(00010001), B8(01000111),
B8(00010001), B8(10010111),
B8(00011101), B8(00111000),
B8(00010001), B8(01101000),
B8(00101110), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110001), B8(00001011),
B8(01100101), B8(00001001),
B8(01110010), B8(01011000),
//Monedas
//XXXXYYYY
B8(10000010),
B8(00010011),
B8(01010100),
B8(01110100),
B8(10110100),
B8(00110101),
B8(10010101),
B8(00000000),
B8(00000000),
B8(00000000),
//.Pantalla 42
//TTPPPIII
B8(11001101), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00010111), B8(00110001),
B8(00010111), B8(10000001),
B8(00101100), B8(00000011),
B8(00010111), B8(00010011),
B8(00010111), B8(10100011),
B8(00010111), B8(00110101),
B8(00010111), B8(10000101),
B8(00010111), B8(00000111),
B8(00100111), B8(10110111),
B8(00111100), B8(00001001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000001), B8(00001011),
B8(01000101), B8(00001011),
B8(01100001), B8(00001011),
//Monedas
//XXXXYYYY
B8(00110000),
B8(10000000),
B8(00000010),
B8(01100010),
B8(10110010),
B8(00110100),
B8(10000100),
B8(00000110),
B8(10110110),
B8(00000000),
//.Pantalla 43
//TTPPPIII
B8(11010110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00110010), B8(10010001),
B8(00011101), B8(01000010),
B8(00011101), B8(01110010),
B8(00011101), B8(00000011),
B8(00011101), B8(10110011),
B8(00011101), B8(00010101),
B8(00011101), B8(10100101),
B8(00100000), B8(01010111),
B8(00100010), B8(00001001),
B8(00110010), B8(10011001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00110011), B8(00011010),
B8(01010011), B8(00101001),
B8(10000011), B8(00101100),
//Monedas
//XXXXYYYY
B8(00000000),
B8(00100000),
B8(10010000),
B8(10110000),
B8(00110011),
B8(10000011),
B8(00110110),
B8(10000110),
B8(00011000),
B8(10111000),
//.Pantalla 44
//TTPPPIII
B8(11000110), // Descriptor
//Objetos
//datos "al reves", por eso del "endian"
//LLLLTTTD XXXXYYYY
B8(00010111), B8(00100001),
B8(01010111), B8(01000001),
B8(01010111), B8(01100001),
B8(00010111), B8(10000001),
B8(00010111), B8(10110011),
B8(00010111), B8(10010101),
B8(00010111), B8(10000111),
B8(00010111), B8(01011000),
B8(00100110), B8(00001001),
B8(00110110), B8(10011001),
//Moviles
//YYYYTTTD AAAABBBB
B8(00000010), B8(00011010),
B8(00100000), B8(01111011),
B8(10000101), B8(00100100),
//Monedas
//XXXXYYYY
B8(01010001),
B8(01010010),
B8(01110010),
B8(10110010),
B8(01010011),
B8(10010011),
B8(01010100),
B8(01010101),
B8(01010110),
B8(10000110)
};
void fases_init(void)
{
u16 i,j,tmp;
const u8 *ptr;
ptr=fases_data;
for(i=0;i<45;i++)
{
fases[i].descriptor=*ptr++;
for(j=0;j<10;j++)
{
tmp=*ptr++;
tmp=(*ptr++<<8)|tmp;
fases[i].obj[j]=tmp;
}
for(j=0;j<3;j++)
{
tmp=*ptr++;
tmp=(*ptr++<<8)|tmp;
fases[i].movil[j]=tmp;
}
for(j=0;j<10;j++) fases[i].coin[j]=*ptr++;
}
}