61 lines
2.2 KiB
C
61 lines
2.2 KiB
C
#include <stdint.h>
|
|
#include <assert.h>
|
|
|
|
#include "../compat/pgmspace.h"
|
|
#include "bitmapscroller.h"
|
|
#include "27c3.h"
|
|
|
|
static uint8_t const aBitmap27c3 [2][16][7] PROGMEM =
|
|
{{{0x08, 0x00, 0x40, 0x04, 0x00, 0x40, 0x00}, // bit plane 0
|
|
{0x08, 0x00, 0x40, 0x04, 0x00, 0x40, 0x00},
|
|
{0x08, 0x00, 0x40, 0x04, 0x00, 0x40, 0x00},
|
|
{0x0F, 0xF0, 0x7F, 0x04, 0x00, 0x7F, 0x00},
|
|
{0x00, 0x10, 0x01, 0x04, 0x70, 0x01, 0x00},
|
|
{0x00, 0x10, 0x01, 0x04, 0x10, 0x01, 0x00},
|
|
{0x08, 0x00, 0x00, 0x04, 0x10, 0x40, 0x00},
|
|
{0x08, 0x00, 0x00, 0x04, 0x10, 0x40, 0x00},
|
|
{0x08, 0x00, 0x00, 0x04, 0x10, 0x40, 0x00},
|
|
{0x08, 0x7F, 0xFF, 0x04, 0x1E, 0x7F, 0x00},
|
|
{0x08, 0x00, 0x01, 0x04, 0x00, 0x01, 0x00},
|
|
{0x08, 0x00, 0x01, 0x04, 0x00, 0x01, 0x00},
|
|
{0x08, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00},
|
|
{0x08, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00},
|
|
{0x08, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00},
|
|
{0x0F, 0xFF, 0xF9, 0x07, 0xFF, 0xFF, 0xF0}},
|
|
|
|
{{0x0F, 0xFE, 0x7F, 0xE7, 0xFE, 0x7F, 0xF0}, // bit plane 1
|
|
{0x0F, 0xFE, 0x7F, 0xE7, 0xFE, 0x7F, 0xF0},
|
|
{0x0F, 0xFE, 0x7F, 0xE7, 0xFE, 0x7F, 0xF0},
|
|
{0x08, 0x0E, 0x40, 0xE7, 0xFE, 0x40, 0xF0},
|
|
{0x00, 0x1E, 0x01, 0xE7, 0x8E, 0x01, 0xF0},
|
|
{0x00, 0x1E, 0x01, 0xE7, 0x9E, 0x01, 0xF0},
|
|
{0x0F, 0xFF, 0xFF, 0xE7, 0x9E, 0x7F, 0xF0},
|
|
{0x0F, 0xFF, 0xFF, 0xE7, 0x9E, 0x7F, 0xF0},
|
|
{0x0F, 0xFF, 0xFF, 0xE7, 0x9E, 0x7F, 0xF0},
|
|
{0x0F, 0x80, 0x00, 0xE7, 0x90, 0x40, 0xF0},
|
|
{0x0F, 0x80, 0x01, 0xE7, 0x80, 0x01, 0xF0},
|
|
{0x0F, 0x80, 0x01, 0xE7, 0x80, 0x01, 0xF0},
|
|
{0x0F, 0xFF, 0xF9, 0xE7, 0xFF, 0xFF, 0xF0},
|
|
{0x0F, 0xFF, 0xF9, 0xE7, 0xFF, 0xFF, 0xF0},
|
|
{0x0F, 0xFF, 0xF9, 0xE7, 0xFF, 0xFF, 0xF0},
|
|
{0x08, 0x00, 0x01, 0xE4, 0x00, 0x00, 0x00}}};
|
|
|
|
|
|
static uint8_t logo_27c3_getChunk(unsigned char const nBitPlane,
|
|
unsigned char const nChunkX,
|
|
unsigned char const nChunkY,
|
|
unsigned int const nFrame)
|
|
{
|
|
assert(nBitPlane < 2);
|
|
assert(nChunkX < 7);
|
|
assert(nChunkY < 16);
|
|
|
|
return pgm_read_byte(&aBitmap27c3[nBitPlane][nChunkY][nChunkX]);
|
|
}
|
|
|
|
void logo_27c3()
|
|
{
|
|
// width 56, height 16, 2 bitplanes (4 colors), 600 frames à 50ms (20 fps)
|
|
bitmap_scroll(56, 16, 2, 600, 50, logo_27c3_getChunk);
|
|
}
|