summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorAdam Boot <rotator@gmail.com>2006-02-15 22:32:57 +0000
committerAdam Boot <rotator@gmail.com>2006-02-15 22:32:57 +0000
commite824805f4217a4a6b702a5845c6e25422984e9b5 (patch)
treece244a913e4b305ed70a147370a3a0e32916f82b /apps/plugins
parentd935679ba69c0349623b39cc3251563c805753ca (diff)
downloadrockbox-e824805f4217a4a6b702a5845c6e25422984e9b5.tar.gz
rockbox-e824805f4217a4a6b702a5845c6e25422984e9b5.zip
Bejeweled: speed fixes, graphics enhancements, and use external bitmaps
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8697 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/bitmaps/native/SOURCES17
-rw-r--r--apps/plugins/bitmaps/native/jewels.112x64x1.bmpbin0 -> 318 bytes
-rw-r--r--apps/plugins/bitmaps/native/jewels.160x128x1.bmpbin0 -> 574 bytes
-rw-r--r--apps/plugins/bitmaps/native/jewels.160x128x16.bmpbin0 -> 6200 bytes
-rw-r--r--apps/plugins/bitmaps/native/jewels.220x176x16.bmpbin0 -> 12024 bytes
-rw-r--r--apps/plugins/bitmaps/native/jewels.320x240x16.bmpbin0 -> 22136 bytes
-rw-r--r--apps/plugins/jewels.c1866
7 files changed, 319 insertions, 1564 deletions
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 163482a6ae..5e35666a32 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -1,5 +1,22 @@
1#ifdef HAVE_LCD_BITMAP 1#ifdef HAVE_LCD_BITMAP
2 2
3/* Bejeweled */
4#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
5bejeweled_jewels.112x64x1.bmp
6#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64)
7bejeweled_jewels.112x64x1.bmp
8#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && !defined(HAVE_LCD_COLOR)
9bejeweled_jewels.160x128x1.bmp
10#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && defined(HAVE_LCD_COLOR)
11bejeweled_jewels.160x128x16.bmp
12#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 132)
13bejeweled_jewels.160x128x16.bmp
14#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176)
15bejeweled_jewels.220x176x16.bmp
16#elif (LCD_WIDTH == 320) && (LCD_HEIGHT == 240)
17bejeweled_jewels.320x240x16.bmp
18#endif
19
3/* Solitaire */ 20/* Solitaire */
4#ifdef HAVE_LCD_COLOR 21#ifdef HAVE_LCD_COLOR
5solitaire_cardback.220x176x16.bmp 22solitaire_cardback.220x176x16.bmp
diff --git a/apps/plugins/bitmaps/native/jewels.112x64x1.bmp b/apps/plugins/bitmaps/native/jewels.112x64x1.bmp
new file mode 100644
index 0000000000..447df6d1da
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.112x64x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.160x128x1.bmp b/apps/plugins/bitmaps/native/jewels.160x128x1.bmp
new file mode 100644
index 0000000000..0417362a8b
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.160x128x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.160x128x16.bmp b/apps/plugins/bitmaps/native/jewels.160x128x16.bmp
new file mode 100644
index 0000000000..5d9606d012
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.160x128x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.220x176x16.bmp b/apps/plugins/bitmaps/native/jewels.220x176x16.bmp
new file mode 100644
index 0000000000..36d4f51249
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.220x176x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/jewels.320x240x16.bmp b/apps/plugins/bitmaps/native/jewels.320x240x16.bmp
new file mode 100644
index 0000000000..201c178183
--- /dev/null
+++ b/apps/plugins/bitmaps/native/jewels.320x240x16.bmp
Binary files differ
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index bead953b93..3652839f64 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -22,20 +22,9 @@
22#include "plugin.h" 22#include "plugin.h"
23 23
24#ifdef HAVE_LCD_BITMAP 24#ifdef HAVE_LCD_BITMAP
25#if (LCD_DEPTH != 16) || (LCD_WIDTH != 160)
26 25
27PLUGIN_HEADER 26PLUGIN_HEADER
28 27
29/* save files */
30#define SCORE_FILE PLUGIN_DIR "/bejeweled.score"
31#define SAVE_FILE PLUGIN_DIR "/bejeweled.save"
32
33/* final game return status */
34#define BJ_END 3
35#define BJ_USB 2
36#define BJ_QUIT 1
37#define BJ_LOSE 0
38
39/* button definitions */ 28/* button definitions */
40#if CONFIG_KEYPAD == RECORDER_PAD 29#if CONFIG_KEYPAD == RECORDER_PAD
41#define BEJEWELED_UP BUTTON_UP 30#define BEJEWELED_UP BUTTON_UP
@@ -68,7 +57,7 @@ PLUGIN_HEADER
68#define BEJEWELED_SELECT BUTTON_SELECT 57#define BEJEWELED_SELECT BUTTON_SELECT
69#define BEJEWELED_RESUME BUTTON_MODE 58#define BEJEWELED_RESUME BUTTON_MODE
70 59
71#elif (CONFIG_KEYPAD == IPOD_4G_PAD) 60#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
72#define BEJEWELED_SCROLLWHEEL 61#define BEJEWELED_SCROLLWHEEL
73#define BEJEWELED_UP BUTTON_MENU 62#define BEJEWELED_UP BUTTON_MENU
74#define BEJEWELED_DOWN BUTTON_PLAY 63#define BEJEWELED_DOWN BUTTON_PLAY
@@ -83,1444 +72,115 @@ PLUGIN_HEADER
83#define BEJEWELED_RESUME (BUTTON_SELECT|BUTTON_PLAY) 72#define BEJEWELED_RESUME (BUTTON_SELECT|BUTTON_PLAY)
84 73
85#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD 74#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
86#define BEJEWELED_QUIT BUTTON_PLAY 75#define BEJEWELED_UP BUTTON_UP
87#define BEJEWELED_START BUTTON_MODE 76#define BEJEWELED_DOWN BUTTON_DOWN
88#define BEJEWELED_SELECT BUTTON_SELECT 77#define BEJEWELED_LEFT BUTTON_LEFT
89#define BEJEWELED_RESUME BUTTON_EQ 78#define BEJEWELED_RIGHT BUTTON_RIGHT
79#define BEJEWELED_QUIT BUTTON_PLAY
80#define BEJEWELED_START BUTTON_MODE
81#define BEJEWELED_SELECT BUTTON_SELECT
82#define BEJEWELED_RESUME BUTTON_EQ
90 83
91#elif CONFIG_KEYPAD == IAUDIO_X5_PAD 84#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
92#define BEJEWELED_UP BUTTON_UP 85#define BEJEWELED_UP BUTTON_UP
93#define BEJEWELED_DOWN BUTTON_DOWN 86#define BEJEWELED_DOWN BUTTON_DOWN
94#define BEJEWELED_LEFT BUTTON_LEFT 87#define BEJEWELED_LEFT BUTTON_LEFT
95#define BEJEWELED_RIGHT BUTTON_RIGHT 88#define BEJEWELED_RIGHT BUTTON_RIGHT
96#define BEJEWELED_QUIT BUTTON_POWER 89#define BEJEWELED_QUIT BUTTON_POWER
97#define BEJEWELED_START BUTTON_PLAY 90#define BEJEWELED_START BUTTON_PLAY
98#define BEJEWELED_SELECT BUTTON_MENU 91#define BEJEWELED_SELECT BUTTON_MENU
99#define BEJEWELED_RESUME BUTTON_REC 92#define BEJEWELED_RESUME BUTTON_REC
100 93
101#else 94#else
102 #error BEJEWELED: Unsupported keypad 95 #error BEJEWELED: Unsupported keypad
103#endif 96#endif
104 97
105/* swap directions */ 98/* use 30x30 tiles (iPod Video) */
106#define SWAP_UP 0 99#if (LCD_HEIGHT == 240) && (LCD_WIDTH == 320)
107#define SWAP_RIGHT 1 100#define TILE_WIDTH 30
108#define SWAP_DOWN 2 101#define TILE_HEIGHT 30
109#define SWAP_LEFT 3
110
111/* play board dimension */
112#define BJ_HEIGHT 9
113#define BJ_WIDTH 8
114
115/* next level threshold */
116#define LEVEL_PTS 100
117
118/* sleep time for animations (1/x seconds) */
119#define FALL_TIMER 50
120#define SWAP_TIMER 30
121
122/* use 22x22 tiles */
123#if (LCD_HEIGHT >= 176) && (LCD_WIDTH >= 220) && \
124 (LCD_PIXELFORMAT == RGB565SWAPPED)
125/* size of a tile */
126#define TILE_WIDTH 22
127#define TILE_HEIGHT 22
128
129/* playboard offset from top */
130#define YOFS 0 102#define YOFS 0
131
132/* number of high scores to save */
133#define NUM_SCORES 10 103#define NUM_SCORES 10
134 104
135/* bitmaps for the jewels */ 105/* use 22x22 tiles (H300, iPod Color) */
136static unsigned short jewel[8][484] = { 106#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220)
137 /* empty */
138 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
139 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
140 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
141 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
142 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
143 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
144 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
145 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
146 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
147 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
148 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
149 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
150 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
151 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
152 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
153 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
154 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
155 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
156 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
157 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
158 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
159 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
160 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
161 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
162 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
163 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
164 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
165 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
166 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
167 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
168 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
169 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
170 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
171 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
172 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
173 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
174 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
175 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
176 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
177 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
178 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
179 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
180 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
181 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
182 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
183 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
184 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
185 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
186 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
187 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
188 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
189 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
190 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
191 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
192 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
193 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
194 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
195 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
196 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
197 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
198 0xffff, 0xffff, 0xffff, 0xffff},
199 /* white jewel */
200 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
201 0xf7bd, 0xe739, 0xe739, 0xf7bd, 0xffff, 0xffff, 0xffff, 0xffff,
202 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
203 0xffff, 0xffff, 0xffff, 0xffff, 0xd7bd, 0xc739, 0x4108, 0x1084,
204 0x2c63, 0x4108, 0xc739, 0xf7bd, 0xffff, 0xffff, 0xffff, 0xffff,
205 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
206 0xd7bd, 0xa631, 0x6108, 0x1084, 0x59ce, 0x79ce, 0x718c, 0x9294,
207 0x4d6b, 0x4108, 0xa631, 0xd7bd, 0xffff, 0xffff, 0xffff, 0xffff,
208 0xffff, 0xffff, 0xffff, 0xffff, 0xbef7, 0xa631, 0x6108, 0x1084,
209 0x59ce, 0x79ce, 0x79ce, 0x79ce, 0x718c, 0x718c, 0x718c, 0x9294,
210 0x6d6b, 0x6108, 0xe739, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
211 0xffff, 0xffff, 0xf39c, 0x6529, 0x59ce, 0xbad6, 0xbad6, 0xbad6,
212 0xbad6, 0xbad6, 0xb294, 0xd39c, 0x14a5, 0x55ad, 0x96b5, 0x55ad,
213 0x6108, 0x96b5, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
214 0x4529, 0xd39c, 0x1ce7, 0x1ce7, 0x1ce7, 0x1ce7, 0x1ce7, 0x1ce7,
215 0x14a5, 0xd39c, 0xd39c, 0x34a5, 0x96b5, 0xf7bd, 0xcb5a, 0xe739,
216 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6, 0x6108, 0xfbde,
217 0x3ce7, 0x5def, 0x5def, 0x5def, 0x3ce7, 0x3ce7, 0x75ad, 0x34a5,
218 0xf39c, 0xf39c, 0x55ad, 0xb6b5, 0x75ad, 0x2000, 0x79ce, 0xffff,
219 0xffff, 0xffff, 0xffff, 0x8a52, 0xcf7b, 0x5def, 0x3ce7, 0x3ce7,
220 0x3ce7, 0x3ce7, 0x3ce7, 0x5def, 0xd7bd, 0x96b5, 0x34a5, 0xd39c,
221 0xf39c, 0x75ad, 0xd7bd, 0xcb5a, 0xeb5a, 0xffff, 0xffff, 0xffff,
222 0x1ce7, 0x2000, 0x9ad6, 0x3ce7, 0x1ce7, 0x1ce7, 0xfbde, 0x1ce7,
223 0x1ce7, 0x3ce7, 0xf7bd, 0xd7bd, 0x75ad, 0x14a5, 0xd39c, 0x34a5,
224 0xb6b5, 0x95b5, 0x2000, 0x5def, 0xffff, 0xffff, 0xcf7b, 0x8a52,
225 0x3ce7, 0x1ce7, 0xfbde, 0xfbde, 0xdbde, 0xdbde, 0xfbde, 0x1ce7,
226 0xb6b5, 0x18c6, 0xb6b5, 0x55ad, 0xf7bd, 0x34a5, 0xb6b5, 0xb6b5,
227 0x694a, 0xef7b, 0xffff, 0xffff, 0xc318, 0xb294, 0x9ad6, 0x59ce,
228 0x18c6, 0x38c6, 0x38c6, 0x38c6, 0x18c6, 0x38c6, 0x18c6, 0x59ce,
229 0x79ce, 0x18c6, 0xdbde, 0x38c6, 0x95b5, 0xd6b5, 0x518c, 0xc318,
230 0xffff, 0xffff, 0x2c63, 0x0842, 0x75ad, 0xf39c, 0xf39c, 0x55ad,
231 0x96b5, 0x75ad, 0x14a5, 0xd39c, 0xfbde, 0x3ce7, 0x5def, 0x1ce7,
232 0x9def, 0xdbde, 0x96b5, 0xd7bd, 0x2842, 0x0c63, 0xffff, 0xffff,
233 0xdbde, 0x2000, 0x9294, 0xd39c, 0x14a5, 0x96b5, 0xf7bd, 0xb6b5,
234 0x34a5, 0xb294, 0xfbde, 0x3ce7, 0x5def, 0x3ce7, 0x5def, 0xdad6,
235 0x58c6, 0x34a5, 0x2000, 0x9ad6, 0xffff, 0xffff, 0xffff, 0x8a52,
236 0x2842, 0xf39c, 0xf39c, 0x75ad, 0xb6b5, 0x96b5, 0x34a5, 0xb294,
237 0xfbde, 0x3ce7, 0x5def, 0x5def, 0xfbde, 0xdad6, 0xdad6, 0xae73,
238 0x0842, 0xffff, 0xffff, 0xffff, 0xffff, 0x38c6, 0x2000, 0xb294,
239 0xd39c, 0x14a5, 0x55ad, 0x34a5, 0xf39c, 0xf39c, 0xfbde, 0x3ce7,
240 0x3ce7, 0x3ce7, 0xdad6, 0xdad6, 0xbad6, 0xc318, 0xb6b5, 0xffff,
241 0xffff, 0xffff, 0xffff, 0xffff, 0xc739, 0x8a52, 0xf39c, 0xb294,
242 0xd39c, 0xd39c, 0xf39c, 0x34a5, 0xfbde, 0x5def, 0x3ce7, 0xfbde,
243 0xdad6, 0xdad6, 0x34a5, 0x2421, 0xffff, 0xffff, 0xffff, 0xffff,
244 0xffff, 0xffff, 0x96b5, 0x6108, 0xb294, 0x34a5, 0x14a5, 0x14a5,
245 0x55ad, 0x96b5, 0xbad6, 0xdbde, 0xbad6, 0xdad6, 0xdad6, 0x99ce,
246 0xa631, 0xb294, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
247 0xffff, 0x694a, 0x2000, 0x2842, 0xb294, 0x96b5, 0xb6b5, 0xf7bd,
248 0xf7bd, 0x18c6, 0xbad6, 0x99ce, 0x718c, 0x8210, 0xa631, 0xbef7,
249 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
250 0x59ce, 0x494a, 0x0000, 0x2842, 0x14a5, 0xd7bd, 0xb6b5, 0x99ce,
251 0x718c, 0x8210, 0x8631, 0xb6b5, 0xffff, 0xffff, 0xffff, 0xffff,
252 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
253 0x59ce, 0x494a, 0x0000, 0xc739, 0x694a, 0x6108, 0x8631, 0x96b5,
254 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
255 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
256 0x79ce, 0x694a, 0x6529, 0x96b5, 0xffff, 0xffff, 0xffff, 0xffff,
257 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
258 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
259 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
260 0xffff, 0xffff, 0xffff, 0xffff},
261 /* blue jewel */
262 {0xffff, 0xffff, 0xffff, 0xdfff, 0x8a4a, 0x0000, 0x0000, 0x0000,
263 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
264 0xa629, 0x9ef7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
265 0xdfff, 0x6a4a, 0xa801, 0x5e3e, 0xbf66, 0xdf6e, 0xdf76, 0xff7e,
266 0xff86, 0x1f8f, 0x1f97, 0x3f9f, 0x3f9f, 0x1f97, 0x2f1b, 0xc731,
267 0xbef7, 0xffff, 0xffff, 0xffff, 0xffff, 0xdfff, 0x694a, 0xc901,
268 0xdf66, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
269 0xfff7, 0xdfe7, 0xbfd7, 0x9fc7, 0x1f97, 0x8c0a, 0x083a, 0xbef7,
270 0xffff, 0xffff, 0xdfff, 0x4942, 0xe901, 0xff7e, 0xffff, 0xffff,
271 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdfef, 0xbfdf, 0x9fcf,
272 0x7fbf, 0x5faf, 0x5f9f, 0xbf5e, 0x0a02, 0x4942, 0xdfff, 0xffff,
273 0x694a, 0xc901, 0x3f26, 0x1f87, 0x1f8f, 0x1f8f, 0x3f97, 0x3f9f,
274 0x3f9f, 0x3f9f, 0x3f97, 0x1f97, 0x1f8f, 0xff86, 0xff7e, 0xff76,
275 0xdf66, 0xbf5e, 0x3f1e, 0xc909, 0x8a52, 0xffff, 0x3084, 0x4701,
276 0xde05, 0x1f06, 0x1f06, 0x1f06, 0x1f06, 0x1f06, 0x1f06, 0x1f06,
277 0xbe05, 0x7603, 0x7603, 0x7603, 0x3814, 0x5e66, 0xbe7e, 0x1f9f,
278 0x5fb7, 0x4b22, 0xaf73, 0xffff, 0xffff, 0xe731, 0x7103, 0xde05,
279 0xff05, 0x3f0e, 0x1f87, 0x1f06, 0x1f06, 0x1f06, 0xbe05, 0x7603,
280 0x7603, 0x7603, 0x5c2d, 0xdf66, 0xff7e, 0x3f97, 0xf74c, 0x6521,
281 0xdfff, 0xffff, 0xffff, 0xfbde, 0x6208, 0xfa04, 0xbe05, 0xff86,
282 0x9fc7, 0x5f1e, 0x1f06, 0x1f06, 0xbe05, 0x7603, 0x7603, 0x7603,
283 0x3f2e, 0xbf4e, 0xdf66, 0x3d5e, 0x2100, 0x79ce, 0xffff, 0xffff,
284 0xffff, 0xffff, 0x14a5, 0xa300, 0x3d56, 0x9fcf, 0x9fbf, 0x9f5e,
285 0x1f06, 0x1f06, 0xbe05, 0x7603, 0x7603, 0x1904, 0x5f1e, 0x7f36,
286 0x7f46, 0xe911, 0x107c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
287 0xffff, 0x8a4a, 0x502b, 0x7fc7, 0x7fbf, 0x1f97, 0xbe05, 0xff05,
288 0xbe05, 0x7603, 0x7603, 0xfb04, 0x3f06, 0x5f1e, 0x5614, 0x8629,
289 0xdfff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7def,
290 0xc310, 0xba5d, 0x7fb7, 0x5fa7, 0xbd1d, 0x9d05, 0x9d05, 0x7603,
291 0x7603, 0xde05, 0x1f06, 0x7d05, 0x4100, 0xbad6, 0xffff, 0xffff,
292 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd7bd, 0x4100,
293 0xde86, 0x5fa7, 0x3e4e, 0x5c05, 0x5d05, 0x7603, 0x1804, 0x1f06,
294 0xff05, 0x8801, 0x518c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
295 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6d6b, 0x4b1a, 0x1f97,
296 0xdf7e, 0x1b05, 0x3c05, 0x7603, 0xfb04, 0x1f06, 0xf503, 0xc731,
297 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
298 0xffff, 0xffff, 0xffff, 0xbef7, 0x4521, 0xd73c, 0x1f8f, 0x3b15,
299 0x1b05, 0x7603, 0xde05, 0x5c05, 0x4100, 0xdbde, 0xffff, 0xffff,
300 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
301 0xffff, 0xffff, 0x79ce, 0x2100, 0x3d5e, 0xdc3d, 0xdb04, 0xf803,
302 0xff05, 0x4701, 0xb294, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
303 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
304 0xffff, 0x518c, 0x6709, 0x5e5e, 0x9a04, 0xdb04, 0xb403, 0x083a,
305 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
306 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
307 0xe839, 0xd323, 0xfa14, 0xda04, 0x6208, 0x1ce7, 0xffff, 0xffff,
308 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
309 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x1ce7, 0x6208,
310 0xf50b, 0x0501, 0xf39c, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
311 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
312 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x14a5, 0x0000, 0x4942,
313 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
314 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
315 0xffff, 0xffff, 0xffff, 0xffff, 0x4d6b, 0x3ce7, 0xffff, 0xffff,
316 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
317 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
318 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
319 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
320 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
321 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
322 0xffff, 0xffff, 0xffff, 0xffff},
323 /* orange jewel */
324 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
325 0xbef7, 0x718c, 0xe320, 0x2c63, 0x1ce7, 0xffff, 0xffff, 0xffff,
326 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
327 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0x518c, 0x8210, 0xe120,
328 0x0493, 0x0041, 0x2000, 0x2c63, 0xfbde, 0xffff, 0xffff, 0xffff,
329 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
330 0x9ef7, 0x3084, 0x8110, 0x0229, 0xeabc, 0x32ef, 0x67cc, 0xe0a9,
331 0x20a2, 0x0041, 0x2000, 0x0c63, 0xfbde, 0xffff, 0xffff, 0xffff,
332 0xffff, 0xffff, 0xffff, 0xffff, 0x7def, 0xef7b, 0x6110, 0x2231,
333 0x0abd, 0x52ef, 0x73ef, 0x73ef, 0x46cc, 0xe0a9, 0xe0a9, 0xe0a9,
334 0x20a2, 0x0041, 0x2000, 0x0c63, 0xfbde, 0xffff, 0xffff, 0xffff,
335 0x7def, 0xcf7b, 0x6108, 0x4231, 0x2ac5, 0x52ef, 0x73ef, 0x73ef,
336 0x73ef, 0x73ef, 0x26cc, 0xe0a9, 0xe0a9, 0xe0a9, 0x40b2, 0xc0a9,
337 0xc0b2, 0xa059, 0x2000, 0x0b63, 0xfbde, 0xffff, 0xa218, 0x6339,
338 0x4bc5, 0x53ef, 0x73ef, 0x73ef, 0x73ef, 0x73ef, 0x11ef, 0xe7dc,
339 0x20cb, 0xc0c2, 0x40b2, 0xe0a9, 0xe0b1, 0xe0b1, 0xc0d3, 0xc0ec,
340 0x20d4, 0xc059, 0x2000, 0xffff, 0x6108, 0x42a3, 0x4de6, 0x73ef,
341 0x73ef, 0x73ef, 0x11ef, 0x06e5, 0x60d3, 0xc0c2, 0x60ba, 0x00b2,
342 0x20b2, 0xa0c2, 0x60ba, 0xe0c2, 0xc0ec, 0xc0ec, 0xc0ec, 0x20d4,
343 0x0000, 0xffff, 0x4108, 0xa09a, 0xc0db, 0xa4dc, 0x6eee, 0x06e5,
344 0xa0d3, 0x40cb, 0xe0c2, 0x60ba, 0x00b2, 0xe0a9, 0xe0a9, 0xe0a9,
345 0x00b2, 0xc0c2, 0xe0db, 0xa0d3, 0x80cb, 0x20bb, 0x2000, 0xffff,
346 0x4108, 0xa09a, 0xc0db, 0xc0db, 0xc0db, 0xa0db, 0x40cb, 0xe0c2,
347 0x80ba, 0x00b2, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9,
348 0x60b2, 0xa099, 0xa099, 0x009a, 0x2000, 0xffff, 0x4008, 0xc09a,
349 0xc0db, 0xc0db, 0xc0db, 0x40cb, 0xe0c2, 0x80ba, 0x20b2, 0xe0a9,
350 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0x60b2, 0xa099,
351 0xa099, 0xe099, 0x2000, 0xffff, 0x2008, 0xc09a, 0xc0db, 0xc0db,
352 0xc0db, 0xe0c2, 0x80ba, 0x20b2, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9,
353 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0x60b2, 0xa099, 0xa099, 0xe099,
354 0x4008, 0xffff, 0x2000, 0xc09a, 0xc0db, 0xc0db, 0xa0db, 0x80ba,
355 0x20b2, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9,
356 0xe0a9, 0xe0a9, 0x60b2, 0xa099, 0xa099, 0xe099, 0x4008, 0xffff,
357 0x2000, 0xc0a2, 0xc0db, 0xc0db, 0xa0d3, 0x20b2, 0xe0a9, 0xe0a9,
358 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9,
359 0x60b2, 0xa099, 0xa099, 0xe099, 0x4108, 0xffff, 0x2000, 0xc0a2,
360 0xc0db, 0xa0d3, 0xc0c2, 0xa0ba, 0x00b2, 0xe0a9, 0xe0a9, 0xe0a9,
361 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9, 0x00b2, 0xc0c2, 0x60ba, 0x20b2,
362 0x80ba, 0x80aa, 0x4108, 0xffff, 0x0000, 0xa0a2, 0x80ba, 0xe0a9,
363 0xc0a9, 0xc0a9, 0x40b2, 0xa0ba, 0x00b2, 0xe0a9, 0xe0a9, 0xe0a9,
364 0x00b2, 0xe0c2, 0x40cb, 0xe0c2, 0x60ba, 0x00b2, 0x00b2, 0x60aa,
365 0x6108, 0xffff, 0x8110, 0xc028, 0x009a, 0xe0a9, 0xc0a9, 0xc0a9,
366 0xc0a9, 0xc0a9, 0x60b2, 0xa0ba, 0x00b2, 0xe0c2, 0x20dc, 0x20dc,
367 0xa0d3, 0x40cb, 0xc0c2, 0x60ba, 0x20a2, 0xe030, 0xa218, 0xffff,
368 0x9ef7, 0x1084, 0x6110, 0xc028, 0x009a, 0xe0a9, 0xc0a9, 0xc0a9,
369 0xc0a9, 0xc0a9, 0x20cb, 0x20e4, 0xa0ec, 0x60e4, 0x00dc, 0x80d3,
370 0xe0b2, 0xe030, 0x4108, 0xcf7b, 0x5def, 0xffff, 0xffff, 0xffff,
371 0x9ef7, 0x1084, 0x8110, 0xa028, 0x009a, 0xe0a9, 0xc0a9, 0xc0a9,
372 0x60cb, 0xe0db, 0x40e4, 0xa0ec, 0x80bb, 0x0031, 0x4108, 0xcf7b,
373 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
374 0x9ef7, 0x3084, 0x8110, 0xa028, 0x009a, 0x00aa, 0xc0db, 0x80d3,
375 0x40bb, 0x0031, 0x4108, 0xcf7b, 0x5def, 0xffff, 0xffff, 0xffff,
376 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
377 0x9ef7, 0x3084, 0x8110, 0x8020, 0xe069, 0xc028, 0x4108, 0xcf7b,
378 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
379 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
380 0x9ef7, 0x518c, 0xe320, 0xcf7b, 0x5def, 0xffff, 0xffff, 0xffff,
381 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
382 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
383 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
384 0xffff, 0xffff, 0xffff, 0xffff},
385 /* purple jewel */
386 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
387 0xffff, 0xffff, 0x1084, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
388 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
389 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6,
390 0x0000, 0x18c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
391 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
392 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe739, 0x0000, 0xe739,
393 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
394 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
395 0xffff, 0xffff, 0x18c6, 0x0000, 0xb4a0, 0x0000, 0x18c6, 0xffff,
396 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
397 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
398 0xe739, 0xee70, 0xb9c8, 0x0b58, 0xe739, 0xffff, 0xffff, 0xffff,
399 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
400 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6, 0x0000, 0x5ce2,
401 0xb8c0, 0x14a0, 0x0000, 0x18c6, 0xffff, 0xffff, 0xffff, 0xffff,
402 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
403 0xffff, 0xffff, 0xffff, 0xe739, 0x0e71, 0xdef2, 0xb8c0, 0x14a0,
404 0x0a50, 0xe739, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
405 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
406 0x18c6, 0x0000, 0x5ce2, 0xdef2, 0xb8b8, 0x1398, 0x1288, 0x0000,
407 0x18c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
408 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe739, 0x0e71,
409 0xdef2, 0x9ef2, 0x56b0, 0x1390, 0x1188, 0x0948, 0xe739, 0xffff,
410 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
411 0xffff, 0xffff, 0xffff, 0x18c6, 0x0000, 0x5ce2, 0xdef2, 0x5ad1,
412 0x36b0, 0x14a0, 0x1080, 0x0f78, 0x0000, 0x18c6, 0xffff, 0xffff,
413 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
414 0xffff, 0xe739, 0x0e71, 0xdef2, 0x7dea, 0x36b0, 0x36b0, 0x36b0,
415 0x1080, 0x0e68, 0x0948, 0xe739, 0xffff, 0xffff, 0xffff, 0xffff,
416 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6, 0x0000,
417 0x5ce2, 0xdef2, 0x39c9, 0x36b0, 0x36b0, 0x36b0, 0x1398, 0x0f70,
418 0x1080, 0x0000, 0x18c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
419 0xffff, 0xffff, 0xffff, 0xffff, 0xe739, 0x0e71, 0xdef2, 0x5dea,
420 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x1080, 0x1188, 0x0a50,
421 0xe739, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
422 0xffff, 0x18c6, 0x0000, 0x5ce2, 0xdef2, 0xf9c0, 0x36b0, 0x36b0,
423 0x36b0, 0x36b0, 0x36b0, 0x14a0, 0x1288, 0x1390, 0x0000, 0x18c6,
424 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe739,
425 0x0e71, 0xdef2, 0x3ce2, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0,
426 0x36b0, 0x36b0, 0x1398, 0x15a0, 0x0a50, 0xe739, 0xffff, 0xffff,
427 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6, 0x0000, 0x5ce2, 0xdef2,
428 0xd8c0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0,
429 0x16b0, 0x16a8, 0x15a8, 0x0000, 0x18c6, 0xffff, 0xffff, 0xffff,
430 0xffff, 0xffff, 0xe739, 0x0e71, 0xdef2, 0x1ce2, 0x36b0, 0x36b0,
431 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x36b0, 0x16b0,
432 0x18b8, 0x0c60, 0xe739, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6,
433 0x0000, 0x5ce2, 0xdef2, 0x97b8, 0x35a8, 0x35a8, 0x36a8, 0x36b0,
434 0x36b0, 0x36b0, 0x37b8, 0x37b8, 0x37b8, 0x17b8, 0x19c8, 0x19c8,
435 0x0000, 0x18c6, 0xffff, 0xffff, 0xffff, 0xe739, 0x0e71, 0xdad1,
436 0x3078, 0x0e68, 0x0e68, 0x0e68, 0x1078, 0x1290, 0x14a0, 0x17b8,
437 0x19c8, 0x1ad0, 0x1ad0, 0x1ad0, 0x19c8, 0x1ad0, 0x0c60, 0xe739,
438 0xffff, 0xffff, 0x18c6, 0x0000, 0x8f78, 0x0f70, 0x0f70, 0x0f70,
439 0x0f70, 0x0f70, 0x0f70, 0x1080, 0x1290, 0x1398, 0x15a8, 0x17b8,
440 0x17b8, 0x17b8, 0x17b8, 0x17b8, 0x1290, 0x0000, 0x18c6, 0xffff,
441 0x0842, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
442 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
443 0x0000, 0x0000, 0x0000, 0x0000, 0x0842, 0xffff, 0xffff, 0xffff,
444 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
445 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
446 0xffff, 0xffff, 0xffff, 0xffff},
447 /* red jewel */
448 {0xffff, 0xffff, 0x59ce, 0x6110, 0x0000, 0x0000, 0x0000, 0x0000,
449 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
450 0x0000, 0x4108, 0x18c6, 0xffff, 0xffff, 0xffff, 0xffff, 0x59ce,
451 0x6108, 0x2010, 0x00a0, 0x0098, 0x0090, 0x2090, 0x2088, 0x2080,
452 0x2078, 0x2078, 0x2070, 0x2070, 0x4068, 0x4068, 0x4060, 0x0018,
453 0x4108, 0x18c6, 0xffff, 0xffff, 0x38c6, 0x4108, 0x2010, 0x2090,
454 0x00f8, 0x00f0, 0x00d8, 0x20c8, 0x20b0, 0x40a0, 0x4090, 0x6078,
455 0x6078, 0x6078, 0x6078, 0x6078, 0x6078, 0x4078, 0x2018, 0x4108,
456 0x18c6, 0xffff, 0x4108, 0x0018, 0x2098, 0x20b8, 0x00f8, 0x00f8,
457 0x00f0, 0x00e0, 0x20c8, 0x20b8, 0x40a8, 0x4090, 0x6080, 0x6080,
458 0x6080, 0x6078, 0x6078, 0x4098, 0x20a0, 0x0020, 0x4108, 0xffff,
459 0x0000, 0x2098, 0x40e0, 0x40e0, 0xa8e1, 0x4bea, 0x4bf2, 0x4bf2,
460 0x4bea, 0x6be2, 0x66c9, 0x40b0, 0x81c0, 0x81b8, 0x81b0, 0x81b0,
461 0x81b8, 0x00e8, 0x00e8, 0x00a8, 0x0000, 0xffff, 0x0000, 0x20a0,
462 0x40e0, 0x40e0, 0x09ea, 0xeef2, 0xeeea, 0xeeea, 0xeee2, 0xeeda,
463 0xc8c1, 0x40a0, 0xa2c0, 0xa2c0, 0xa2c0, 0x82c8, 0x82d0, 0x00d8,
464 0x00d8, 0x00a0, 0x0000, 0xffff, 0x0000, 0x20a0, 0x40e0, 0x40e0,
465 0x09f2, 0xeeea, 0xeeea, 0xeee2, 0xeeda, 0xeeda, 0xc8b9, 0x6098,
466 0xa2c0, 0xa2c0, 0x82c8, 0x82d0, 0x82d8, 0x20d0, 0x20d0, 0x00a0,
467 0x0000, 0xffff, 0x0000, 0x20a8, 0x40e0, 0x40e0, 0x09f2, 0xeeea,
468 0xeee2, 0xeeda, 0xeeda, 0x0ed3, 0xc8b1, 0x6088, 0xa2c0, 0x82c8,
469 0x82d0, 0x82d8, 0x82d8, 0x20c0, 0x20c0, 0x00a0, 0x0000, 0xffff,
470 0x0000, 0x20a8, 0x40e0, 0x40e0, 0x09e2, 0xeee2, 0xeeda, 0xeeda,
471 0x0ed3, 0x0ecb, 0xc8a1, 0x6090, 0x82c8, 0x82d0, 0x82d8, 0x82d8,
472 0x82e0, 0x20b8, 0x20b0, 0x2090, 0x0000, 0xffff, 0x0000, 0x20b0,
473 0x40e0, 0x40e0, 0x09da, 0xeeda, 0xeed2, 0x0ed3, 0x0ecb, 0x0ec3,
474 0xc8b1, 0x40a0, 0x82d0, 0x82d8, 0x82d8, 0x82e0, 0x82e8, 0x20a8,
475 0x40a8, 0x2088, 0x0000, 0xffff, 0x0000, 0x20a8, 0x40e0, 0x40e0,
476 0x45c9, 0xc8c1, 0xc8b9, 0xc8b1, 0xc8a1, 0xc8b1, 0xc7b9, 0xc8c1,
477 0x66d9, 0x66d9, 0x66e1, 0x66e9, 0x66f1, 0x4098, 0x4098, 0x2078,
478 0x0000, 0xffff, 0x0000, 0x20a8, 0x40e0, 0x40e0, 0x40a8, 0x40a0,
479 0x6090, 0x6080, 0x6090, 0x40a0, 0xe9c9, 0xd3e3, 0xd3eb, 0xd3eb,
480 0xd3eb, 0xd3eb, 0xd3eb, 0x4090, 0x4088, 0x2070, 0x0000, 0xffff,
481 0x0000, 0x20a0, 0x40e0, 0x40e0, 0x61b0, 0x82b8, 0x82b8, 0x82c0,
482 0x82c8, 0x82d0, 0xa8d9, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb,
483 0xd3eb, 0x6080, 0x6078, 0x4068, 0x0000, 0xffff, 0x0000, 0x20a0,
484 0x40e0, 0x40e0, 0x81a8, 0x82b8, 0x82c0, 0x82c8, 0x82d0, 0x82d8,
485 0xa8e1, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0x4088,
486 0x4088, 0x2068, 0x0000, 0xffff, 0x0000, 0x2098, 0x40e0, 0x40e0,
487 0x81a0, 0x82c0, 0x82c8, 0x82d0, 0x82d8, 0x62e0, 0xa8e9, 0xd3eb,
488 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3e3, 0x4098, 0x4098, 0x2068,
489 0x0000, 0xffff, 0x0000, 0x2098, 0x40e0, 0x40e0, 0x61a8, 0x82c8,
490 0x82d0, 0x82d8, 0x62e0, 0x62e8, 0xa8f1, 0xd3eb, 0xd3eb, 0xd3eb,
491 0xd3eb, 0xd3e3, 0xd3e3, 0x40a0, 0x40a8, 0x2070, 0x0000, 0xffff,
492 0x0000, 0x2090, 0x40e0, 0x40e0, 0x61b8, 0x82d0, 0x82d8, 0x62e0,
493 0x62e8, 0x62f0, 0xa8f1, 0xd3eb, 0xd3eb, 0xd3eb, 0xd3e3, 0xd3e3,
494 0xd3e3, 0x40b0, 0x20b0, 0x2078, 0x0000, 0xffff, 0x8210, 0x2010,
495 0x4080, 0x40a0, 0x00f8, 0x00f8, 0x00f8, 0x20d0, 0x40a8, 0x6080,
496 0x6078, 0x6078, 0x6078, 0x6078, 0x6078, 0x6078, 0x6078, 0x6080,
497 0x4080, 0x0010, 0x6110, 0xffff, 0x79ce, 0x6110, 0x2010, 0x2098,
498 0x00f8, 0x00f8, 0x00f8, 0x00e8, 0x20c0, 0x4090, 0x6078, 0x6078,
499 0x6078, 0x6078, 0x6078, 0x6078, 0x6078, 0x4080, 0x0018, 0x6108,
500 0x59ce, 0xffff, 0xffff, 0x79ce, 0x6110, 0x0018, 0x00b0, 0x00b8,
501 0x00b8, 0x00b8, 0x00a0, 0x2088, 0x2070, 0x4068, 0x4068, 0x4060,
502 0x4060, 0x4060, 0x4060, 0x0018, 0x4108, 0x59ce, 0xffff, 0xffff,
503 0xffff, 0xffff, 0x79ce, 0x8210, 0x0000, 0x0000, 0x0000, 0x0000,
504 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
505 0x0000, 0x4108, 0x38c6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
506 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
507 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
508 0xffff, 0xffff, 0xffff, 0xffff},
509 /* yellow jewel */
510 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
511 0xffff, 0xfbde, 0xe739, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
512 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
513 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xe318,
514 0xe018, 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
515 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
516 0xffff, 0xffff, 0xffff, 0xfbde, 0xe318, 0x2463, 0x46ad, 0xc039,
517 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
518 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
519 0xfbde, 0xe318, 0x8573, 0xedde, 0x87b5, 0xe083, 0xc039, 0xe318,
520 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
521 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xe318, 0x8573,
522 0x4de7, 0x2de7, 0xe7bd, 0x408c, 0xe07b, 0xc039, 0xe318, 0xfbde,
523 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
524 0xffff, 0xffff, 0xfbde, 0xc318, 0x456b, 0x0ddf, 0x2de7, 0x4de7,
525 0x47c6, 0xc09c, 0x408c, 0xe07b, 0xc039, 0xe318, 0xfbde, 0xffff,
526 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde,
527 0xe318, 0x456b, 0x4ee7, 0x6eef, 0x6eef, 0x6eef, 0x28df, 0xa1d6,
528 0x20a5, 0x408c, 0xe07b, 0xc039, 0xe318, 0xfbde, 0xffff, 0xffff,
529 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xe318, 0xa573, 0x0ddf,
530 0x6eef, 0x8eef, 0x8eef, 0x8eef, 0x48e7, 0x20c6, 0x40ad, 0xc09c,
531 0x408c, 0x8094, 0x2063, 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff,
532 0xffff, 0xfbde, 0xe318, 0xa573, 0x4de7, 0x2de7, 0x6eef, 0x8eef,
533 0x8eef, 0x8eef, 0xc4b5, 0x60ad, 0xe0bd, 0x40ad, 0x40ad, 0x80d6,
534 0x80d6, 0x406b, 0xe318, 0xfbde, 0xffff, 0xffff, 0xfbde, 0xe318,
535 0x656b, 0x0ddf, 0x2de7, 0x4de7, 0x6eef, 0x8eef, 0x8eef, 0xc4b5,
536 0x8094, 0x8094, 0x60ad, 0x20c6, 0xe0de, 0xe0de, 0xa0d6, 0xa0d6,
537 0x406b, 0xe318, 0xfbde, 0xffff, 0xc739, 0x0121, 0x47ad, 0xa7b5,
538 0xe7bd, 0x47ce, 0x28e7, 0x48e7, 0xe4bd, 0x8094, 0x8094, 0x8094,
539 0x20a5, 0xc0d6, 0xe0de, 0xc0de, 0xc0d6, 0xa0d6, 0x80ce, 0x8031,
540 0xe739, 0xffff, 0xbad6, 0xa210, 0xc039, 0xc07b, 0x408c, 0xc09c,
541 0xc1d6, 0x20c6, 0x60ad, 0x8094, 0x8094, 0xe09c, 0xa0d6, 0xe0de,
542 0x00df, 0x00e7, 0x00df, 0xc0de, 0x406b, 0xe318, 0xfbde, 0xffff,
543 0xffff, 0xdbde, 0xa210, 0xc039, 0xc07b, 0x408c, 0x40ad, 0x60ad,
544 0xe0bd, 0x60ad, 0x00a5, 0xa0d6, 0xa0d6, 0xc0d6, 0xe0de, 0x00df,
545 0x20e7, 0x8073, 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
546 0xdbde, 0xa210, 0xc039, 0xc07b, 0x408c, 0xc09c, 0x40ad, 0xe0bd,
547 0xe0bd, 0x60ce, 0xc0d6, 0xa0d6, 0xc0d6, 0xc0de, 0x8073, 0xe318,
548 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdbde,
549 0xc218, 0xc039, 0xc07b, 0x408c, 0x00a5, 0xc0bd, 0xe0bd, 0xe0bd,
550 0x60ce, 0xc0d6, 0x80d6, 0x406b, 0xe318, 0xfbde, 0xffff, 0xffff,
551 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdbde, 0xc218,
552 0xc039, 0x208c, 0x60ad, 0xa0b5, 0xc0bd, 0xe0bd, 0xe0bd, 0x60ce,
553 0x2063, 0xc318, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
554 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xc218, 0xc05a,
555 0x60ad, 0x80b5, 0xa0b5, 0xc0bd, 0xe0bd, 0x0063, 0xe318, 0xfbde,
556 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
557 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xc218, 0xc05a, 0x60ad,
558 0x80b5, 0xa0b5, 0x0063, 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff,
559 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
560 0xffff, 0xffff, 0xffff, 0xfbde, 0xc218, 0xe05a, 0x60ad, 0xe05a,
561 0xe318, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
562 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
563 0xffff, 0xffff, 0xfbde, 0xe218, 0x2021, 0xe318, 0xfbde, 0xffff,
564 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
565 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
566 0xffff, 0xfbde, 0xe739, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
567 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
568 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
569 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
570 0xffff, 0xffff, 0xffff, 0xffff},
571 /* green jewel */
572 {0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0xc631, 0x0000, 0x0000,
573 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2421,
574 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
575 0xffff, 0x9ef7, 0xc631, 0xa63a, 0x6756, 0x4546, 0x4546, 0x4546,
576 0x4546, 0x4546, 0x4546, 0x4546, 0x4546, 0x0533, 0x4421, 0x5def,
577 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0xc631,
578 0xa63a, 0xb9d7, 0x4967, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f,
579 0x254f, 0x254f, 0x254f, 0x4c77, 0x063b, 0x4421, 0x5def, 0xffff,
580 0xffff, 0xffff, 0xffff, 0x9ef7, 0xc631, 0xa63a, 0xb9d7, 0xdadf,
581 0x485f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f,
582 0x254f, 0x485f, 0x4d87, 0x063b, 0x6421, 0x7def, 0xffff, 0xffff,
583 0x9ef7, 0xc631, 0xa63a, 0xb9d7, 0xdadf, 0xb5bf, 0x4757, 0x254f,
584 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f,
585 0x4a67, 0x6f8f, 0x063b, 0x6529, 0x7def, 0xffff, 0xc631, 0xa63a,
586 0xb9d7, 0xdadf, 0xb6bf, 0x9097, 0x2657, 0x254f, 0x254f, 0x254f,
587 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x254f, 0x6b77,
588 0x7197, 0x073b, 0x8529, 0xffff, 0x0000, 0x4756, 0x4967, 0x485f,
589 0x475f, 0x2657, 0x0116, 0xc00d, 0xc00d, 0xa00d, 0x800d, 0x600d,
590 0x400d, 0x000d, 0x010d, 0x0116, 0xc00d, 0xa00d, 0x6115, 0x4225,
591 0x0000, 0xffff, 0x0000, 0x4446, 0x254f, 0x254f, 0x254f, 0x254f,
592 0xc00d, 0xa005, 0x6005, 0x4005, 0x2005, 0x0005, 0xc004, 0xa004,
593 0xa004, 0xc00d, 0xa005, 0x4005, 0xe004, 0xe00c, 0x0000, 0xffff,
594 0x0000, 0x243e, 0x254f, 0x254f, 0x254f, 0x254f, 0xc00d, 0x8005,
595 0x4005, 0x2005, 0x0005, 0xc004, 0xa004, 0x8004, 0x8004, 0xc00d,
596 0x6005, 0x0005, 0xc004, 0xc00c, 0x0000, 0xffff, 0x2000, 0x243e,
597 0x254f, 0x254f, 0x254f, 0x254f, 0xa00d, 0x4005, 0x2005, 0x0005,
598 0xc004, 0xa004, 0x8004, 0x6004, 0x6004, 0xc00d, 0x4005, 0xe004,
599 0x8004, 0x800c, 0x0000, 0xffff, 0x2000, 0x043e, 0x254f, 0x254f,
600 0x254f, 0x254f, 0x800d, 0x2005, 0x0005, 0xe004, 0xa004, 0x8004,
601 0x6004, 0x2004, 0x4004, 0x800d, 0x0005, 0xa004, 0x4004, 0x600c,
602 0x0000, 0xffff, 0x4000, 0x043e, 0x254f, 0x254f, 0x254f, 0x254f,
603 0x600d, 0x0005, 0xe004, 0xa004, 0x8004, 0x6004, 0x2004, 0x0004,
604 0x0004, 0x600d, 0xe004, 0x8004, 0x2004, 0x400c, 0x0000, 0xffff,
605 0x4000, 0x043e, 0x254f, 0x254f, 0x254f, 0x254f, 0x400d, 0xe004,
606 0xa004, 0x8004, 0x6004, 0x4004, 0x0004, 0xe003, 0xe003, 0x400d,
607 0xa004, 0x4004, 0xe003, 0x200c, 0x0000, 0xffff, 0x4108, 0xe43d,
608 0x254f, 0x254f, 0x254f, 0x254f, 0x200d, 0xa004, 0x8004, 0x6004,
609 0x4004, 0x0004, 0xe003, 0xc003, 0xc003, 0x000d, 0x6004, 0x2004,
610 0xc003, 0xe00b, 0x0000, 0xffff, 0x6108, 0xc545, 0x264f, 0x254f,
611 0x254f, 0x254f, 0x611d, 0x010d, 0xe10c, 0xc10c, 0xa10c, 0x810c,
612 0x610c, 0x410c, 0x4114, 0x6115, 0xc10c, 0x8114, 0x621c, 0x8324,
613 0x0000, 0xffff, 0x4842, 0x252a, 0x2e87, 0x4a6f, 0x254f, 0x254f,
614 0xe115, 0xc00d, 0xc00d, 0xc00d, 0x600d, 0x400d, 0x000d, 0xc004,
615 0xa00c, 0x254f, 0x4657, 0x6b77, 0x4f8f, 0x6532, 0xc631, 0xffff,
616 0xbef7, 0x073a, 0x6532, 0x4f8f, 0x4a6f, 0x254f, 0xc00d, 0xa005,
617 0xa005, 0x6005, 0x2005, 0xe004, 0xa004, 0x6004, 0x4004, 0x254f,
618 0x4a6f, 0x4e87, 0x8532, 0xa631, 0x9ef7, 0xffff, 0xffff, 0xbef7,
619 0xe639, 0x8632, 0x5097, 0x6b77, 0xc00d, 0xa005, 0x6005, 0x2005,
620 0xe004, 0xa004, 0x4004, 0x0004, 0x0004, 0x4967, 0x4d7f, 0xa532,
621 0x8529, 0x9ef7, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0xc631,
622 0xa63a, 0x7197, 0xc115, 0x6005, 0x2005, 0xe004, 0xa004, 0x4004,
623 0x0004, 0xc003, 0xc003, 0x4c7f, 0xc532, 0x6529, 0x7def, 0xffff,
624 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0xa531, 0xe73a,
625 0xa225, 0x4015, 0x200d, 0xe00c, 0xa00c, 0x800c, 0x400c, 0x000c,
626 0x2114, 0xe532, 0x4421, 0x5def, 0xffff, 0xffff, 0xffff, 0xffff,
627 0xffff, 0xffff, 0xffff, 0xffff, 0x7def, 0x8529, 0x0000, 0x0000,
628 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4421,
629 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
630 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
631 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
632 0xffff, 0xffff, 0xffff, 0xffff}
633};
634
635/* use 22x22 tiles */
636#elif (LCD_HEIGHT >= 176) && (LCD_WIDTH >= 220) && \
637 (LCD_PIXELFORMAT == RGB565)
638/* size of a tile */
639#define TILE_WIDTH 22 107#define TILE_WIDTH 22
640#define TILE_HEIGHT 22 108#define TILE_HEIGHT 22
641
642/* playboard offset from top */
643#define YOFS 0 109#define YOFS 0
644
645/* number of high scores to save */
646#define NUM_SCORES 10 110#define NUM_SCORES 10
647 111
648/* bitmaps for the jewels */ 112/* use 16x16 tiles (iPod Nano) */
649static unsigned short jewel[8][506] = { 113#elif (LCD_HEIGHT == 132) && (LCD_WIDTH == 176)
650 /* empty */
651 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
652 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
653 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
654 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
655 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
656 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
657 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
658 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
659 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
660 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
661 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
662 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
663 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
664 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
665 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
666 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
667 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
668 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
669 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
670 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
671 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
672 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
673 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
674 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
675 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
676 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
677 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
678 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
679 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
680 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
681 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
682 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
683 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
684 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
685 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
686 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
687 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
688 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
689 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
690 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
691 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
692 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
693 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
694 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
695 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
696 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
697 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
698 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
699 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
700 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
701 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
702 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
703 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
704 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
705 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
706 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
707 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
708 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
709 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
710 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
711 0xffff, 0xffff, 0xffff, 0xffff},
712 /* white jewel */
713 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
714 0xbdf7, 0x39e7, 0x39e7, 0xbdf7, 0xffff, 0xffff, 0xffff, 0xffff,
715 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
716 0xffff, 0xffff, 0xffff, 0xffff, 0xbdd7, 0x39c7, 0x0841, 0x8410,
717 0x632c, 0x0841, 0x39c7, 0xbdf7, 0xffff, 0xffff, 0xffff, 0xffff,
718 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
719 0xbdd7, 0x31a6, 0x0861, 0x8410, 0xce59, 0xce79, 0x8c71, 0x9492,
720 0x6b4d, 0x0841, 0x31a6, 0xbdd7, 0xffff, 0xffff, 0xffff, 0xffff,
721 0xffff, 0xffff, 0xffff, 0xffff, 0xf7be, 0x31a6, 0x0861, 0x8410,
722 0xce59, 0xce79, 0xce79, 0xce79, 0x8c71, 0x8c71, 0x8c71, 0x9492,
723 0x6b6d, 0x0861, 0x39e7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
724 0xffff, 0xffff, 0x9cf3, 0x2965, 0xce59, 0xd6ba, 0xd6ba, 0xd6ba,
725 0xd6ba, 0xd6ba, 0x94b2, 0x9cd3, 0xa514, 0xad55, 0xb596, 0xad55,
726 0x0861, 0xb596, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
727 0x2945, 0x9cd3, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c, 0xe71c,
728 0xa514, 0x9cd3, 0x9cd3, 0xa534, 0xb596, 0xbdf7, 0x5acb, 0x39e7,
729 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618, 0x0861, 0xdefb,
730 0xe73c, 0xef5d, 0xef5d, 0xef5d, 0xe73c, 0xe73c, 0xad75, 0xa534,
731 0x9cf3, 0x9cf3, 0xad55, 0xb5b6, 0xad75, 0x0020, 0xce79, 0xffff,
732 0xffff, 0xffff, 0xffff, 0x528a, 0x7bcf, 0xef5d, 0xe73c, 0xe73c,
733 0xe73c, 0xe73c, 0xe73c, 0xef5d, 0xbdd7, 0xb596, 0xa534, 0x9cd3,
734 0x9cf3, 0xad75, 0xbdd7, 0x5acb, 0x5aeb, 0xffff, 0xffff, 0xffff,
735 0xe71c, 0x0020, 0xd69a, 0xe73c, 0xe71c, 0xe71c, 0xdefb, 0xe71c,
736 0xe71c, 0xe73c, 0xbdf7, 0xbdd7, 0xad75, 0xa514, 0x9cd3, 0xa534,
737 0xb5b6, 0xb595, 0x0020, 0xef5d, 0xffff, 0xffff, 0x7bcf, 0x528a,
738 0xe73c, 0xe71c, 0xdefb, 0xdefb, 0xdedb, 0xdedb, 0xdefb, 0xe71c,
739 0xb5b6, 0xc618, 0xb5b6, 0xad55, 0xbdf7, 0xa534, 0xb5b6, 0xb5b6,
740 0x4a69, 0x7bef, 0xffff, 0xffff, 0x18c3, 0x94b2, 0xd69a, 0xce59,
741 0xc618, 0xc638, 0xc638, 0xc638, 0xc618, 0xc638, 0xc618, 0xce59,
742 0xce79, 0xc618, 0xdedb, 0xc638, 0xb595, 0xb5d6, 0x8c51, 0x18c3,
743 0xffff, 0xffff, 0x632c, 0x4208, 0xad75, 0x9cf3, 0x9cf3, 0xad55,
744 0xb596, 0xad75, 0xa514, 0x9cd3, 0xdefb, 0xe73c, 0xef5d, 0xe71c,
745 0xef9d, 0xdedb, 0xb596, 0xbdd7, 0x4228, 0x630c, 0xffff, 0xffff,
746 0xdedb, 0x0020, 0x9492, 0x9cd3, 0xa514, 0xb596, 0xbdf7, 0xb5b6,
747 0xa534, 0x94b2, 0xdefb, 0xe73c, 0xef5d, 0xe73c, 0xef5d, 0xd6da,
748 0xc658, 0xa534, 0x0020, 0xd69a, 0xffff, 0xffff, 0xffff, 0x528a,
749 0x4228, 0x9cf3, 0x9cf3, 0xad75, 0xb5b6, 0xb596, 0xa534, 0x94b2,
750 0xdefb, 0xe73c, 0xef5d, 0xef5d, 0xdefb, 0xd6da, 0xd6da, 0x73ae,
751 0x4208, 0xffff, 0xffff, 0xffff, 0xffff, 0xc638, 0x0020, 0x94b2,
752 0x9cd3, 0xa514, 0xad55, 0xa534, 0x9cf3, 0x9cf3, 0xdefb, 0xe73c,
753 0xe73c, 0xe73c, 0xd6da, 0xd6da, 0xd6ba, 0x18c3, 0xb5b6, 0xffff,
754 0xffff, 0xffff, 0xffff, 0xffff, 0x39c7, 0x528a, 0x9cf3, 0x94b2,
755 0x9cd3, 0x9cd3, 0x9cf3, 0xa534, 0xdefb, 0xef5d, 0xe73c, 0xdefb,
756 0xd6da, 0xd6da, 0xa534, 0x2124, 0xffff, 0xffff, 0xffff, 0xffff,
757 0xffff, 0xffff, 0xb596, 0x0861, 0x94b2, 0xa534, 0xa514, 0xa514,
758 0xad55, 0xb596, 0xd6ba, 0xdedb, 0xd6ba, 0xd6da, 0xd6da, 0xce99,
759 0x31a6, 0x94b2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
760 0xffff, 0x4a69, 0x0020, 0x4228, 0x94b2, 0xb596, 0xb5b6, 0xbdf7,
761 0xbdf7, 0xc618, 0xd6ba, 0xce99, 0x8c71, 0x1082, 0x31a6, 0xf7be,
762 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
763 0xce59, 0x4a49, 0x0000, 0x4228, 0xa514, 0xbdd7, 0xb5b6, 0xce99,
764 0x8c71, 0x1082, 0x3186, 0xb5b6, 0xffff, 0xffff, 0xffff, 0xffff,
765 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
766 0xce59, 0x4a49, 0x0000, 0x39c7, 0x4a69, 0x0861, 0x3186, 0xb596,
767 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
768 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
769 0xce79, 0x4a69, 0x2965, 0xb596, 0xffff, 0xffff, 0xffff, 0xffff,
770 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
771 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
772 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
773 0xffff, 0xffff, 0xffff, 0xffff},
774 /* blue jewel */
775 {0xffff, 0xffff, 0xffff, 0xffdf, 0x4a8a, 0x0000, 0x0000, 0x0000,
776 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
777 0x29a6, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
778 0xffdf, 0x4a6a, 0x01a8, 0x3e5e, 0x66bf, 0x6edf, 0x76df, 0x7eff,
779 0x86ff, 0x8f1f, 0x971f, 0x9f3f, 0x9f3f, 0x971f, 0x1b2f, 0x31c7,
780 0xf7be, 0xffff, 0xffff, 0xffff, 0xffff, 0xffdf, 0x4a69, 0x01c9,
781 0x66df, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
782 0xf7ff, 0xe7df, 0xd7bf, 0xc79f, 0x971f, 0x0a8c, 0x3a08, 0xf7be,
783 0xffff, 0xffff, 0xffdf, 0x4249, 0x01e9, 0x7eff, 0xffff, 0xffff,
784 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xefdf, 0xdfbf, 0xcf9f,
785 0xbf7f, 0xaf5f, 0x9f5f, 0x5ebf, 0x020a, 0x4249, 0xffdf, 0xffff,
786 0x4a69, 0x01c9, 0x263f, 0x871f, 0x8f1f, 0x8f1f, 0x973f, 0x9f3f,
787 0x9f3f, 0x9f3f, 0x973f, 0x971f, 0x8f1f, 0x86ff, 0x7eff, 0x76ff,
788 0x66df, 0x5ebf, 0x1e3f, 0x09c9, 0x528a, 0xffff, 0x8430, 0x0147,
789 0x05de, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f, 0x061f,
790 0x05be, 0x0376, 0x0376, 0x0376, 0x1438, 0x665e, 0x7ebe, 0x9f1f,
791 0xb75f, 0x224b, 0x73af, 0xffff, 0xffff, 0x31e7, 0x0371, 0x05de,
792 0x05ff, 0x0e3f, 0x871f, 0x061f, 0x061f, 0x061f, 0x05be, 0x0376,
793 0x0376, 0x0376, 0x2d5c, 0x66df, 0x7eff, 0x973f, 0x4cf7, 0x2165,
794 0xffdf, 0xffff, 0xffff, 0xdefb, 0x0862, 0x04fa, 0x05be, 0x86ff,
795 0xc79f, 0x1e5f, 0x061f, 0x061f, 0x05be, 0x0376, 0x0376, 0x0376,
796 0x2e3f, 0x4ebf, 0x66df, 0x5e3d, 0x0021, 0xce79, 0xffff, 0xffff,
797 0xffff, 0xffff, 0xa514, 0x00a3, 0x563d, 0xcf9f, 0xbf9f, 0x5e9f,
798 0x061f, 0x061f, 0x05be, 0x0376, 0x0376, 0x0419, 0x1e5f, 0x367f,
799 0x467f, 0x11e9, 0x7c10, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
800 0xffff, 0x4a8a, 0x2b50, 0xc77f, 0xbf7f, 0x971f, 0x05be, 0x05ff,
801 0x05be, 0x0376, 0x0376, 0x04fb, 0x063f, 0x1e5f, 0x1456, 0x2986,
802 0xffdf, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d,
803 0x10c3, 0x5dba, 0xb77f, 0xa75f, 0x1dbd, 0x059d, 0x059d, 0x0376,
804 0x0376, 0x05de, 0x061f, 0x057d, 0x0041, 0xd6ba, 0xffff, 0xffff,
805 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbdd7, 0x0041,
806 0x86de, 0xa75f, 0x4e3e, 0x055c, 0x055d, 0x0376, 0x0418, 0x061f,
807 0x05ff, 0x0188, 0x8c51, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
808 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6b6d, 0x1a4b, 0x971f,
809 0x7edf, 0x051b, 0x053c, 0x0376, 0x04fb, 0x061f, 0x03f5, 0x31c7,
810 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
811 0xffff, 0xffff, 0xffff, 0xf7be, 0x2145, 0x3cd7, 0x8f1f, 0x153b,
812 0x051b, 0x0376, 0x05de, 0x055c, 0x0041, 0xdedb, 0xffff, 0xffff,
813 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
814 0xffff, 0xffff, 0xce79, 0x0021, 0x5e3d, 0x3ddc, 0x04db, 0x03f8,
815 0x05ff, 0x0147, 0x94b2, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
816 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
817 0xffff, 0x8c51, 0x0967, 0x5e5e, 0x049a, 0x04db, 0x03b4, 0x3a08,
818 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
819 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
820 0x39e8, 0x23d3, 0x14fa, 0x04da, 0x0862, 0xe71c, 0xffff, 0xffff,
821 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
822 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xe71c, 0x0862,
823 0x0bf5, 0x0105, 0x9cf3, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
824 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
825 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xa514, 0x0000, 0x4249,
826 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
827 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
828 0xffff, 0xffff, 0xffff, 0xffff, 0x6b4d, 0xe73c, 0xffff, 0xffff,
829 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
830 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
831 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
832 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
833 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
834 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
835 0xffff, 0xffff, 0xffff, 0xffff},
836 /* orange jewel */
837 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
838 0xf7be, 0x8c71, 0x20e3, 0x632c, 0xe71c, 0xffff, 0xffff, 0xffff,
839 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
840 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x8c51, 0x1082, 0x20e1,
841 0x9304, 0x4100, 0x0020, 0x632c, 0xdefb, 0xffff, 0xffff, 0xffff,
842 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
843 0xf79e, 0x8430, 0x1081, 0x2902, 0xbcea, 0xef32, 0xcc67, 0xa9e0,
844 0xa220, 0x4100, 0x0020, 0x630c, 0xdefb, 0xffff, 0xffff, 0xffff,
845 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0x7bef, 0x1061, 0x3122,
846 0xbd0a, 0xef52, 0xef73, 0xef73, 0xcc46, 0xa9e0, 0xa9e0, 0xa9e0,
847 0xa220, 0x4100, 0x0020, 0x630c, 0xdefb, 0xffff, 0xffff, 0xffff,
848 0xef7d, 0x7bcf, 0x0861, 0x3142, 0xc52a, 0xef52, 0xef73, 0xef73,
849 0xef73, 0xef73, 0xcc26, 0xa9e0, 0xa9e0, 0xa9e0, 0xb240, 0xa9c0,
850 0xb2c0, 0x59a0, 0x0020, 0x630b, 0xdefb, 0xffff, 0x18a2, 0x3963,
851 0xc54b, 0xef53, 0xef73, 0xef73, 0xef73, 0xef73, 0xef11, 0xdce7,
852 0xcb20, 0xc2c0, 0xb240, 0xa9e0, 0xb1e0, 0xb1e0, 0xd3c0, 0xecc0,
853 0xd420, 0x59c0, 0x0020, 0xffff, 0x0861, 0xa342, 0xe64d, 0xef73,
854 0xef73, 0xef73, 0xef11, 0xe506, 0xd360, 0xc2c0, 0xba60, 0xb200,
855 0xb220, 0xc2a0, 0xba60, 0xc2e0, 0xecc0, 0xecc0, 0xecc0, 0xd420,
856 0x0000, 0xffff, 0x0841, 0x9aa0, 0xdbc0, 0xdca4, 0xee6e, 0xe506,
857 0xd3a0, 0xcb40, 0xc2e0, 0xba60, 0xb200, 0xa9e0, 0xa9e0, 0xa9e0,
858 0xb200, 0xc2c0, 0xdbe0, 0xd3a0, 0xcb80, 0xbb20, 0x0020, 0xffff,
859 0x0841, 0x9aa0, 0xdbc0, 0xdbc0, 0xdbc0, 0xdba0, 0xcb40, 0xc2e0,
860 0xba80, 0xb200, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0,
861 0xb260, 0x99a0, 0x99a0, 0x9a00, 0x0020, 0xffff, 0x0840, 0x9ac0,
862 0xdbc0, 0xdbc0, 0xdbc0, 0xcb40, 0xc2e0, 0xba80, 0xb220, 0xa9e0,
863 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xb260, 0x99a0,
864 0x99a0, 0x99e0, 0x0020, 0xffff, 0x0820, 0x9ac0, 0xdbc0, 0xdbc0,
865 0xdbc0, 0xc2e0, 0xba80, 0xb220, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0,
866 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xb260, 0x99a0, 0x99a0, 0x99e0,
867 0x0840, 0xffff, 0x0020, 0x9ac0, 0xdbc0, 0xdbc0, 0xdba0, 0xba80,
868 0xb220, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0,
869 0xa9e0, 0xa9e0, 0xb260, 0x99a0, 0x99a0, 0x99e0, 0x0840, 0xffff,
870 0x0020, 0xa2c0, 0xdbc0, 0xdbc0, 0xd3a0, 0xb220, 0xa9e0, 0xa9e0,
871 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0,
872 0xb260, 0x99a0, 0x99a0, 0x99e0, 0x0841, 0xffff, 0x0020, 0xa2c0,
873 0xdbc0, 0xd3a0, 0xc2c0, 0xbaa0, 0xb200, 0xa9e0, 0xa9e0, 0xa9e0,
874 0xa9e0, 0xa9e0, 0xa9e0, 0xa9e0, 0xb200, 0xc2c0, 0xba60, 0xb220,
875 0xba80, 0xaa80, 0x0841, 0xffff, 0x0000, 0xa2a0, 0xba80, 0xa9e0,
876 0xa9c0, 0xa9c0, 0xb240, 0xbaa0, 0xb200, 0xa9e0, 0xa9e0, 0xa9e0,
877 0xb200, 0xc2e0, 0xcb40, 0xc2e0, 0xba60, 0xb200, 0xb200, 0xaa60,
878 0x0861, 0xffff, 0x1081, 0x28c0, 0x9a00, 0xa9e0, 0xa9c0, 0xa9c0,
879 0xa9c0, 0xa9c0, 0xb260, 0xbaa0, 0xb200, 0xc2e0, 0xdc20, 0xdc20,
880 0xd3a0, 0xcb40, 0xc2c0, 0xba60, 0xa220, 0x30e0, 0x18a2, 0xffff,
881 0xf79e, 0x8410, 0x1061, 0x28c0, 0x9a00, 0xa9e0, 0xa9c0, 0xa9c0,
882 0xa9c0, 0xa9c0, 0xcb20, 0xe420, 0xeca0, 0xe460, 0xdc00, 0xd380,
883 0xb2e0, 0x30e0, 0x0841, 0x7bcf, 0xef5d, 0xffff, 0xffff, 0xffff,
884 0xf79e, 0x8410, 0x1081, 0x28a0, 0x9a00, 0xa9e0, 0xa9c0, 0xa9c0,
885 0xcb60, 0xdbe0, 0xe440, 0xeca0, 0xbb80, 0x3100, 0x0841, 0x7bcf,
886 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
887 0xf79e, 0x8430, 0x1081, 0x28a0, 0x9a00, 0xaa00, 0xdbc0, 0xd380,
888 0xbb40, 0x3100, 0x0841, 0x7bcf, 0xef5d, 0xffff, 0xffff, 0xffff,
889 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
890 0xf79e, 0x8430, 0x1081, 0x2080, 0x69e0, 0x28c0, 0x0841, 0x7bcf,
891 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
892 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
893 0xf79e, 0x8c51, 0x20e3, 0x7bcf, 0xef5d, 0xffff, 0xffff, 0xffff,
894 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
895 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
896 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
897 0xffff, 0xffff, 0xffff, 0xffff},
898 /* purple jewel */
899 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
900 0xffff, 0xffff, 0x8410, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
901 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
902 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618,
903 0x0000, 0xc618, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
904 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
905 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x39e7, 0x0000, 0x39e7,
906 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
907 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
908 0xffff, 0xffff, 0xc618, 0x0000, 0xa0b4, 0x0000, 0xc618, 0xffff,
909 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
910 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
911 0x39e7, 0x70ee, 0xc8b9, 0x580b, 0x39e7, 0xffff, 0xffff, 0xffff,
912 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
913 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618, 0x0000, 0xe25c,
914 0xc0b8, 0xa014, 0x0000, 0xc618, 0xffff, 0xffff, 0xffff, 0xffff,
915 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
916 0xffff, 0xffff, 0xffff, 0x39e7, 0x710e, 0xf2de, 0xc0b8, 0xa014,
917 0x500a, 0x39e7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
918 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
919 0xc618, 0x0000, 0xe25c, 0xf2de, 0xb8b8, 0x9813, 0x8812, 0x0000,
920 0xc618, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
921 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x39e7, 0x710e,
922 0xf2de, 0xf29e, 0xb056, 0x9013, 0x8811, 0x4809, 0x39e7, 0xffff,
923 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
924 0xffff, 0xffff, 0xffff, 0xc618, 0x0000, 0xe25c, 0xf2de, 0xd15a,
925 0xb036, 0xa014, 0x8010, 0x780f, 0x0000, 0xc618, 0xffff, 0xffff,
926 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
927 0xffff, 0x39e7, 0x710e, 0xf2de, 0xea7d, 0xb036, 0xb036, 0xb036,
928 0x8010, 0x680e, 0x4809, 0x39e7, 0xffff, 0xffff, 0xffff, 0xffff,
929 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618, 0x0000,
930 0xe25c, 0xf2de, 0xc939, 0xb036, 0xb036, 0xb036, 0x9813, 0x700f,
931 0x8010, 0x0000, 0xc618, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
932 0xffff, 0xffff, 0xffff, 0xffff, 0x39e7, 0x710e, 0xf2de, 0xea5d,
933 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0x8010, 0x8811, 0x500a,
934 0x39e7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
935 0xffff, 0xc618, 0x0000, 0xe25c, 0xf2de, 0xc0f9, 0xb036, 0xb036,
936 0xb036, 0xb036, 0xb036, 0xa014, 0x8812, 0x9013, 0x0000, 0xc618,
937 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x39e7,
938 0x710e, 0xf2de, 0xe23c, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036,
939 0xb036, 0xb036, 0x9813, 0xa015, 0x500a, 0x39e7, 0xffff, 0xffff,
940 0xffff, 0xffff, 0xffff, 0xffff, 0xc618, 0x0000, 0xe25c, 0xf2de,
941 0xc0d8, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036,
942 0xb016, 0xa816, 0xa815, 0x0000, 0xc618, 0xffff, 0xffff, 0xffff,
943 0xffff, 0xffff, 0x39e7, 0x710e, 0xf2de, 0xe21c, 0xb036, 0xb036,
944 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0xb036, 0xb016,
945 0xb818, 0x600c, 0x39e7, 0xffff, 0xffff, 0xffff, 0xffff, 0xc618,
946 0x0000, 0xe25c, 0xf2de, 0xb897, 0xa835, 0xa835, 0xa836, 0xb036,
947 0xb036, 0xb036, 0xb837, 0xb837, 0xb837, 0xb817, 0xc819, 0xc819,
948 0x0000, 0xc618, 0xffff, 0xffff, 0xffff, 0x39e7, 0x710e, 0xd1da,
949 0x7830, 0x680e, 0x680e, 0x680e, 0x7810, 0x9012, 0xa014, 0xb817,
950 0xc819, 0xd01a, 0xd01a, 0xd01a, 0xc819, 0xd01a, 0x600c, 0x39e7,
951 0xffff, 0xffff, 0xc618, 0x0000, 0x788f, 0x700f, 0x700f, 0x700f,
952 0x700f, 0x700f, 0x700f, 0x8010, 0x9012, 0x9813, 0xa815, 0xb817,
953 0xb817, 0xb817, 0xb817, 0xb817, 0x9012, 0x0000, 0xc618, 0xffff,
954 0x4208, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
955 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
956 0x0000, 0x0000, 0x0000, 0x0000, 0x4208, 0xffff, 0xffff, 0xffff,
957 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
958 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
959 0xffff, 0xffff, 0xffff, 0xffff},
960 /* red jewel */
961 {0xffff, 0xffff, 0xce59, 0x1061, 0x0000, 0x0000, 0x0000, 0x0000,
962 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
963 0x0000, 0x0841, 0xc618, 0xffff, 0xffff, 0xffff, 0xffff, 0xce59,
964 0x0861, 0x1020, 0xa000, 0x9800, 0x9000, 0x9020, 0x8820, 0x8020,
965 0x7820, 0x7820, 0x7020, 0x7020, 0x6840, 0x6840, 0x6040, 0x1800,
966 0x0841, 0xc618, 0xffff, 0xffff, 0xc638, 0x0841, 0x1020, 0x9020,
967 0xf800, 0xf000, 0xd800, 0xc820, 0xb020, 0xa040, 0x9040, 0x7860,
968 0x7860, 0x7860, 0x7860, 0x7860, 0x7860, 0x7840, 0x1820, 0x0841,
969 0xc618, 0xffff, 0x0841, 0x1800, 0x9820, 0xb820, 0xf800, 0xf800,
970 0xf000, 0xe000, 0xc820, 0xb820, 0xa840, 0x9040, 0x8060, 0x8060,
971 0x8060, 0x7860, 0x7860, 0x9840, 0xa020, 0x2000, 0x0841, 0xffff,
972 0x0000, 0x9820, 0xe040, 0xe040, 0xe1a8, 0xea4b, 0xf24b, 0xf24b,
973 0xea4b, 0xe26b, 0xc966, 0xb040, 0xc081, 0xb881, 0xb081, 0xb081,
974 0xb881, 0xe800, 0xe800, 0xa800, 0x0000, 0xffff, 0x0000, 0xa020,
975 0xe040, 0xe040, 0xea09, 0xf2ee, 0xeaee, 0xeaee, 0xe2ee, 0xdaee,
976 0xc1c8, 0xa040, 0xc0a2, 0xc0a2, 0xc0a2, 0xc882, 0xd082, 0xd800,
977 0xd800, 0xa000, 0x0000, 0xffff, 0x0000, 0xa020, 0xe040, 0xe040,
978 0xf209, 0xeaee, 0xeaee, 0xe2ee, 0xdaee, 0xdaee, 0xb9c8, 0x9860,
979 0xc0a2, 0xc0a2, 0xc882, 0xd082, 0xd882, 0xd020, 0xd020, 0xa000,
980 0x0000, 0xffff, 0x0000, 0xa820, 0xe040, 0xe040, 0xf209, 0xeaee,
981 0xe2ee, 0xdaee, 0xdaee, 0xd30e, 0xb1c8, 0x8860, 0xc0a2, 0xc882,
982 0xd082, 0xd882, 0xd882, 0xc020, 0xc020, 0xa000, 0x0000, 0xffff,
983 0x0000, 0xa820, 0xe040, 0xe040, 0xe209, 0xe2ee, 0xdaee, 0xdaee,
984 0xd30e, 0xcb0e, 0xa1c8, 0x9060, 0xc882, 0xd082, 0xd882, 0xd882,
985 0xe082, 0xb820, 0xb020, 0x9020, 0x0000, 0xffff, 0x0000, 0xb020,
986 0xe040, 0xe040, 0xda09, 0xdaee, 0xd2ee, 0xd30e, 0xcb0e, 0xc30e,
987 0xb1c8, 0xa040, 0xd082, 0xd882, 0xd882, 0xe082, 0xe882, 0xa820,
988 0xa840, 0x8820, 0x0000, 0xffff, 0x0000, 0xa820, 0xe040, 0xe040,
989 0xc945, 0xc1c8, 0xb9c8, 0xb1c8, 0xa1c8, 0xb1c8, 0xb9c7, 0xc1c8,
990 0xd966, 0xd966, 0xe166, 0xe966, 0xf166, 0x9840, 0x9840, 0x7820,
991 0x0000, 0xffff, 0x0000, 0xa820, 0xe040, 0xe040, 0xa840, 0xa040,
992 0x9060, 0x8060, 0x9060, 0xa040, 0xc9e9, 0xe3d3, 0xebd3, 0xebd3,
993 0xebd3, 0xebd3, 0xebd3, 0x9040, 0x8840, 0x7020, 0x0000, 0xffff,
994 0x0000, 0xa020, 0xe040, 0xe040, 0xb061, 0xb882, 0xb882, 0xc082,
995 0xc882, 0xd082, 0xd9a8, 0xebd3, 0xebd3, 0xebd3, 0xebd3, 0xebd3,
996 0xebd3, 0x8060, 0x7860, 0x6840, 0x0000, 0xffff, 0x0000, 0xa020,
997 0xe040, 0xe040, 0xa881, 0xb882, 0xc082, 0xc882, 0xd082, 0xd882,
998 0xe1a8, 0xebd3, 0xebd3, 0xebd3, 0xebd3, 0xebd3, 0xebd3, 0x8840,
999 0x8840, 0x6820, 0x0000, 0xffff, 0x0000, 0x9820, 0xe040, 0xe040,
1000 0xa081, 0xc082, 0xc882, 0xd082, 0xd882, 0xe062, 0xe9a8, 0xebd3,
1001 0xebd3, 0xebd3, 0xebd3, 0xebd3, 0xe3d3, 0x9840, 0x9840, 0x6820,
1002 0x0000, 0xffff, 0x0000, 0x9820, 0xe040, 0xe040, 0xa861, 0xc882,
1003 0xd082, 0xd882, 0xe062, 0xe862, 0xf1a8, 0xebd3, 0xebd3, 0xebd3,
1004 0xebd3, 0xe3d3, 0xe3d3, 0xa040, 0xa840, 0x7020, 0x0000, 0xffff,
1005 0x0000, 0x9020, 0xe040, 0xe040, 0xb861, 0xd082, 0xd882, 0xe062,
1006 0xe862, 0xf062, 0xf1a8, 0xebd3, 0xebd3, 0xebd3, 0xe3d3, 0xe3d3,
1007 0xe3d3, 0xb040, 0xb020, 0x7820, 0x0000, 0xffff, 0x1082, 0x1020,
1008 0x8040, 0xa040, 0xf800, 0xf800, 0xf800, 0xd020, 0xa840, 0x8060,
1009 0x7860, 0x7860, 0x7860, 0x7860, 0x7860, 0x7860, 0x7860, 0x8060,
1010 0x8040, 0x1000, 0x1061, 0xffff, 0xce79, 0x1061, 0x1020, 0x9820,
1011 0xf800, 0xf800, 0xf800, 0xe800, 0xc020, 0x9040, 0x7860, 0x7860,
1012 0x7860, 0x7860, 0x7860, 0x7860, 0x7860, 0x8040, 0x1800, 0x0861,
1013 0xce59, 0xffff, 0xffff, 0xce79, 0x1061, 0x1800, 0xb000, 0xb800,
1014 0xb800, 0xb800, 0xa000, 0x8820, 0x7020, 0x6840, 0x6840, 0x6040,
1015 0x6040, 0x6040, 0x6040, 0x1800, 0x0841, 0xce59, 0xffff, 0xffff,
1016 0xffff, 0xffff, 0xce79, 0x1082, 0x0000, 0x0000, 0x0000, 0x0000,
1017 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1018 0x0000, 0x0841, 0xc638, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1019 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1020 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1021 0xffff, 0xffff, 0xffff, 0xffff},
1022 /* yellow jewel */
1023 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1024 0xffff, 0xdefb, 0x39e7, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff,
1025 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1026 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x18e3,
1027 0x18e0, 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1028 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1029 0xffff, 0xffff, 0xffff, 0xdefb, 0x18e3, 0x6324, 0xad46, 0x39c0,
1030 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1031 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1032 0xdefb, 0x18e3, 0x7385, 0xdeed, 0xb587, 0x83e0, 0x39c0, 0x18e3,
1033 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1034 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x18e3, 0x7385,
1035 0xe74d, 0xe72d, 0xbde7, 0x8c40, 0x7be0, 0x39c0, 0x18e3, 0xdefb,
1036 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1037 0xffff, 0xffff, 0xdefb, 0x18c3, 0x6b45, 0xdf0d, 0xe72d, 0xe74d,
1038 0xc647, 0x9cc0, 0x8c40, 0x7be0, 0x39c0, 0x18e3, 0xdefb, 0xffff,
1039 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb,
1040 0x18e3, 0x6b45, 0xe74e, 0xef6e, 0xef6e, 0xef6e, 0xdf28, 0xd6a1,
1041 0xa520, 0x8c40, 0x7be0, 0x39c0, 0x18e3, 0xdefb, 0xffff, 0xffff,
1042 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x18e3, 0x73a5, 0xdf0d,
1043 0xef6e, 0xef8e, 0xef8e, 0xef8e, 0xe748, 0xc620, 0xad40, 0x9cc0,
1044 0x8c40, 0x9480, 0x6320, 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff,
1045 0xffff, 0xdefb, 0x18e3, 0x73a5, 0xe74d, 0xe72d, 0xef6e, 0xef8e,
1046 0xef8e, 0xef8e, 0xb5c4, 0xad60, 0xbde0, 0xad40, 0xad40, 0xd680,
1047 0xd680, 0x6b40, 0x18e3, 0xdefb, 0xffff, 0xffff, 0xdefb, 0x18e3,
1048 0x6b65, 0xdf0d, 0xe72d, 0xe74d, 0xef6e, 0xef8e, 0xef8e, 0xb5c4,
1049 0x9480, 0x9480, 0xad60, 0xc620, 0xdee0, 0xdee0, 0xd6a0, 0xd6a0,
1050 0x6b40, 0x18e3, 0xdefb, 0xffff, 0x39c7, 0x2101, 0xad47, 0xb5a7,
1051 0xbde7, 0xce47, 0xe728, 0xe748, 0xbde4, 0x9480, 0x9480, 0x9480,
1052 0xa520, 0xd6c0, 0xdee0, 0xdec0, 0xd6c0, 0xd6a0, 0xce80, 0x3180,
1053 0x39e7, 0xffff, 0xd6ba, 0x10a2, 0x39c0, 0x7bc0, 0x8c40, 0x9cc0,
1054 0xd6c1, 0xc620, 0xad60, 0x9480, 0x9480, 0x9ce0, 0xd6a0, 0xdee0,
1055 0xdf00, 0xe700, 0xdf00, 0xdec0, 0x6b40, 0x18e3, 0xdefb, 0xffff,
1056 0xffff, 0xdedb, 0x10a2, 0x39c0, 0x7bc0, 0x8c40, 0xad40, 0xad60,
1057 0xbde0, 0xad60, 0xa500, 0xd6a0, 0xd6a0, 0xd6c0, 0xdee0, 0xdf00,
1058 0xe720, 0x7380, 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff,
1059 0xdedb, 0x10a2, 0x39c0, 0x7bc0, 0x8c40, 0x9cc0, 0xad40, 0xbde0,
1060 0xbde0, 0xce60, 0xd6c0, 0xd6a0, 0xd6c0, 0xdec0, 0x7380, 0x18e3,
1061 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb,
1062 0x18c2, 0x39c0, 0x7bc0, 0x8c40, 0xa500, 0xbdc0, 0xbde0, 0xbde0,
1063 0xce60, 0xd6c0, 0xd680, 0x6b40, 0x18e3, 0xdefb, 0xffff, 0xffff,
1064 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdedb, 0x18c2,
1065 0x39c0, 0x8c20, 0xad60, 0xb5a0, 0xbdc0, 0xbde0, 0xbde0, 0xce60,
1066 0x6320, 0x18c3, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1067 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x18c2, 0x5ac0,
1068 0xad60, 0xb580, 0xb5a0, 0xbdc0, 0xbde0, 0x6300, 0x18e3, 0xdefb,
1069 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1070 0xffff, 0xffff, 0xffff, 0xffff, 0xdefb, 0x18c2, 0x5ac0, 0xad60,
1071 0xb580, 0xb5a0, 0x6300, 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff,
1072 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1073 0xffff, 0xffff, 0xffff, 0xdefb, 0x18c2, 0x5ae0, 0xad60, 0x5ae0,
1074 0x18e3, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1075 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1076 0xffff, 0xffff, 0xdefb, 0x18e2, 0x2120, 0x18e3, 0xdefb, 0xffff,
1077 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1078 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1079 0xffff, 0xdefb, 0x39e7, 0xdefb, 0xffff, 0xffff, 0xffff, 0xffff,
1080 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1081 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1082 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1083 0xffff, 0xffff, 0xffff, 0xffff},
1084 /* green jewel */
1085 {0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x31c6, 0x0000, 0x0000,
1086 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2124,
1087 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1088 0xffff, 0xf79e, 0x31c6, 0x3aa6, 0x5667, 0x4645, 0x4645, 0x4645,
1089 0x4645, 0x4645, 0x4645, 0x4645, 0x4645, 0x3305, 0x2144, 0xef5d,
1090 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x31c6,
1091 0x3aa6, 0xd7b9, 0x6749, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25,
1092 0x4f25, 0x4f25, 0x4f25, 0x774c, 0x3b06, 0x2144, 0xef5d, 0xffff,
1093 0xffff, 0xffff, 0xffff, 0xf79e, 0x31c6, 0x3aa6, 0xd7b9, 0xdfda,
1094 0x5f48, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25,
1095 0x4f25, 0x5f48, 0x874d, 0x3b06, 0x2164, 0xef7d, 0xffff, 0xffff,
1096 0xf79e, 0x31c6, 0x3aa6, 0xd7b9, 0xdfda, 0xbfb5, 0x5747, 0x4f25,
1097 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25,
1098 0x674a, 0x8f6f, 0x3b06, 0x2965, 0xef7d, 0xffff, 0x31c6, 0x3aa6,
1099 0xd7b9, 0xdfda, 0xbfb6, 0x9790, 0x5726, 0x4f25, 0x4f25, 0x4f25,
1100 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x776b,
1101 0x9771, 0x3b07, 0x2985, 0xffff, 0x0000, 0x5647, 0x6749, 0x5f48,
1102 0x5f47, 0x5726, 0x1601, 0x0dc0, 0x0dc0, 0x0da0, 0x0d80, 0x0d60,
1103 0x0d40, 0x0d00, 0x0d01, 0x1601, 0x0dc0, 0x0da0, 0x1561, 0x2542,
1104 0x0000, 0xffff, 0x0000, 0x4644, 0x4f25, 0x4f25, 0x4f25, 0x4f25,
1105 0x0dc0, 0x05a0, 0x0560, 0x0540, 0x0520, 0x0500, 0x04c0, 0x04a0,
1106 0x04a0, 0x0dc0, 0x05a0, 0x0540, 0x04e0, 0x0ce0, 0x0000, 0xffff,
1107 0x0000, 0x3e24, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x0dc0, 0x0580,
1108 0x0540, 0x0520, 0x0500, 0x04c0, 0x04a0, 0x0480, 0x0480, 0x0dc0,
1109 0x0560, 0x0500, 0x04c0, 0x0cc0, 0x0000, 0xffff, 0x0020, 0x3e24,
1110 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x0da0, 0x0540, 0x0520, 0x0500,
1111 0x04c0, 0x04a0, 0x0480, 0x0460, 0x0460, 0x0dc0, 0x0540, 0x04e0,
1112 0x0480, 0x0c80, 0x0000, 0xffff, 0x0020, 0x3e04, 0x4f25, 0x4f25,
1113 0x4f25, 0x4f25, 0x0d80, 0x0520, 0x0500, 0x04e0, 0x04a0, 0x0480,
1114 0x0460, 0x0420, 0x0440, 0x0d80, 0x0500, 0x04a0, 0x0440, 0x0c60,
1115 0x0000, 0xffff, 0x0040, 0x3e04, 0x4f25, 0x4f25, 0x4f25, 0x4f25,
1116 0x0d60, 0x0500, 0x04e0, 0x04a0, 0x0480, 0x0460, 0x0420, 0x0400,
1117 0x0400, 0x0d60, 0x04e0, 0x0480, 0x0420, 0x0c40, 0x0000, 0xffff,
1118 0x0040, 0x3e04, 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x0d40, 0x04e0,
1119 0x04a0, 0x0480, 0x0460, 0x0440, 0x0400, 0x03e0, 0x03e0, 0x0d40,
1120 0x04a0, 0x0440, 0x03e0, 0x0c20, 0x0000, 0xffff, 0x0841, 0x3de4,
1121 0x4f25, 0x4f25, 0x4f25, 0x4f25, 0x0d20, 0x04a0, 0x0480, 0x0460,
1122 0x0440, 0x0400, 0x03e0, 0x03c0, 0x03c0, 0x0d00, 0x0460, 0x0420,
1123 0x03c0, 0x0be0, 0x0000, 0xffff, 0x0861, 0x45c5, 0x4f26, 0x4f25,
1124 0x4f25, 0x4f25, 0x1d61, 0x0d01, 0x0ce1, 0x0cc1, 0x0ca1, 0x0c81,
1125 0x0c61, 0x0c41, 0x1441, 0x1561, 0x0cc1, 0x1481, 0x1c62, 0x2483,
1126 0x0000, 0xffff, 0x4248, 0x2a25, 0x872e, 0x6f4a, 0x4f25, 0x4f25,
1127 0x15e1, 0x0dc0, 0x0dc0, 0x0dc0, 0x0d60, 0x0d40, 0x0d00, 0x04c0,
1128 0x0ca0, 0x4f25, 0x5746, 0x776b, 0x8f4f, 0x3265, 0x31c6, 0xffff,
1129 0xf7be, 0x3a07, 0x3265, 0x8f4f, 0x6f4a, 0x4f25, 0x0dc0, 0x05a0,
1130 0x05a0, 0x0560, 0x0520, 0x04e0, 0x04a0, 0x0460, 0x0440, 0x4f25,
1131 0x6f4a, 0x874e, 0x3285, 0x31a6, 0xf79e, 0xffff, 0xffff, 0xf7be,
1132 0x39e6, 0x3286, 0x9750, 0x776b, 0x0dc0, 0x05a0, 0x0560, 0x0520,
1133 0x04e0, 0x04a0, 0x0440, 0x0400, 0x0400, 0x6749, 0x7f4d, 0x32a5,
1134 0x2985, 0xf79e, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x31c6,
1135 0x3aa6, 0x9771, 0x15c1, 0x0560, 0x0520, 0x04e0, 0x04a0, 0x0440,
1136 0x0400, 0x03c0, 0x03c0, 0x7f4c, 0x32c5, 0x2965, 0xef7d, 0xffff,
1137 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xf79e, 0x31a5, 0x3ae7,
1138 0x25a2, 0x1540, 0x0d20, 0x0ce0, 0x0ca0, 0x0c80, 0x0c40, 0x0c00,
1139 0x1421, 0x32e5, 0x2144, 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff,
1140 0xffff, 0xffff, 0xffff, 0xffff, 0xef7d, 0x2985, 0x0000, 0x0000,
1141 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2144,
1142 0xef5d, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1143 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1144 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1145 0xffff, 0xffff, 0xffff, 0xffff}
1146};
1147
1148/* use 16x16 tiles */
1149#elif (LCD_HEIGHT == 132) && (LCD_WIDTH == 176) && \
1150 (LCD_PIXELFORMAT == RGB565SWAPPED)
1151/* size of a tile */
1152#define TILE_WIDTH 16 114#define TILE_WIDTH 16
1153#define TILE_HEIGHT 16 115#define TILE_HEIGHT 16
1154
1155/* playboard offset from top */
1156#define YOFS 4 116#define YOFS 4
1157
1158/* number of high scores to save */
1159#define NUM_SCORES 10 117#define NUM_SCORES 10
1160 118
1161/* bitmaps for the jewels */ 119/* use 16x16 tiles (H100, iAudio X5, iPod 3G, iPod 4G grayscale) */
1162static unsigned short jewel[8][256] = { 120#elif (LCD_HEIGHT == 128) && (LCD_WIDTH == 160)
1163 /* empty */
1164 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1165 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1166 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1167 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1168 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1169 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1170 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1171 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1172 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1173 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1174 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1175 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1176 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1177 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1178 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1179 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1180 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1181 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1182 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1183 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1184 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1185 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1186 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1187 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1188 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1189 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1190 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1191 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1192 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1193 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1194 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1195 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1196 /* white jewel */
1197 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x5def, 0xae73, 0xe318,
1198 0xef7b, 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1199 0xffff, 0xffff, 0xffff, 0xfbde, 0x0c63, 0xa631, 0x14a5, 0x14a5,
1200 0xef7b, 0x8631, 0x2c63, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
1201 0xffff, 0xffff, 0x4d6b, 0x2842, 0x55ad, 0x79ce, 0x79ce, 0x34a5,
1202 0x9294, 0x9294, 0x518c, 0xe739, 0xae73, 0xffff, 0xffff, 0xffff,
1203 0xffff, 0xbad6, 0x494a, 0xdbde, 0xfbde, 0xfbde, 0xfbde, 0xf7bd,
1204 0xd39c, 0x34a5, 0x96b5, 0xf7bd, 0x2421, 0x1ce7, 0xffff, 0xffff,
1205 0xffff, 0xcb5a, 0x75ad, 0x3ce7, 0x3ce7, 0x3ce7, 0x3ce7, 0x59ce,
1206 0x34a5, 0xd39c, 0x14a5, 0x96b5, 0xae73, 0x6d6b, 0xffff, 0xffff,
1207 0x3ce7, 0x8631, 0x3ce7, 0x3ce7, 0x3ce7, 0x3ce7, 0x3ce7, 0xbad6,
1208 0xb6b5, 0x34a5, 0xb294, 0x55ad, 0x96b5, 0x4529, 0x7def, 0xffff,
1209 0xae73, 0xf39c, 0x3ce7, 0x1ce7, 0xfbde, 0xfbde, 0x1ce7, 0x59ce,
1210 0x18c6, 0x96b5, 0x34a5, 0x34a5, 0xb6b5, 0x918c, 0xef7b, 0xffff,
1211 0xc318, 0x38c6, 0x59ce, 0xf7bd, 0x18c6, 0x18c6, 0xf7bd, 0xf7bd,
1212 0x59ce, 0x79ce, 0x79ce, 0x79ce, 0x95b5, 0x95ad, 0xc318, 0xffff,
1213 0x8e73, 0x2c63, 0x14a5, 0xf39c, 0x75ad, 0x96b5, 0x14a5, 0xd7bd,
1214 0x1ce7, 0x5def, 0x5def, 0xfbde, 0xd6b5, 0x6d6b, 0x4d6b, 0xffff,
1215 0x5def, 0xe318, 0xf39c, 0x14a5, 0xb6b5, 0xd7bd, 0x34a5, 0xd7bd,
1216 0x1ce7, 0x5def, 0x5ce7, 0xdad6, 0x99ce, 0x0421, 0x1ce7, 0xffff,
1217 0xffff, 0x4d6b, 0x2c63, 0xd39c, 0x34a5, 0x34a5, 0xf39c, 0xf7bd,
1218 0x3ce7, 0x5def, 0xfbde, 0xdad6, 0xf7bd, 0xaa52, 0xffff, 0xffff,
1219 0xffff, 0x3ce7, 0x2421, 0x14a5, 0xd39c, 0xd39c, 0x14a5, 0x18c6,
1220 0x1ce7, 0xfbde, 0xdad6, 0xdad6, 0xeb5a, 0x9ad6, 0xffff, 0xffff,
1221 0xffff, 0xffff, 0x3084, 0x2421, 0x2c63, 0x34a5, 0x96b5, 0xf7bd,
1222 0x38c6, 0xbad6, 0x96b5, 0x694a, 0x4d6b, 0xffff, 0xffff, 0xffff,
1223 0xffff, 0xffff, 0xffff, 0x5def, 0xae73, 0xe318, 0xeb5a, 0x14a5,
1224 0xf39c, 0xe739, 0xeb5a, 0xdbde, 0xffff, 0xffff, 0xffff, 0xffff,
1225 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0x3084, 0xc318,
1226 0x2c63, 0x1ce7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1227 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1228 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1229 /* blue jewel */
1230 {0xffff, 0xffff, 0x9ef7, 0xc729, 0x6709, 0x8709, 0x8709, 0x8709,
1231 0x8709, 0x8709, 0x8709, 0x8709, 0x6619, 0x3ce7, 0xffff, 0xffff,
1232 0xffff, 0x7def, 0xa729, 0x7b2d, 0x7fbf, 0x9fcf, 0x9fd7, 0xbfdf,
1233 0xbfe7, 0xdfef, 0xfff7, 0xffff, 0x9e76, 0x6619, 0x3ce7, 0xffff,
1234 0x5def, 0x8621, 0xdc3d, 0xdfef, 0xffff, 0xffff, 0xffff, 0xffff,
1235 0xffff, 0xffff, 0xfff7, 0xbfdf, 0x9fcf, 0x1d3e, 0x6619, 0x3ce7,
1236 0xc731, 0xb804, 0xbf5e, 0xdf6e, 0xdf6e, 0xff76, 0xff76, 0xff7e,
1237 0xff86, 0xdf7e, 0xdf76, 0xbf6e, 0xbf66, 0x9f5e, 0x1a25, 0xa729,
1238 0x55a5, 0xce0a, 0xbe05, 0xde05, 0x3f1e, 0x3f16, 0x1f06, 0x1f06,
1239 0xf803, 0x7603, 0x7603, 0xbf66, 0x3f8f, 0x5faf, 0x1344, 0x34a5,
1240 0xffff, 0xec52, 0x7704, 0x9d05, 0x5faf, 0x9f5e, 0x1f06, 0x1f06,
1241 0xf803, 0x7603, 0x390c, 0xbf4e, 0xff6e, 0xdc55, 0x8a42, 0xffff,
1242 0xffff, 0x9ef7, 0x4619, 0x7d76, 0xbfd7, 0x1f97, 0xbe05, 0xff05,
1243 0xf803, 0x7603, 0x1c0d, 0x7f2e, 0x5e46, 0x8711, 0x7def, 0xffff,
1244 0xffff, 0xffff, 0x38c6, 0x8c2a, 0x7fc7, 0x7fbf, 0x9d15, 0x9d05,
1245 0xf803, 0x7603, 0xdf05, 0x3f16, 0x3013, 0xb6b5, 0xffff, 0xffff,
1246 0xffff, 0xffff, 0xffff, 0xf07b, 0xf74c, 0x7fb7, 0x1d4e, 0x3c05,
1247 0xf803, 0x1904, 0x1f06, 0xfa04, 0x0c5b, 0xffff, 0xffff, 0xffff,
1248 0xffff, 0xffff, 0xffff, 0xffff, 0xc729, 0x5d76, 0xbe7e, 0xda04,
1249 0xd803, 0xfc04, 0xbe05, 0x6619, 0x9ef7, 0xffff, 0xffff, 0xffff,
1250 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xa719, 0xdf86, 0xda14,
1251 0xd803, 0xde05, 0x8e0a, 0x38c6, 0xffff, 0xffff, 0xffff, 0xffff,
1252 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x14a5, 0x912b, 0x7b3d,
1253 0x5904, 0x9904, 0xaf6b, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1254 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xab4a, 0xd82c,
1255 0x9a04, 0x8621, 0xdfff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1256 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0x4619,
1257 0x8809, 0x9ad6, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1258 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x18c6,
1259 0x5184, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1260 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1261 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1262 /* orange jewel */
1263 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x9ef7, 0x0f84, 0xc218,
1264 0x4c6b, 0x3ce7, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1265 0xffff, 0xffff, 0xffff, 0x7def, 0xef83, 0x0321, 0x89a4, 0xe5c3,
1266 0x0092, 0xc120, 0x2c6b, 0x1ce7, 0xffff, 0xffff, 0xffff, 0xffff,
1267 0xffff, 0x7def, 0xce7b, 0x0321, 0xaaac, 0x32ef, 0x73ef, 0x06cc,
1268 0xe0a9, 0xe0a9, 0xe091, 0xc128, 0x0b63, 0xfbde, 0xffff, 0xffff,
1269 0xce7b, 0x2329, 0xcaac, 0x32ef, 0x73ef, 0x73ef, 0x53ef, 0x04cc,
1270 0x00b2, 0xe0a9, 0x20b2, 0x60cb, 0xa0bb, 0x2131, 0xea62, 0xffff,
1271 0xa118, 0x8add, 0x53ef, 0x73ef, 0x52ef, 0x48e5, 0x20cb, 0x20b2,
1272 0x20b2, 0x80ba, 0x80ba, 0xc0ec, 0xc0ec, 0xc0ec, 0xc120, 0xffff,
1273 0xc218, 0xc0db, 0x63dc, 0x27e5, 0x80d3, 0xc0c2, 0x40b2, 0xe0a9,
1274 0xe0a9, 0xe0a9, 0x20b2, 0x20cb, 0xe0c2, 0xc0ba, 0xe128, 0xffff,
1275 0xc118, 0xc0db, 0xc0db, 0x80d3, 0xc0c2, 0x40b2, 0xe0a9, 0xe0a9,
1276 0xe0a9, 0xe0a9, 0xe0a9, 0x60ba, 0xa099, 0xa099, 0xc120, 0xffff,
1277 0xa118, 0xc0db, 0xc0db, 0x40cb, 0x40b2, 0xe0a9, 0xe0a9, 0xe0a9,
1278 0xe0a9, 0xe0a9, 0xe0a9, 0x60ba, 0xa099, 0xa099, 0xc120, 0xffff,
1279 0xc118, 0xc0db, 0xc0db, 0x00cb, 0xe0a9, 0xe0a9, 0xe0a9, 0xe0a9,
1280 0xe0a9, 0xe0a9, 0xe0a9, 0x60ba, 0xa099, 0xa099, 0xc120, 0xffff,
1281 0xc118, 0xc0db, 0xa0d3, 0xc0c2, 0x20b2, 0xe0a9, 0xe0a9, 0xe0a9,
1282 0xe0a9, 0xe0a9, 0x20b2, 0xa0ba, 0x60ba, 0xa0ba, 0xc120, 0xffff,
1283 0x8110, 0xa0ba, 0xe0a9, 0xc0a9, 0x00aa, 0x80ba, 0x20b2, 0xe0a9,
1284 0x20b2, 0x00c3, 0x40cb, 0xa0c2, 0x00b2, 0x20b2, 0xa120, 0xffff,
1285 0x718c, 0xe228, 0xe089, 0xe0a9, 0xc0a9, 0xc0a9, 0x20b2, 0xc0c2,
1286 0x60e4, 0x40e4, 0xc0d3, 0x20cb, 0x4092, 0xa120, 0xce7b, 0xffff,
1287 0xffff, 0xbef7, 0x508c, 0xe228, 0xe081, 0x00aa, 0xc0a9, 0x20cb,
1288 0x20dc, 0xa0ec, 0x20ab, 0xc120, 0xae73, 0x5def, 0xffff, 0xffff,
1289 0xffff, 0xffff, 0xffff, 0xbef7, 0x508c, 0xe220, 0xe081, 0x20bb,
1290 0xc0a2, 0xe128, 0xae73, 0x5def, 0xffff, 0xffff, 0xffff, 0xffff,
1291 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xbef7, 0x308c, 0xc220,
1292 0xad73, 0x5def, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1293 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1294 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1295 /* purple jewel */
1296 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8e73,
1297 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1298 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd7bd, 0x0000,
1299 0xd7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1300 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6631, 0x9080,
1301 0x6631, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1302 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xd7bd, 0xeb50, 0xd9c8,
1303 0x4948, 0xd7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1304 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x6631, 0x1ad2, 0xb8c0,
1305 0x1398, 0x6631, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1306 0xffff, 0xffff, 0xffff, 0xffff, 0xd7bd, 0xea50, 0xdef2, 0xd8c0,
1307 0x1398, 0x4838, 0xd7bd, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1308 0xffff, 0xffff, 0xffff, 0xffff, 0x6739, 0x1ad2, 0x7dea, 0x36b0,
1309 0x1390, 0x1080, 0x6739, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1310 0xffff, 0xffff, 0xffff, 0xf7bd, 0xea50, 0xdef2, 0x19c9, 0x36b0,
1311 0x14a0, 0x0f70, 0x4738, 0xf7bd, 0xffff, 0xffff, 0xffff, 0xffff,
1312 0xffff, 0xffff, 0xffff, 0x6739, 0x1ad2, 0x5dea, 0x36b0, 0x36b0,
1313 0x36b0, 0x1078, 0x1078, 0x6739, 0xffff, 0xffff, 0xffff, 0xffff,
1314 0xffff, 0xffff, 0xf7bd, 0xea50, 0xdef2, 0xf8c0, 0x36b0, 0x36b0,
1315 0x36b0, 0x34a0, 0x1188, 0x4840, 0xf7bd, 0xffff, 0xffff, 0xffff,
1316 0xffff, 0xffff, 0x8739, 0x1ad2, 0x3ce2, 0x36b0, 0x36b0, 0x36b0,
1317 0x36b0, 0x36b0, 0x1498, 0x1398, 0x8739, 0xffff, 0xffff, 0xffff,
1318 0xffff, 0xf7bd, 0xea50, 0xdef2, 0xb8c0, 0x36b0, 0x36b0, 0x36b0,
1319 0x36b0, 0x36b0, 0x36b0, 0x18c0, 0x4948, 0xf7bd, 0xffff, 0xffff,
1320 0xffff, 0x8739, 0x1ad2, 0xbad1, 0x34a0, 0x35a0, 0x35a8, 0x36b0,
1321 0x37b8, 0x37b8, 0x37b8, 0x19c8, 0x17b8, 0x8739, 0xffff, 0xffff,
1322 0x18c6, 0xc948, 0x9398, 0x0e70, 0x0e68, 0x0e68, 0x1180, 0x1498,
1323 0x17b8, 0x1ad0, 0x1ad0, 0x1ad0, 0x19c8, 0x4948, 0x18c6, 0xffff,
1324 0xe739, 0x2210, 0x6420, 0x6420, 0x6420, 0x6420, 0x6420, 0x6420,
1325 0x6420, 0x6420, 0x6420, 0x6420, 0x6420, 0x2210, 0xe739, 0xffff,
1326 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1327 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1328 /* red jewel */
1329 {0xffff, 0x79ce, 0x8210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1330 0x0000, 0x0000, 0x0000, 0x0000, 0x8210, 0x79ce, 0xffff, 0xffff,
1331 0x18c6, 0x4108, 0x2070, 0x00e0, 0x20c8, 0x20b0, 0x4098, 0x6080,
1332 0x6080, 0x6080, 0x6078, 0x6078, 0x2050, 0x4108, 0x18c6, 0xffff,
1333 0x2000, 0x2078, 0x20c8, 0x00f0, 0x00e8, 0x00d0, 0x20b8, 0x40a0,
1334 0x6088, 0x6080, 0x6078, 0x6080, 0x20a8, 0x0088, 0x2000, 0xffff,
1335 0x0000, 0x40e0, 0x40e0, 0x8cf2, 0xeeea, 0xeee2, 0xeeda, 0xa7c1,
1336 0x61b0, 0xa2c0, 0xa2c0, 0x82c8, 0x20d8, 0x00d8, 0x0000, 0xffff,
1337 0x0000, 0x40e0, 0x40e0, 0x8cea, 0xeee2, 0xeeda, 0xeed2, 0xa7b1,
1338 0x81a0, 0x82c0, 0x82d0, 0x82d8, 0x20c8, 0x20c8, 0x0000, 0xffff,
1339 0x0000, 0x40e0, 0x40e0, 0x8ce2, 0xeeda, 0xeed2, 0x0ecb, 0xa7a1,
1340 0x61b0, 0x82d0, 0x82d8, 0x82e0, 0x20c0, 0x20b8, 0x0000, 0xffff,
1341 0x0000, 0x40e0, 0x40e0, 0x8cda, 0xeed2, 0x0ecb, 0x0ec3, 0xa7b1,
1342 0x61c0, 0x82d8, 0x82e0, 0x82e8, 0x40b0, 0x40a8, 0x0000, 0xffff,
1343 0x0000, 0x40e0, 0x40e0, 0x87b9, 0xc8b1, 0xc8a1, 0xc8b1, 0xa7c1,
1344 0x87d1, 0x66e1, 0x66e9, 0x66e9, 0x40a0, 0x4090, 0x0000, 0xffff,
1345 0x0000, 0x40e0, 0x40d8, 0x60a0, 0x6198, 0x61a8, 0x61b8, 0xc8d9,
1346 0xd3eb, 0xd3eb, 0xd3eb, 0xd3eb, 0x8088, 0x6080, 0x0000, 0xffff,
1347 0x0000, 0x40e0, 0x40d8, 0x81b0, 0x82c0, 0x82c8, 0x82d8, 0xa8e1,
1348 0xd3eb, 0xd3eb, 0xd3eb, 0xd3e3, 0x6098, 0x4090, 0x0000, 0xffff,
1349 0x0000, 0x40d8, 0x40d8, 0x81b8, 0x82c8, 0x82d8, 0x62e0, 0xa8f1,
1350 0xd3eb, 0xd3eb, 0xd3e3, 0xd3e3, 0x60a0, 0x40a0, 0x0000, 0xffff,
1351 0x0000, 0x40d8, 0x40d8, 0x61c8, 0x82d8, 0x62e0, 0x62f0, 0xa8e9,
1352 0xd3eb, 0xd3e3, 0xd3e3, 0xd3e3, 0x60b0, 0x20b0, 0x0000, 0xffff,
1353 0x4108, 0x2068, 0x20c0, 0x00f0, 0x00f8, 0x00d8, 0x20a8, 0x6090,
1354 0x6088, 0x6088, 0x6080, 0x6080, 0x4098, 0x2068, 0x4108, 0xffff,
1355 0x59ce, 0x4110, 0x0078, 0x00f8, 0x00f8, 0x00f0, 0x20b8, 0x6080,
1356 0x6080, 0x6078, 0x6078, 0x6078, 0x2060, 0x4110, 0x59ce, 0xffff,
1357 0xffff, 0x9ad6, 0x8210, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1358 0x0000, 0x0000, 0x0000, 0x0000, 0x8210, 0x9ad6, 0xffff, 0xffff,
1359 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1360 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1361 /* yellow jewel */
1362 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xc639,
1363 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1364 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0x6429, 0xa373,
1365 0x4329, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1366 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0x8431, 0x2ac6, 0x87b5,
1367 0x406b, 0x4329, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1368 0xffff, 0xffff, 0xffff, 0xfbde, 0x6429, 0x4ac6, 0x4de7, 0x07c6,
1369 0x408c, 0x406b, 0x4329, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
1370 0xffff, 0xffff, 0xfbde, 0x6429, 0x4ace, 0x4ee7, 0x6eef, 0xe7de,
1371 0xc0bd, 0x408c, 0x406b, 0x4329, 0xfbde, 0xffff, 0xffff, 0xffff,
1372 0xffff, 0xfbde, 0x8431, 0x4ac6, 0x4ee7, 0x8eef, 0x8eef, 0x07df,
1373 0xe0bd, 0x00a5, 0x408c, 0x00a5, 0x8331, 0xfbde, 0xffff, 0xffff,
1374 0xfbde, 0x6429, 0x2ac6, 0x4de7, 0x6eef, 0x8eef, 0x2be7, 0xc19c,
1375 0x20a5, 0xc0bd, 0x80ce, 0xa0d6, 0xa0b5, 0x8331, 0xfbde, 0xffff,
1376 0xa531, 0xa373, 0x87b5, 0x07c6, 0x07df, 0x07df, 0xc19c, 0x8094,
1377 0xa094, 0x80ce, 0xe0de, 0xc0d6, 0xa0d6, 0xc09c, 0xc639, 0xffff,
1378 0xdbde, 0x0321, 0x406b, 0x408c, 0xe1bd, 0xe0bd, 0x20a5, 0xa094,
1379 0x00c6, 0xc0d6, 0xe0de, 0x00df, 0x00c6, 0x6329, 0xfbde, 0xffff,
1380 0xffff, 0xdbde, 0x2321, 0x406b, 0x408c, 0x00a5, 0xc0bd, 0xc0bd,
1381 0xa0d6, 0xa0d6, 0xc0d6, 0x20c6, 0x8331, 0xfbde, 0xffff, 0xffff,
1382 0xffff, 0xffff, 0xdbde, 0x2321, 0x406b, 0x408c, 0x80b5, 0xe0bd,
1383 0x00be, 0xa0d6, 0xa0b5, 0x6329, 0xfbde, 0xffff, 0xffff, 0xffff,
1384 0xffff, 0xffff, 0xffff, 0xdbde, 0x2321, 0x608c, 0x80b5, 0xc0b5,
1385 0xe0bd, 0x40ad, 0x6329, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff,
1386 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0x4329, 0xc09c, 0x80b5,
1387 0x20a5, 0x8331, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1388 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0x4329, 0xe083,
1389 0x6329, 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1390 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xfbde, 0xc639,
1391 0xfbde, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1392 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1393 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff},
1394 /* green jewel */
1395 {0xffff, 0xffff, 0xffff, 0x718c, 0xa108, 0xe210, 0xe210, 0xe210,
1396 0xe210, 0xe210, 0xa108, 0x8d6b, 0xffff, 0xffff, 0xffff, 0xffff,
1397 0xffff, 0xffff, 0x718c, 0x4a53, 0x2d7f, 0x254f, 0x254f, 0x254f,
1398 0x254f, 0x254f, 0x264f, 0x4843, 0xad6b, 0xffff, 0xffff, 0xffff,
1399 0xffff, 0x718c, 0x4953, 0xbadf, 0x6d87, 0x254f, 0x254f, 0x254f,
1400 0x254f, 0x254f, 0x254f, 0x4b77, 0x484b, 0xce73, 0xffff, 0xffff,
1401 0x718c, 0x2953, 0xbad7, 0xdadf, 0x6b77, 0x254f, 0x254f, 0x254f,
1402 0x254f, 0x254f, 0x254f, 0x254f, 0x4d87, 0x6953, 0xee73, 0xffff,
1403 0xa108, 0x2e87, 0x6e8f, 0x6c7f, 0xa43e, 0x221e, 0x221e, 0x021e,
1404 0xe21d, 0xc21d, 0x0226, 0x221e, 0x0326, 0x063e, 0x2109, 0xffff,
1405 0xe210, 0x254f, 0x254f, 0x254f, 0x221e, 0xa005, 0x6005, 0x2005,
1406 0xe004, 0xc004, 0x6115, 0xa005, 0x2005, 0xa004, 0x8109, 0xffff,
1407 0xe210, 0x254f, 0x254f, 0x254f, 0x221e, 0x6005, 0x2005, 0xe004,
1408 0xc004, 0x8004, 0x4115, 0x6005, 0xe004, 0x6004, 0x8109, 0xffff,
1409 0xe210, 0x254f, 0x254f, 0x254f, 0x021e, 0x2005, 0x0005, 0xc004,
1410 0x8004, 0x4004, 0x2115, 0x0005, 0x8004, 0x2004, 0x6109, 0xffff,
1411 0xe210, 0x254f, 0x254f, 0x254f, 0xe21d, 0x0005, 0xc004, 0x8004,
1412 0x4004, 0x0004, 0xe114, 0xc004, 0x4004, 0xc003, 0x6109, 0xffff,
1413 0xe210, 0x254f, 0x254f, 0x254f, 0xc21d, 0xc004, 0x8004, 0x4004,
1414 0x2004, 0xe003, 0xc114, 0x8004, 0x0004, 0x8003, 0x6109, 0xffff,
1415 0x8108, 0xe756, 0x254f, 0x254f, 0x2226, 0x8115, 0x6115, 0x4115,
1416 0x2115, 0x0115, 0x421d, 0x421d, 0x0225, 0x0535, 0xe108, 0xffff,
1417 0x5084, 0x863a, 0x2b77, 0x254f, 0x221e, 0xa005, 0xa005, 0xa005,
1418 0x4005, 0xe004, 0x611d, 0x254f, 0x2c77, 0xc73a, 0x5084, 0xffff,
1419 0xffff, 0x3084, 0xc742, 0x2c7f, 0x221e, 0xa005, 0xa005, 0x4005,
1420 0xe004, 0x8004, 0x211d, 0x2a6f, 0xc73a, 0x3084, 0xffff, 0xffff,
1421 0xffff, 0xffff, 0x0f7c, 0x0843, 0x4536, 0xa005, 0x4005, 0xe004,
1422 0x8004, 0x2004, 0xe224, 0xc63a, 0x0f7c, 0xffff, 0xffff, 0xffff,
1423 0xffff, 0xffff, 0xffff, 0xef7b, 0x2109, 0xc111, 0xa111, 0x8111,
1424 0x8109, 0x6109, 0xe108, 0xef7b, 0xffff, 0xffff, 0xffff, 0xffff,
1425 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
1426 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}
1427};
1428
1429/* use 16x16 tiles */
1430#elif (LCD_HEIGHT == 128) && (LCD_WIDTH == 160) && (LCD_DEPTH == 2)
1431/* size of a tile */
1432#define TILE_WIDTH 16 121#define TILE_WIDTH 16
1433#define TILE_HEIGHT 16 122#define TILE_HEIGHT 16
1434
1435/* playboard offset from top */
1436#define YOFS 0 123#define YOFS 0
1437
1438/* number of high scores to save */
1439#define NUM_SCORES 10 124#define NUM_SCORES 10
1440 125
1441/* bitmaps for the jewels */ 126/* use 10x8 tiles (iFP 700) */
1442static unsigned char jewel[8][32] = { 127#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 128)
1443 /* empty */ 128#define TILE_WIDTH 10
1444 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 129#define TILE_HEIGHT 8
1445 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 130#define YOFS 0
1446 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 131#define NUM_SCORES 8
1447 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1448 /* square */
1449 {0x00, 0x00, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
1450 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x00, 0x00,
1451 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f,
1452 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00},
1453 /* plus */
1454 {0x00, 0xe0, 0xe0, 0x60, 0x60, 0x7e, 0x7e, 0x06,
1455 0x7e, 0x7e, 0x60, 0x60, 0xe0, 0xe0, 0x00, 0x00,
1456 0x00, 0x03, 0x03, 0x03, 0x03, 0x3f, 0x3f, 0x30,
1457 0x3f, 0x3f, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00},
1458 /* triangle */
1459 {0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x7c, 0x1e,
1460 0x7c, 0xf0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
1461 0x00, 0x30, 0x3c, 0x3f, 0x37, 0x31, 0x30, 0x30,
1462 0x30, 0x31, 0x37, 0x3f, 0x3c, 0x30, 0x00, 0x00},
1463 /* diamond */
1464 {0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe,
1465 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
1466 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f,
1467 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00},
1468 /* star */
1469 {0x00, 0x40, 0xc0, 0xc0, 0xc0, 0xc0, 0xf8, 0xfe,
1470 0xf8, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00,
1471 0x00, 0x00, 0x00, 0x30, 0x1f, 0x1f, 0x0f, 0x07,
1472 0x0f, 0x1f, 0x1f, 0x30, 0x00, 0x00, 0x00, 0x00},
1473 /* circle */
1474 {0x00, 0xe0, 0xf8, 0xfc, 0x3c, 0x1e, 0x0e, 0x0e,
1475 0x0e, 0x1e, 0x3c, 0xfc, 0xf8, 0xe0, 0x00, 0x00,
1476 0x00, 0x03, 0x0f, 0x1f, 0x1e, 0x3c, 0x38, 0x38,
1477 0x38, 0x3c, 0x1e, 0x1f, 0x0f, 0x03, 0x00, 0x00},
1478 /* heart */
1479 {0x00, 0x78, 0xfc, 0xfe, 0xfe, 0xfc, 0xf8, 0xf0,
1480 0xf8, 0xfc, 0xfe, 0xfe, 0xfc, 0x78, 0x00, 0x00,
1481 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f,
1482 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00}
1483};
1484 132
1485/* use 10x8 tiles */ 133/* use 10x8 tiles (Recorder, Ondio) */
1486#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 112) 134#elif (LCD_HEIGHT == 64) && (LCD_WIDTH == 112)
1487/* size of a tile */
1488#define TILE_WIDTH 10 135#define TILE_WIDTH 10
1489#define TILE_HEIGHT 8 136#define TILE_HEIGHT 8
1490
1491/* playboard offset from top */
1492#define YOFS 0 137#define YOFS 0
1493
1494/* number of high scores to save */
1495#define NUM_SCORES 8 138#define NUM_SCORES 8
1496 139
1497/* bitmaps for the jewels */
1498static unsigned char jewel[8][10] = {
1499 /* empty */
1500 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
1501 /* square */
1502 {0x00, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x00, 0x00},
1503 /* plus */
1504 {0x00, 0x1c, 0x14, 0x77, 0x41, 0x41, 0x77, 0x14, 0x1c, 0x00},
1505 /* triangle */
1506 {0x60, 0x70, 0x5c, 0x46, 0x43, 0x46, 0x5c, 0x70, 0x60, 0x00},
1507 /* diamond */
1508 {0x00, 0x08, 0x1c, 0x3e, 0x7f, 0x7f, 0x3e, 0x1c, 0x08, 0x00},
1509 /* star */
1510 {0x00, 0x04, 0x6c, 0x3c, 0x1c, 0x1f, 0x3c, 0x6c, 0x04, 0x00},
1511 /* circle */
1512 {0x00, 0x1c, 0x3e, 0x63, 0x63, 0x63, 0x63, 0x3e, 0x1c, 0x00},
1513 /* heart */
1514 {0x06, 0x0f, 0x1f, 0x3e, 0x7c, 0x3e, 0x1f, 0x0f, 0x06, 0x00}
1515};
1516
1517#else 140#else
1518 #error BEJEWELED: Unsupported LCD type 141 #error BEJEWELED: Unsupported LCD
1519#endif 142#endif
1520 143
144/* tile background colors */
145#if defined(HAVE_LCD_COLOR)
146static const unsigned bejeweled_bkgd[2] = {
147 LCD_RGBPACK(104, 63, 63),
148 LCD_RGBPACK(83, 44, 44)
149};
150#endif
151
152/* save files */
153#define SCORE_FILE PLUGIN_DIR "/bejeweled.score"
154#define SAVE_FILE PLUGIN_DIR "/bejeweled.save"
155
156/* final game return status */
157#define BJ_END 3
158#define BJ_USB 2
159#define BJ_QUIT 1
160#define BJ_LOSE 0
161
162/* swap directions */
163#define SWAP_UP 0
164#define SWAP_RIGHT 1
165#define SWAP_DOWN 2
166#define SWAP_LEFT 3
167
168/* play board dimension */
169#define BJ_HEIGHT 9
170#define BJ_WIDTH 8
171
172/* next level threshold */
173#define LEVEL_PTS 100
174
175/* animation frame rate */
176#define FPS 20
177
1521/* global rockbox api */ 178/* global rockbox api */
1522static struct plugin_api* rb; 179static struct plugin_api* rb;
1523 180
181/* external bitmaps */
182extern const fb_data bejeweled_jewels[];
183
1524/* the tile struct 184/* the tile struct
1525 * type is the jewel number 0-7 185 * type is the jewel number 0-7
1526 * falling if the jewel is falling 186 * falling if the jewel is falling
@@ -1548,7 +208,7 @@ struct game_context {
1548 unsigned short highscores[NUM_SCORES]; 208 unsigned short highscores[NUM_SCORES];
1549 bool resume; 209 bool resume;
1550 bool dirty; 210 bool dirty;
1551 struct tile playboard[BJ_WIDTH][BJ_HEIGHT]; 211 struct tile playboard[BJ_HEIGHT][BJ_WIDTH];
1552}; 212};
1553 213
1554/***************************************************************************** 214/*****************************************************************************
@@ -1574,6 +234,16 @@ static void bejeweled_init(struct game_context* bj) {
1574} 234}
1575 235
1576/***************************************************************************** 236/*****************************************************************************
237* bejeweled_setcolors() set the foreground and background colors.
238******************************************************************************/
239static inline void bejeweled_setcolors(void) {
240#ifdef HAVE_LCD_COLOR
241 rb->lcd_set_background(LCD_RGBPACK(49, 26, 26));
242 rb->lcd_set_foreground(LCD_RGBPACK(210, 181, 181));
243#endif
244}
245
246/*****************************************************************************
1577* bejeweled_drawboard() redraws the entire game board. 247* bejeweled_drawboard() redraws the entire game board.
1578******************************************************************************/ 248******************************************************************************/
1579static void bejeweled_drawboard(struct game_context* bj) { 249static void bejeweled_drawboard(struct game_context* bj) {
@@ -1593,9 +263,29 @@ static void bejeweled_drawboard(struct game_context* bj) {
1593 rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH, 18); 263 rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH, 18);
1594 rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH, LCD_HEIGHT-10); 264 rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH, LCD_HEIGHT-10);
1595 265
266 /* dispay playing board */
267 for(i=0; i<BJ_HEIGHT-1; i++){
268 for(j=0; j<BJ_WIDTH; j++){
269#ifdef HAVE_LCD_COLOR
270 rb->lcd_set_foreground(bejeweled_bkgd[(i+j)%2]);
271 rb->lcd_fillrect(j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
272 TILE_WIDTH, TILE_HEIGHT);
273 rb->lcd_bitmap_transparent_part(bejeweled_jewels,
274 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
275 TILE_WIDTH, j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
276 TILE_WIDTH, TILE_HEIGHT);
277#else
278 rb->lcd_bitmap_part(bejeweled_jewels,
279 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
280 TILE_WIDTH, j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
281 TILE_WIDTH, TILE_HEIGHT);
282#endif
283 }
284 }
285
1596 /* draw progress bar */ 286 /* draw progress bar */
1597#ifdef HAVE_LCD_COLOR 287#ifdef HAVE_LCD_COLOR
1598 rb->lcd_set_foreground(LCD_RGBPACK(64, 64, 255)); 288 rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63));
1599#endif 289#endif
1600 rb->lcd_fillrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4, 290 rb->lcd_fillrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4,
1601 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)* 291 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)*
@@ -1603,13 +293,13 @@ static void bejeweled_drawboard(struct game_context* bj) {
1603 (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2, 293 (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2,
1604 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS); 294 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS);
1605#ifdef HAVE_LCD_COLOR 295#ifdef HAVE_LCD_COLOR
1606 rb->lcd_set_foreground(LCD_RGBPACK(0, 128, 255)); 296 rb->lcd_set_foreground(LCD_RGBPACK(83, 44, 44));
1607 rb->lcd_drawrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4+1, 297 rb->lcd_drawrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4+1,
1608 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)* 298 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)*
1609 tempscore/LEVEL_PTS)+1, 299 tempscore/LEVEL_PTS)+1,
1610 (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-2, 300 (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-2,
1611 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS-1); 301 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS-1);
1612 rb->lcd_set_foreground(LCD_BLACK); 302 bejeweled_setcolors();
1613 rb->lcd_drawrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4, 303 rb->lcd_drawrect(BJ_WIDTH*TILE_WIDTH+(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/4,
1614 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)* 304 (LCD_HEIGHT-10)-(((LCD_HEIGHT-10)-18)*
1615 tempscore/LEVEL_PTS), 305 tempscore/LEVEL_PTS),
@@ -1617,21 +307,6 @@ static void bejeweled_drawboard(struct game_context* bj) {
1617 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS+1); 307 ((LCD_HEIGHT-10)-18)*tempscore/LEVEL_PTS+1);
1618#endif 308#endif
1619 309
1620 /* dispay playing board */
1621 for(i=0; i<BJ_HEIGHT-1; i++){
1622 for(j=0; j<BJ_WIDTH; j++){
1623#ifdef HAVE_LCD_COLOR
1624 rb->lcd_bitmap(jewel[bj->playboard[j][i+1].type],
1625 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
1626 TILE_WIDTH, TILE_HEIGHT);
1627#else
1628 rb->lcd_mono_bitmap(jewel[bj->playboard[j][i+1].type],
1629 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
1630 TILE_WIDTH, TILE_HEIGHT);
1631#endif
1632 }
1633 }
1634
1635 /* print text */ 310 /* print text */
1636 rb->lcd_getstringsize(title, &w, &h); 311 rb->lcd_getstringsize(title, &w, &h);
1637 rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title); 312 rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title);
@@ -1656,6 +331,7 @@ static void bejeweled_drawboard(struct game_context* bj) {
1656static void bejeweled_putjewels(struct game_context* bj){ 331static void bejeweled_putjewels(struct game_context* bj){
1657 int i, j, k; 332 int i, j, k;
1658 bool mark, done; 333 bool mark, done;
334 long lasttick, currenttick;
1659 335
1660 /* loop to make all the jewels fall */ 336 /* loop to make all the jewels fall */
1661 while(true) { 337 while(true) {
@@ -1663,15 +339,15 @@ static void bejeweled_putjewels(struct game_context* bj){
1663 mark = false; 339 mark = false;
1664 done = true; 340 done = true;
1665 for(j=0; j<BJ_WIDTH; j++) { 341 for(j=0; j<BJ_WIDTH; j++) {
1666 if(bj->playboard[j][1].type == 0) { 342 if(bj->playboard[1][j].type == 0) {
1667 bj->playboard[j][0].type = rb->rand()%7+1; 343 bj->playboard[0][j].type = rb->rand()%7+1;
1668 } 344 }
1669 for(i=BJ_HEIGHT-2; i>=0; i--) { 345 for(i=BJ_HEIGHT-2; i>=0; i--) {
1670 if(!mark && bj->playboard[j][i+1].type == 0) { 346 if(!mark && bj->playboard[i+1][j].type == 0) {
1671 mark = true; 347 mark = true;
1672 done = false; 348 done = false;
1673 } 349 }
1674 if(mark) bj->playboard[j][i].falling = true; 350 if(mark) bj->playboard[i][j].falling = true;
1675 } 351 }
1676 /*if(bj->playboard[1][j].falling) { 352 /*if(bj->playboard[1][j].falling) {
1677 bj->playboard[0][j].type = rb->rand()%7+1; 353 bj->playboard[0][j].type = rb->rand()%7+1;
@@ -1684,60 +360,87 @@ static void bejeweled_putjewels(struct game_context* bj){
1684 if(done) break; 360 if(done) break;
1685 361
1686 /* animate falling jewels */ 362 /* animate falling jewels */
1687 for(k=TILE_HEIGHT/8; k<=TILE_HEIGHT; k+=TILE_HEIGHT/8) { 363 lasttick = *rb->current_tick;
1688 rb->sleep(HZ/FALL_TIMER); 364
1689 for(i=0; i<BJ_HEIGHT-1; i++) { 365 for(k=1; k<=8; k++) {
366 for(i=BJ_HEIGHT-2; i>=0; i--) {
1690 for(j=0; j<BJ_WIDTH; j++) { 367 for(j=0; j<BJ_WIDTH; j++) {
1691 if(bj->playboard[j][i].falling && 368 if(bj->playboard[i][j].falling &&
1692 bj->playboard[j][i].type != 0) { 369 bj->playboard[i][j].type != 0) {
1693 /* clear old position */ 370 /* clear old position */
1694#ifdef HAVE_LCD_COLOR 371#ifdef HAVE_LCD_COLOR
1695 rb->lcd_bitmap(jewel[0], 372 if(i == 0 && YOFS) {
1696 j*TILE_WIDTH, 373 rb->lcd_set_foreground(rb->lcd_get_background());
1697 (i-1)*TILE_HEIGHT+k-TILE_HEIGHT/8+YOFS, 374 } else {
1698 TILE_WIDTH, TILE_HEIGHT); 375 rb->lcd_set_foreground(bejeweled_bkgd[(i-1+j)%2]);
376 }
377 rb->lcd_fillrect(j*TILE_WIDTH, (i-1)*TILE_HEIGHT+YOFS,
378 TILE_WIDTH, TILE_HEIGHT);
379 if(bj->playboard[i+1][j].type == 0) {
380 rb->lcd_set_foreground(bejeweled_bkgd[(i+j)%2]);
381 rb->lcd_fillrect(j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
382 TILE_WIDTH, TILE_HEIGHT);
383 }
1699#else 384#else
1700 rb->lcd_mono_bitmap(jewel[0], 385 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
1701 j*TILE_WIDTH, 386 rb->lcd_fillrect(j*TILE_WIDTH, (i-1)*TILE_HEIGHT+YOFS,
1702 (i-1)*TILE_HEIGHT+k-TILE_HEIGHT/8+YOFS, 387 TILE_WIDTH, TILE_HEIGHT);
1703 TILE_WIDTH, TILE_HEIGHT); 388 if(bj->playboard[i+1][j].type == 0) {
389 rb->lcd_fillrect(j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
390 TILE_WIDTH, TILE_HEIGHT);
391 }
392 rb->lcd_set_drawmode(DRMODE_SOLID);
1704#endif 393#endif
394
1705 /* draw new position */ 395 /* draw new position */
1706#ifdef HAVE_LCD_COLOR 396#ifdef HAVE_LCD_COLOR
1707 rb->lcd_bitmap(jewel[bj->playboard[j][i].type], 397 rb->lcd_bitmap_transparent_part(bejeweled_jewels, 0,
1708 j*TILE_WIDTH, 398 TILE_HEIGHT*(bj->playboard[i][j].type),
1709 (i-1)*TILE_HEIGHT+k+YOFS, 399 TILE_WIDTH, j*TILE_WIDTH,
400 (i-1)*TILE_HEIGHT+YOFS+
401 ((((TILE_HEIGHT<<10)*k)/8)>>10),
1710 TILE_WIDTH, TILE_HEIGHT); 402 TILE_WIDTH, TILE_HEIGHT);
1711#else 403#else
1712 rb->lcd_mono_bitmap(jewel[bj->playboard[j][i].type], 404 rb->lcd_bitmap_part(bejeweled_jewels, 0,
1713 j*TILE_WIDTH, 405 TILE_HEIGHT*(bj->playboard[i][j].type),
1714 (i-1)*TILE_HEIGHT+k+YOFS, 406 TILE_WIDTH, j*TILE_WIDTH,
1715 TILE_WIDTH, TILE_HEIGHT); 407 (i-1)*TILE_HEIGHT+YOFS+
408 ((((TILE_HEIGHT<<10)*k)/8)>>10),
409 TILE_WIDTH, TILE_HEIGHT);
1716#endif 410#endif
1717 } 411 }
1718 } 412 }
1719 } 413 }
414
1720 rb->lcd_update(); 415 rb->lcd_update();
416 bejeweled_setcolors();
417
418 /* framerate limiting */
419 currenttick = *rb->current_tick;
420 if(currenttick-lasttick < HZ/FPS) {
421 rb->sleep((HZ/FPS)-(currenttick-lasttick));
422 }
423 lasttick = currenttick;
1721 } 424 }
1722 425
1723 /* shift jewels down */ 426 /* shift jewels down */
1724 for(j=0; j<BJ_WIDTH; j++) { 427 for(j=0; j<BJ_WIDTH; j++) {
1725 for(i=BJ_HEIGHT-1; i>=1; i--) { 428 for(i=BJ_HEIGHT-1; i>=1; i--) {
1726 if(bj->playboard[j][i-1].falling) { 429 if(bj->playboard[i-1][j].falling) {
1727 bj->playboard[j][i].type = bj->playboard[j][i-1].type; 430 bj->playboard[i][j].type = bj->playboard[i-1][j].type;
1728 } 431 }
1729 } 432 }
1730 } 433 }
1731 434
1732 /* clear out top row */ 435 /* clear out top row */
1733 for(j=0; j<BJ_WIDTH; j++) { 436 for(j=0; j<BJ_WIDTH; j++) {
1734 bj->playboard[j][0].type = 0; 437 bj->playboard[0][j].type = 0;
1735 } 438 }
1736 439
1737 /* mark everything not falling */ 440 /* mark everything not falling */
1738 for(i=0; i<BJ_HEIGHT; i++) { 441 for(i=0; i<BJ_HEIGHT; i++) {
1739 for(j=0; j<BJ_WIDTH; j++) { 442 for(j=0; j<BJ_WIDTH; j++) {
1740 bj->playboard[j][i].falling = false; 443 bj->playboard[i][j].falling = false;
1741 } 444 }
1742 } 445 }
1743 } 446 }
@@ -1757,23 +460,23 @@ static unsigned int bejeweled_clearjewels(struct game_context* bj) {
1757 last = 0; 460 last = 0;
1758 run = 1; 461 run = 1;
1759 for(j=0; j<BJ_WIDTH; j++) { 462 for(j=0; j<BJ_WIDTH; j++) {
1760 if(bj->playboard[j][i].type == last && 463 if(bj->playboard[i][j].type == last &&
1761 bj->playboard[j][i].type != 0) { 464 bj->playboard[i][j].type != 0) {
1762 run++; 465 run++;
1763 466
1764 if(run == 3) { 467 if(run == 3) {
1765 bj->segments++; 468 bj->segments++;
1766 points += bj->segments; 469 points += bj->segments;
1767 bj->playboard[j][i].delete = true; 470 bj->playboard[i][j].delete = true;
1768 bj->playboard[j-1][i].delete = true; 471 bj->playboard[i][j-1].delete = true;
1769 bj->playboard[j-2][i].delete = true; 472 bj->playboard[i][j-2].delete = true;
1770 } else if(run > 3) { 473 } else if(run > 3) {
1771 points++; 474 points++;
1772 bj->playboard[j][i].delete = true; 475 bj->playboard[i][j].delete = true;
1773 } 476 }
1774 } else { 477 } else {
1775 run = 1; 478 run = 1;
1776 last = bj->playboard[j][i].type; 479 last = bj->playboard[i][j].type;
1777 } 480 }
1778 } 481 }
1779 } 482 }
@@ -1783,23 +486,23 @@ static unsigned int bejeweled_clearjewels(struct game_context* bj) {
1783 last = 0; 486 last = 0;
1784 run = 1; 487 run = 1;
1785 for(i=1; i<BJ_HEIGHT; i++) { 488 for(i=1; i<BJ_HEIGHT; i++) {
1786 if(bj->playboard[j][i].type != 0 && 489 if(bj->playboard[i][j].type != 0 &&
1787 bj->playboard[j][i].type == last) { 490 bj->playboard[i][j].type == last) {
1788 run++; 491 run++;
1789 492
1790 if(run == 3) { 493 if(run == 3) {
1791 bj->segments++; 494 bj->segments++;
1792 points += bj->segments; 495 points += bj->segments;
1793 bj->playboard[j][i].delete = true; 496 bj->playboard[i][j].delete = true;
1794 bj->playboard[j][i-1].delete = true; 497 bj->playboard[i-1][j].delete = true;
1795 bj->playboard[j][i-2].delete = true; 498 bj->playboard[i-2][j].delete = true;
1796 } else if(run > 3) { 499 } else if(run > 3) {
1797 points++; 500 points++;
1798 bj->playboard[j][i].delete = true; 501 bj->playboard[i][j].delete = true;
1799 } 502 }
1800 } else { 503 } else {
1801 run = 1; 504 run = 1;
1802 last = bj->playboard[j][i].type; 505 last = bj->playboard[i][j].type;
1803 } 506 }
1804 } 507 }
1805 } 508 }
@@ -1807,9 +510,9 @@ static unsigned int bejeweled_clearjewels(struct game_context* bj) {
1807 /* clear deleted jewels */ 510 /* clear deleted jewels */
1808 for(i=1; i<BJ_HEIGHT; i++) { 511 for(i=1; i<BJ_HEIGHT; i++) {
1809 for(j=0; j<BJ_WIDTH; j++) { 512 for(j=0; j<BJ_WIDTH; j++) {
1810 if(bj->playboard[j][i].delete) { 513 if(bj->playboard[i][j].delete) {
1811 bj->playboard[j][i].delete = false; 514 bj->playboard[i][j].delete = false;
1812 bj->playboard[j][i].type = 0; 515 bj->playboard[i][j].type = 0;
1813 } 516 }
1814 } 517 }
1815 } 518 }
@@ -1847,10 +550,13 @@ static unsigned int bejeweled_swapjewels(struct game_context* bj,
1847 int movelen = 0; 550 int movelen = 0;
1848 bool undo = false; 551 bool undo = false;
1849 unsigned int points = 0; 552 unsigned int points = 0;
553 long lasttick, currenttick;
1850 554
1851 /* check for invalid parameters */ 555 /* check for invalid parameters */
1852 if(x < 0 || x >= BJ_WIDTH || y < 0 || y >= BJ_HEIGHT-1 || 556 if(x < 0 || x >= BJ_WIDTH || y < 0 || y >= BJ_HEIGHT-1 ||
1853 direc < SWAP_UP || direc > SWAP_LEFT) return 0; 557 direc < SWAP_UP || direc > SWAP_LEFT) {
558 return 0;
559 }
1854 560
1855 /* check for invalid directions */ 561 /* check for invalid directions */
1856 if((x == 0 && direc == SWAP_LEFT) || 562 if((x == 0 && direc == SWAP_LEFT) ||
@@ -1883,67 +589,92 @@ static unsigned int bejeweled_swapjewels(struct game_context* bj,
1883 } 589 }
1884 590
1885 while(true) { 591 while(true) {
592 lasttick = *rb->current_tick;
593
1886 /* animate swapping jewels */ 594 /* animate swapping jewels */
1887 for(k=TILE_HEIGHT/8; k<=movelen;k+=TILE_HEIGHT/8) { 595 for(k=0; k<=8; k++) {
1888 rb->sleep(HZ/SWAP_TIMER);
1889 /* clear old position */ 596 /* clear old position */
1890#ifdef HAVE_LCD_COLOR 597#ifdef HAVE_LCD_COLOR
1891 rb->lcd_bitmap(jewel[0], 598 rb->lcd_set_foreground(bejeweled_bkgd[(x+y)%2]);
1892 x*TILE_WIDTH+horzmod*(k-TILE_WIDTH/8), 599 rb->lcd_fillrect(x*TILE_WIDTH,
1893 y*TILE_HEIGHT+vertmod*(k-TILE_HEIGHT/8)+YOFS, 600 y*TILE_HEIGHT+YOFS,
1894 TILE_WIDTH, TILE_HEIGHT); 601 TILE_WIDTH, TILE_HEIGHT);
1895 rb->lcd_bitmap(jewel[0], 602 rb->lcd_set_foreground(bejeweled_bkgd[(x+horzmod+y+vertmod)%2]);
1896 (x+horzmod)*TILE_WIDTH-horzmod*(k-TILE_WIDTH/8), 603 rb->lcd_fillrect((x+horzmod)*TILE_WIDTH,
1897 (y+vertmod)*TILE_HEIGHT-vertmod*(k-TILE_HEIGHT/8)+YOFS, 604 (y+vertmod)*TILE_HEIGHT+YOFS,
1898 TILE_WIDTH, TILE_HEIGHT); 605 TILE_WIDTH, TILE_HEIGHT);
1899#else 606#else
1900 rb->lcd_mono_bitmap(jewel[0], 607 rb->lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID);
1901 x*TILE_WIDTH+horzmod*(k-TILE_WIDTH/8), 608 rb->lcd_fillrect(x*TILE_WIDTH,
1902 y*TILE_HEIGHT+vertmod*(k-TILE_HEIGHT/8)+YOFS, 609 y*TILE_HEIGHT+YOFS,
1903 TILE_WIDTH, TILE_HEIGHT); 610 TILE_WIDTH, TILE_HEIGHT);
1904 rb->lcd_mono_bitmap(jewel[0], 611 rb->lcd_fillrect((x+horzmod)*TILE_WIDTH,
1905 (x+horzmod)*TILE_WIDTH-horzmod*(k-TILE_WIDTH/8), 612 (y+vertmod)*TILE_HEIGHT+YOFS,
1906 (y+vertmod)*TILE_HEIGHT-vertmod*(k-TILE_HEIGHT/8)+YOFS, 613 TILE_WIDTH, TILE_HEIGHT);
1907 TILE_WIDTH, TILE_HEIGHT); 614 rb->lcd_set_drawmode(DRMODE_SOLID);
1908#endif 615#endif
1909 /* draw new position */ 616 /* draw new position */
1910#ifdef HAVE_LCD_COLOR 617#ifdef HAVE_LCD_COLOR
1911 rb->lcd_bitmap(jewel[bj->playboard[x][y+1].type], 618 rb->lcd_bitmap_transparent_part(bejeweled_jewels,
1912 x*TILE_WIDTH+horzmod*k, 619 0, TILE_HEIGHT*(bj->playboard
1913 y*TILE_HEIGHT+vertmod*k+YOFS, 620 [y+1+vertmod][x+horzmod].type), TILE_WIDTH,
621 (x+horzmod)*TILE_WIDTH-horzmod*
622 ((((movelen<<10)*k)/8)>>10),
623 (y+vertmod)*TILE_HEIGHT-vertmod*
624 ((((movelen<<10)*k)/8)>>10)+YOFS,
1914 TILE_WIDTH, TILE_HEIGHT); 625 TILE_WIDTH, TILE_HEIGHT);
1915 rb->lcd_bitmap(jewel[bj->playboard 626 rb->lcd_bitmap_transparent_part(bejeweled_jewels,
1916 [x+horzmod][y+1+vertmod].type], 627 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
1917 (x+horzmod)*TILE_WIDTH-horzmod*k, 628 TILE_WIDTH, x*TILE_WIDTH+horzmod*
1918 (y+vertmod)*TILE_HEIGHT-vertmod*k+YOFS, 629 ((((movelen<<10)*k)/8)>>10),
630 y*TILE_HEIGHT+vertmod*
631 ((((movelen<<10)*k)/8)>>10)+YOFS,
1919 TILE_WIDTH, TILE_HEIGHT); 632 TILE_WIDTH, TILE_HEIGHT);
1920#else 633#else
1921 rb->lcd_mono_bitmap(jewel[bj->playboard[x][y+1].type], 634 rb->lcd_bitmap_part(bejeweled_jewels,
1922 x*TILE_WIDTH+horzmod*k, 635 0, TILE_HEIGHT*(bj->playboard
1923 y*TILE_HEIGHT+vertmod*k+YOFS, 636 [y+1+vertmod][x+horzmod].type), TILE_WIDTH,
1924 TILE_WIDTH, TILE_HEIGHT); 637 (x+horzmod)*TILE_WIDTH-horzmod*
638 ((((movelen<<10)*k)/8)>>10),
639 (y+vertmod)*TILE_HEIGHT-vertmod*
640 ((((movelen<<10)*k)/8)>>10)+YOFS,
641 TILE_WIDTH, TILE_HEIGHT);
1925 rb->lcd_set_drawmode(DRMODE_FG); 642 rb->lcd_set_drawmode(DRMODE_FG);
1926 rb->lcd_mono_bitmap(jewel[bj->playboard 643 rb->lcd_bitmap_part(bejeweled_jewels,
1927 [x+horzmod][y+1+vertmod].type], 644 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
1928 (x+horzmod)*TILE_WIDTH-horzmod*k, 645 TILE_WIDTH, x*TILE_WIDTH+horzmod*
1929 (y+vertmod)*TILE_HEIGHT-vertmod*k+YOFS, 646 ((((movelen<<10)*k)/8)>>10),
1930 TILE_WIDTH, TILE_HEIGHT); 647 y*TILE_HEIGHT+vertmod*
648 ((((movelen<<10)*k)/8)>>10)+YOFS,
649 TILE_WIDTH, TILE_HEIGHT);
1931 rb->lcd_set_drawmode(DRMODE_SOLID); 650 rb->lcd_set_drawmode(DRMODE_SOLID);
1932#endif 651#endif
1933 652
1934 rb->lcd_update(); 653 rb->lcd_update();
654 bejeweled_setcolors();
655
656 /* framerate limiting */
657 currenttick = *rb->current_tick;
658 if(currenttick-lasttick < HZ/FPS) {
659 rb->sleep((HZ/FPS)-(currenttick-lasttick));
660 }
661 lasttick = currenttick;
1935 } 662 }
1936 663
1937 /* swap jewels */ 664 /* swap jewels */
1938 int temp = bj->playboard[x][y+1].type; 665 int temp = bj->playboard[y+1][x].type;
1939 bj->playboard[x][y+1].type = 666 bj->playboard[y+1][x].type =
1940 bj->playboard[x+horzmod][y+1+vertmod].type; 667 bj->playboard[y+1+vertmod][x+horzmod].type;
1941 bj->playboard[x+horzmod][y+1+vertmod].type = temp; 668 bj->playboard[y+1+vertmod][x+horzmod].type = temp;
1942 669
1943 if(undo) break; 670 if(undo) break;
1944 671
1945 points = bejeweled_runboard(bj); 672 points = bejeweled_runboard(bj);
1946 if(points == 0) {undo = true;} else {break;} 673 if(points == 0) {
674 undo = true;
675 } else {
676 break;
677 }
1947 } 678 }
1948 679
1949 return points; 680 return points;
@@ -1960,41 +691,41 @@ static bool bejeweled_movesavail(struct game_context* bj) {
1960 691
1961 for(i=1; i<BJ_HEIGHT; i++) { 692 for(i=1; i<BJ_HEIGHT; i++) {
1962 for(j=0; j<BJ_WIDTH; j++) { 693 for(j=0; j<BJ_WIDTH; j++) {
1963 mytype = bj->playboard[j][i].type; 694 mytype = bj->playboard[i][j].type;
1964 695
1965 /* check horizontal patterns */ 696 /* check horizontal patterns */
1966 if(j <= BJ_WIDTH-3) { 697 if(j <= BJ_WIDTH-3) {
1967 if(i > 1) { 698 if(i > 1) {
1968 if(bj->playboard[j+1][i-1].type == mytype) { 699 if(bj->playboard[i-1][j+1].type == mytype) {
1969 if(bj->playboard[j+2][i-1].type == mytype) 700 if(bj->playboard[i-1][j+2].type == mytype)
1970 {moves = true; break;} 701 {moves = true; break;}
1971 if(bj->playboard[j+2][i].type == mytype) 702 if(bj->playboard[i][j+2].type == mytype)
1972 {moves = true; break;} 703 {moves = true; break;}
1973 } 704 }
1974 if(bj->playboard[j+1][i].type == mytype) { 705 if(bj->playboard[i][j+1].type == mytype) {
1975 if(bj->playboard[j+2][i-1].type == mytype) 706 if(bj->playboard[i-1][j+2].type == mytype)
1976 {moves = true; break;} 707 {moves = true; break;}
1977 } 708 }
1978 } 709 }
1979 710
1980 if(j <= BJ_WIDTH-4) { 711 if(j <= BJ_WIDTH-4) {
1981 if(bj->playboard[j+3][i].type == mytype) { 712 if(bj->playboard[i][j+3].type == mytype) {
1982 if(bj->playboard[j+1][i].type == mytype) 713 if(bj->playboard[i][j+1].type == mytype)
1983 {moves = true; break;} 714 {moves = true; break;}
1984 if(bj->playboard[j+2][i].type == mytype) 715 if(bj->playboard[i][j+2].type == mytype)
1985 {moves = true; break;} 716 {moves = true; break;}
1986 } 717 }
1987 } 718 }
1988 719
1989 if(i < BJ_HEIGHT-1) { 720 if(i < BJ_HEIGHT-1) {
1990 if(bj->playboard[j+1][i].type == mytype) { 721 if(bj->playboard[i][j+1].type == mytype) {
1991 if(bj->playboard[j+2][i+1].type == mytype) 722 if(bj->playboard[i+1][j+2].type == mytype)
1992 {moves = true; break;} 723 {moves = true; break;}
1993 } 724 }
1994 if(bj->playboard[j+1][i+1].type == mytype) { 725 if(bj->playboard[i+1][j+1].type == mytype) {
1995 if(bj->playboard[j+2][i].type == mytype) 726 if(bj->playboard[i][j+2].type == mytype)
1996 {moves = true; break;} 727 {moves = true; break;}
1997 if(bj->playboard[j+2][i+1].type == mytype) 728 if(bj->playboard[i+1][j+2].type == mytype)
1998 {moves = true; break;} 729 {moves = true; break;}
1999 } 730 }
2000 } 731 }
@@ -2003,36 +734,36 @@ static bool bejeweled_movesavail(struct game_context* bj) {
2003 /* check vertical patterns */ 734 /* check vertical patterns */
2004 if(i <= BJ_HEIGHT-3) { 735 if(i <= BJ_HEIGHT-3) {
2005 if(j > 0) { 736 if(j > 0) {
2006 if(bj->playboard[j-1][i+1].type == mytype) { 737 if(bj->playboard[i+1][j-1].type == mytype) {
2007 if(bj->playboard[j-1][i+2].type == mytype) 738 if(bj->playboard[i+2][j-1].type == mytype)
2008 {moves = true; break;} 739 {moves = true; break;}
2009 if(bj->playboard[j][i+2].type == mytype) 740 if(bj->playboard[i+2][j].type == mytype)
2010 {moves = true; break;} 741 {moves = true; break;}
2011 } 742 }
2012 if(bj->playboard[j][i+1].type == mytype) { 743 if(bj->playboard[i+1][j].type == mytype) {
2013 if(bj->playboard[j-1][i+2].type == mytype) 744 if(bj->playboard[i+2][j-1].type == mytype)
2014 {moves = true; break;} 745 {moves = true; break;}
2015 } 746 }
2016 } 747 }
2017 748
2018 if(i <= BJ_HEIGHT-4) { 749 if(i <= BJ_HEIGHT-4) {
2019 if(bj->playboard[j][i+3].type == mytype) { 750 if(bj->playboard[i+3][j].type == mytype) {
2020 if(bj->playboard[j][i+1].type == mytype) 751 if(bj->playboard[i+1][j].type == mytype)
2021 {moves = true; break;} 752 {moves = true; break;}
2022 if(bj->playboard[j][i+2].type == mytype) 753 if(bj->playboard[i+2][j].type == mytype)
2023 {moves = true; break;} 754 {moves = true; break;}
2024 } 755 }
2025 } 756 }
2026 757
2027 if(j < BJ_WIDTH-1) { 758 if(j < BJ_WIDTH-1) {
2028 if(bj->playboard[j][i+1].type == mytype) { 759 if(bj->playboard[i+1][j].type == mytype) {
2029 if(bj->playboard[j+1][i+2].type == mytype) 760 if(bj->playboard[i+2][j+1].type == mytype)
2030 {moves = true; break;} 761 {moves = true; break;}
2031 } 762 }
2032 if(bj->playboard[j+1][i+1].type == mytype) { 763 if(bj->playboard[i+1][j+1].type == mytype) {
2033 if(bj->playboard[j][i+2].type == mytype) 764 if(bj->playboard[i+2][j].type == mytype)
2034 {moves = true; break;} 765 {moves = true; break;}
2035 if (bj->playboard[j+1][i+2].type == mytype) 766 if (bj->playboard[i+2][j+1].type == mytype)
2036 {moves = true; break;} 767 {moves = true; break;}
2037 } 768 }
2038 } 769 }
@@ -2066,9 +797,9 @@ static unsigned int bejeweled_nextlevel(struct game_context* bj) {
2066 x = rb->rand()%8; 797 x = rb->rand()%8;
2067 y = rb->rand()%8; 798 y = rb->rand()%8;
2068 799
2069 if(bj->playboard[x][y].type != 0) { 800 if(bj->playboard[y][x].type != 0) {
2070 points++; 801 points++;
2071 bj->playboard[x][y].type = 0; 802 bj->playboard[y][x].type = 0;
2072 } 803 }
2073 } 804 }
2074 bejeweled_drawboard(bj); 805 bejeweled_drawboard(bj);
@@ -2211,7 +942,7 @@ static int bejeweled(struct game_context* bj) {
2211 int lastbutton = BUTTON_NONE; 942 int lastbutton = BUTTON_NONE;
2212 char str[18]; 943 char str[18];
2213 char *title = "Bejeweled"; 944 char *title = "Bejeweled";
2214 bool breakout = false; 945 bool startgame = false;
2215 bool showscores = false; 946 bool showscores = false;
2216 bool selected = false; 947 bool selected = false;
2217 948
@@ -2224,7 +955,7 @@ static int bejeweled(struct game_context* bj) {
2224 /******************** 955 /********************
2225 * menu * 956 * menu *
2226 ********************/ 957 ********************/
2227 while(true){ 958 while(!startgame){
2228 rb->lcd_clear_display(); 959 rb->lcd_clear_display();
2229 960
2230 if(!showscores) { 961 if(!showscores) {
@@ -2258,16 +989,33 @@ static int bejeweled(struct game_context* bj) {
2258 rb->lcd_puts(0, 7, "Directions to move"); 989 rb->lcd_puts(0, 7, "Directions to move");
2259 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]); 990 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]);
2260 rb->lcd_puts(0, 9, str); 991 rb->lcd_puts(0, 9, str);
2261#elif (CONFIG_KEYPAD == IPOD_4G_PAD) 992#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
2262 rb->lcd_puts(0, 2, "PLAY to start"); 993 rb->lcd_puts(0, 2, "PLAY to start");
2263 rb->lcd_puts(0, 3, "SELECT+PLAY to save/resume"); 994 rb->lcd_puts(0, 3, "SELECT+PLAY to save/resume");
2264 rb->lcd_puts(0, 4, "SELECT+MENU to exit"); 995 rb->lcd_puts(0, 4, "SELECT+MENU to exit");
2265 rb->lcd_puts(0, 5, "SELECT to select"); 996 rb->lcd_puts(0, 5, "SELECT to select");
2266 rb->lcd_puts(0, 6, " and show high scores"); 997 rb->lcd_puts(0, 6, " and show high scores");
2267 rb->lcd_puts(0, 7, "Scroll to move"); 998 rb->lcd_puts(0, 7, "Scroll or Directions to move");
2268 rb->lcd_puts(0, 8, "Directions to swap"); 999 rb->lcd_puts(0, 8, "Directions to swap");
2269 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]); 1000 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]);
2270 rb->lcd_puts(0, 10, str); 1001 rb->lcd_puts(0, 10, str);
1002#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
1003 rb->lcd_puts(0, 1, "MODE to start");
1004 rb->lcd_puts(0, 2, "EQ to save/resume");
1005 rb->lcd_puts(0, 3, "PLAY to exit");
1006 rb->lcd_puts(0, 4, "SELECT to select");
1007 rb->lcd_puts(0, 5, "& show high scores");
1008 rb->lcd_puts(0, 6, "Directions to move");
1009 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]);
1010 rb->lcd_puts(0, 7, str);
1011#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
1012 rb->lcd_puts(0, 2, "PLAY to start");
1013 rb->lcd_puts(0, 3, "REC to save/resume");
1014 rb->lcd_puts(0, 4, "POWER to exit");
1015 rb->lcd_puts(0, 5, "MENU to select");
1016 rb->lcd_puts(0, 6, " and show high scores");
1017 rb->lcd_puts(0, 7, "Directions to move");
1018 rb->snprintf(str, 18, "High Score: %d", bj->highscores[0]);
2271#endif 1019#endif
2272 } else { 1020 } else {
2273 /* room for a title? */ 1021 /* room for a title? */
@@ -2276,7 +1024,7 @@ static int bejeweled(struct game_context* bj) {
2276 rb->snprintf(str, 12, "%s", "High Scores"); 1024 rb->snprintf(str, 12, "%s", "High Scores");
2277 rb->lcd_getstringsize(str, &w, &h); 1025 rb->lcd_getstringsize(str, &w, &h);
2278 rb->lcd_putsxy((LCD_WIDTH-w)/2, 0, str); 1026 rb->lcd_putsxy((LCD_WIDTH-w)/2, 0, str);
2279 j = 1; 1027 j = 2;
2280 } 1028 }
2281 1029
2282 /* print high scores */ 1030 /* print high scores */
@@ -2292,7 +1040,7 @@ static int bejeweled(struct game_context* bj) {
2292 button = rb->button_get(true); 1040 button = rb->button_get(true);
2293 switch(button){ 1041 switch(button){
2294 case BEJEWELED_START: /* start playing */ 1042 case BEJEWELED_START: /* start playing */
2295 breakout = true; 1043 startgame = true;
2296 break; 1044 break;
2297 1045
2298 case BEJEWELED_QUIT: /* quit program */ 1046 case BEJEWELED_QUIT: /* quit program */
@@ -2306,7 +1054,7 @@ static int bejeweled(struct game_context* bj) {
2306 if(!bejeweled_loadgame(bj)) { 1054 if(!bejeweled_loadgame(bj)) {
2307 rb->splash(HZ*2, true, "Nothing to resume"); 1055 rb->splash(HZ*2, true, "Nothing to resume");
2308 } else { 1056 } else {
2309 breakout = true; 1057 startgame = true;
2310 } 1058 }
2311 break; 1059 break;
2312 1060
@@ -2324,7 +1072,6 @@ static int bejeweled(struct game_context* bj) {
2324 break; 1072 break;
2325 } 1073 }
2326 1074
2327 if(breakout) break;
2328 if(button != BUTTON_NONE) lastbutton = button; 1075 if(button != BUTTON_NONE) lastbutton = button;
2329 } 1076 }
2330 1077
@@ -2369,7 +1116,7 @@ static int bejeweled(struct game_context* bj) {
2369 case BEJEWELED_RESUME: /* save and end game */ 1116 case BEJEWELED_RESUME: /* save and end game */
2370 rb->splash(HZ, true, "Saving game..."); 1117 rb->splash(HZ, true, "Saving game...");
2371 bejeweled_savegame(bj); 1118 bejeweled_savegame(bj);
2372 /* fall through to BEJEWELED_QUIT */ 1119 return BJ_END;
2373 1120
2374 case BEJEWELED_QUIT: /* end game */ 1121 case BEJEWELED_QUIT: /* end game */
2375 return BJ_END; 1122 return BJ_END;
@@ -2380,10 +1127,8 @@ static int bejeweled(struct game_context* bj) {
2380 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_LEFT); 1127 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_LEFT);
2381 selected = false; 1128 selected = false;
2382 if (!bejeweled_movesavail(bj)) return BJ_LOSE; 1129 if (!bejeweled_movesavail(bj)) return BJ_LOSE;
2383#ifndef BEJEWELED_SCROLLWHEEL
2384 } else { 1130 } else {
2385 x = (x+BJ_WIDTH-1)%BJ_WIDTH; 1131 x = (x+BJ_WIDTH-1)%BJ_WIDTH;
2386#endif
2387 } 1132 }
2388 break; 1133 break;
2389 1134
@@ -2393,10 +1138,8 @@ static int bejeweled(struct game_context* bj) {
2393 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_RIGHT); 1138 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_RIGHT);
2394 selected = false; 1139 selected = false;
2395 if (!bejeweled_movesavail(bj)) return BJ_LOSE; 1140 if (!bejeweled_movesavail(bj)) return BJ_LOSE;
2396#ifndef BEJEWELED_SCROLLWHEEL
2397 } else { 1141 } else {
2398 x = (x+1)%BJ_WIDTH; 1142 x = (x+1)%BJ_WIDTH;
2399#endif
2400 } 1143 }
2401 break; 1144 break;
2402 1145
@@ -2406,10 +1149,8 @@ static int bejeweled(struct game_context* bj) {
2406 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_DOWN); 1149 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_DOWN);
2407 selected = false; 1150 selected = false;
2408 if (!bejeweled_movesavail(bj)) return BJ_LOSE; 1151 if (!bejeweled_movesavail(bj)) return BJ_LOSE;
2409#ifndef BEJEWELED_SCROLLWHEEL
2410 } else { 1152 } else {
2411 y = (y+1)%(BJ_HEIGHT-1); 1153 y = (y+1)%(BJ_HEIGHT-1);
2412#endif
2413 } 1154 }
2414 break; 1155 break;
2415 1156
@@ -2419,10 +1160,8 @@ static int bejeweled(struct game_context* bj) {
2419 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_UP); 1160 bj->score += bejeweled_swapjewels(bj, x, y, SWAP_UP);
2420 selected = false; 1161 selected = false;
2421 if (!bejeweled_movesavail(bj)) return BJ_LOSE; 1162 if (!bejeweled_movesavail(bj)) return BJ_LOSE;
2422#ifndef BEJEWELED_SCROLLWHEEL
2423 } else { 1163 } else {
2424 y = (y+(BJ_HEIGHT-1)-1)%(BJ_HEIGHT-1); 1164 y = (y+(BJ_HEIGHT-1)-1)%(BJ_HEIGHT-1);
2425#endif
2426 } 1165 }
2427 break; 1166 break;
2428 1167
@@ -2485,6 +1224,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
2485 bejeweled_loadscores(&bj); 1224 bejeweled_loadscores(&bj);
2486 1225
2487 rb->lcd_setfont(FONT_SYSFIXED); 1226 rb->lcd_setfont(FONT_SYSFIXED);
1227 bejeweled_setcolors();
2488 1228
2489 while(!exit) { 1229 while(!exit) {
2490 switch(bejeweled(&bj)){ 1230 switch(bejeweled(&bj)){
@@ -2522,6 +1262,4 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) {
2522 return PLUGIN_OK; 1262 return PLUGIN_OK;
2523} 1263}
2524 1264
2525#endif /* width 160, depth 16 bits */
2526#endif /* HAVE_LCD_BITMAP */ 1265#endif /* HAVE_LCD_BITMAP */
2527