1 | #include "effect.h"
|
---|
2 |
|
---|
3 | #include "../libdemo/trig.h"
|
---|
4 |
|
---|
5 | uint8_t backbuffer[256];
|
---|
6 | const uint8_t colors[] __attribute__((section("hibyte"))) = {
|
---|
7 | // ICE
|
---|
8 | 0x00, 0x04, 0x44, 0x4C, 0xCC, 0xC6, 0x66, 0x6E,
|
---|
9 | 0xEE, 0xE7, 0x77, 0x7D, 0xDD, 0xD5, 0x55, /*0x50,*/
|
---|
10 |
|
---|
11 | // RAINBOW
|
---|
12 | /*0x55,*/ 0x54, 0x44, 0x46, 0x66, 0x62, 0x22, 0x20,
|
---|
13 | 0x00, 0x01, 0x11, 0x13, 0x33, 0x37, 0x77, /*0x75,*/
|
---|
14 |
|
---|
15 | // WHITE
|
---|
16 | /*0x77,*/ 0x7D, 0xDD, 0xDC, 0xCC, 0xCE, 0xEE, 0xEA,
|
---|
17 | 0xAA, 0xA8, 0x88, 0x89, 0x99, 0x9B, 0xBB, /*0xB7,*/
|
---|
18 |
|
---|
19 | // APPLES
|
---|
20 | /*0xBB,*/ 0xB7, 0x77, 0x79, 0x99, 0x91, 0x11, 0x10,
|
---|
21 | 0x00, 0x02, 0x22, 0x23, 0x33, 0x3A, 0xAA, 0xAB,
|
---|
22 |
|
---|
23 | 0xBB, 0xB3, 0x33, 0x32, 0x22, 0x20,
|
---|
24 | // FIRE
|
---|
25 | /*
|
---|
26 | 0x11, 0x1F, 0xFF, 0xFD, 0xDD, 0xD9, 0x99, 0x9B,
|
---|
27 | 0xBB, 0xB3, 0x33, 0x39, 0x99, 0x9F, 0xFF, 0xF1,*/
|
---|
28 |
|
---|
29 | 0x00, 0x04, 0x44, 0x4C, 0xCC, 0xC6, 0x66, 0x6E,
|
---|
30 | 0xEE, 0xE7, 0x77, 0x7D, 0xDD, 0xD5, 0x55, 0x54,
|
---|
31 | 0x44, 0x46, 0x66, 0x62, 0x22, 0x20, 0x00, 0x01,
|
---|
32 | 0x11, 0x13, 0x33, 0x37, 0x77, 0x7D, 0xDD, 0xDC,
|
---|
33 | 0xCC, 0xCE, 0xEE, 0xEA, 0xAA, 0xA8, 0x88, 0x89,
|
---|
34 | 0x99, 0x9B, 0xBB, 0xB7, 0x77, 0x79, 0x99, 0x91,
|
---|
35 | 0x11, 0x10, 0x00, 0x02, 0x22, 0x23, 0x33, 0x3A,
|
---|
36 | 0xAA, 0xAB, 0xBB, 0xB3, 0x33, 0x32, 0x22, 0x20,
|
---|
37 | 0x00, 0x04, 0x44, 0x4C, 0xCC, 0xC6, 0x66, 0x6E,
|
---|
38 | 0xEE, 0xE7, 0x77, 0x7D, 0xDD, 0xD5, 0x55, 0x54,
|
---|
39 | 0x44, 0x46, 0x66, 0x62, 0x22, 0x20, 0x00, 0x01,
|
---|
40 | 0x11, 0x13, 0x33, 0x37, 0x77, 0x7D, 0xDD, 0xDC,
|
---|
41 | 0xCC, 0xCE, 0xEE, 0xEA, 0xAA, 0xA8, 0x88, 0x89,
|
---|
42 | 0x99, 0x9B, 0xBB, 0xB7, 0x77, 0x79, 0x99, 0x91,
|
---|
43 | 0x11, 0x10, 0x00, 0x02, 0x22, 0x23, 0x33, 0x3A,
|
---|
44 | 0xAA, 0xAB, 0xBB, 0xB3, 0x33, 0x32, 0x22, 0x20,
|
---|
45 | 0x00, 0x04, 0x44, 0x4C, 0xCC, 0xC6, 0x66, 0x6E,
|
---|
46 | 0xEE, 0xE7, 0x77, 0x7D, 0xDD, 0xD5, 0x55, 0x54,
|
---|
47 | 0x44, 0x46, 0x66, 0x62, 0x22, 0x20, 0x00, 0x01,
|
---|
48 | 0x11, 0x13, 0x33, 0x37, 0x77, 0x7D, 0xDD, 0xDC,
|
---|
49 | 0xCC, 0xCE, 0xEE, 0xEA, 0xAA, 0xA8, 0x88, 0x89,
|
---|
50 | 0x99, 0x9B, 0xBB, 0xB7, 0x77, 0x79, 0x99, 0x91,
|
---|
51 | 0x11, 0x10, 0x00, 0x02, 0x22, 0x23, 0x33, 0x3A,
|
---|
52 | 0xAA, 0xAB, 0xBB, 0xB3, 0x33, 0x32, 0x22, 0x20,
|
---|
53 |
|
---|
54 | 0x00, 0x04, 0x44, 0x4C, 0xCC, 0xC6, 0x66, 0x6E,
|
---|
55 | 0xEE, 0xE7, 0x77, 0x7D, 0xDD, 0xD5, 0x55, 0x50
|
---|
56 | };
|
---|
57 |
|
---|
58 | extern unsigned char SIN[256];
|
---|
59 |
|
---|
60 | static void decrunch()
|
---|
61 | {
|
---|
62 | asm(
|
---|
63 | " LDX #color_plasma-1 \n"
|
---|
64 | " LDU #forme_plasma-1 \n"
|
---|
65 | " LBSR decrunchpic \n"
|
---|
66 | :::"x","u", "y");
|
---|
67 | }
|
---|
68 |
|
---|
69 | void init()
|
---|
70 | {
|
---|
71 | int x,y,v;
|
---|
72 |
|
---|
73 | // INIT ONCE
|
---|
74 | for(y = 0; y < 256; y++)
|
---|
75 | {
|
---|
76 | backbuffer[y] = (SIN[y] / 32);
|
---|
77 | }
|
---|
78 |
|
---|
79 | polysine();
|
---|
80 |
|
---|
81 | // EACHTIME
|
---|
82 |
|
---|
83 | decrunch();
|
---|
84 | forme();
|
---|
85 | v = 0x55;
|
---|
86 | for(y = 40 * 40; y < 139 * 40; y+=40)
|
---|
87 | {
|
---|
88 | for(x = 10; x < 30; x++)
|
---|
89 | screen[y + x] = v;
|
---|
90 | v ^= 0xFF; // or rotate
|
---|
91 | }
|
---|
92 | couleur();
|
---|
93 |
|
---|
94 | asm(" LDA #_draw/256 \n"
|
---|
95 | " TFR A,DP \n"
|
---|
96 | ::: "a"
|
---|
97 | );
|
---|
98 | }
|
---|
99 |
|
---|