summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/blackjack.c3
-rw-r--r--apps/plugins/brickmania.c16
-rw-r--r--apps/plugins/bubbles.c20
-rw-r--r--apps/plugins/chessbox/chessbox.c6
-rw-r--r--apps/plugins/clock/clock_bitmaps.c55
-rw-r--r--apps/plugins/fire.c2
-rw-r--r--apps/plugins/flipit.c3
-rw-r--r--apps/plugins/invadrox.c24
-rw-r--r--apps/plugins/jackpot.c10
-rw-r--r--apps/plugins/jewels.c26
-rw-r--r--apps/plugins/lib/picture.c13
-rw-r--r--apps/plugins/lib/picture.h1
-rw-r--r--apps/plugins/matrix.c6
-rw-r--r--apps/plugins/pegbox.c3
-rw-r--r--apps/plugins/sliding_puzzle.c6
-rw-r--r--apps/plugins/sokoban.c28
-rw-r--r--apps/plugins/solitaire.c6
-rw-r--r--apps/plugins/star.c18
-rw-r--r--apps/plugins/sudoku/sudoku.c2
-rw-r--r--apps/plugins/superdom.c2
20 files changed, 160 insertions, 90 deletions
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index ec1bd46ce9..e00b209c9d 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -607,7 +607,8 @@ static void draw_card(struct card temp_card, bool shown,
607 if(shown) 607 if(shown)
608 rb->lcd_bitmap_part(card_deck, CARD_WIDTH*temp_card.num, 608 rb->lcd_bitmap_part(card_deck, CARD_WIDTH*temp_card.num,
609 CARD_HEIGHT*temp_card.suit, 609 CARD_HEIGHT*temp_card.suit,
610 STRIDE(BMPWIDTH_card_deck, BMPHEIGHT_card_deck), 610 STRIDE( SCREEN_MAIN, BMPWIDTH_card_deck,
611 BMPHEIGHT_card_deck),
611 x+1, y+1, CARD_WIDTH, CARD_HEIGHT); 612 x+1, y+1, CARD_WIDTH, CARD_HEIGHT);
612 else 613 else
613 rb->lcd_bitmap(card_back, x+1, y+1,CARD_WIDTH, CARD_HEIGHT); 614 rb->lcd_bitmap(card_back, x+1, y+1,CARD_WIDTH, CARD_HEIGHT);
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index bc606d6a24..82a883c7a4 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -1081,7 +1081,8 @@ static int brickmania_game_loop(void)
1081 brick[i*10+j].powertop+=SPEED_POWER; 1081 brick[i*10+j].powertop+=SPEED_POWER;
1082 rb->lcd_bitmap_part(brickmania_powerups,0, 1082 rb->lcd_bitmap_part(brickmania_powerups,0,
1083 POWERUP_HEIGHT*brick[i*10+j].power, 1083 POWERUP_HEIGHT*brick[i*10+j].power,
1084 STRIDE( BMPWIDTH_brickmania_powerups, 1084 STRIDE( SCREEN_MAIN,
1085 BMPWIDTH_brickmania_powerups,
1085 BMPHEIGHT_brickmania_powerups), 1086 BMPHEIGHT_brickmania_powerups),
1086 LEFTMARGIN+j*BRICK_WIDTH+ 1087 LEFTMARGIN+j*BRICK_WIDTH+
1087 (BRICK_WIDTH/2-POWERUP_WIDTH/2), 1088 (BRICK_WIDTH/2-POWERUP_WIDTH/2),
@@ -1205,7 +1206,8 @@ static int brickmania_game_loop(void)
1205 if (brick[i*10+j].used==1) { 1206 if (brick[i*10+j].used==1) {
1206 rb->lcd_bitmap_part(brickmania_bricks,0, 1207 rb->lcd_bitmap_part(brickmania_bricks,0,
1207 BRICK_HEIGHT*brick[i*10+j].color, 1208 BRICK_HEIGHT*brick[i*10+j].color,
1208 STRIDE( BMPWIDTH_brickmania_bricks, 1209 STRIDE( SCREEN_MAIN,
1210 BMPWIDTH_brickmania_bricks,
1209 BMPHEIGHT_brickmania_bricks), 1211 BMPHEIGHT_brickmania_bricks),
1210 LEFTMARGIN+j*BRICK_WIDTH, 1212 LEFTMARGIN+j*BRICK_WIDTH,
1211 TOPMARGIN+i*BRICK_HEIGHT, 1213 TOPMARGIN+i*BRICK_HEIGHT,
@@ -1214,7 +1216,8 @@ static int brickmania_game_loop(void)
1214 if (brick[i*10+j].hiteffect>0) 1216 if (brick[i*10+j].hiteffect>0)
1215 rb->lcd_bitmap_transparent_part(brickmania_break,0, 1217 rb->lcd_bitmap_transparent_part(brickmania_break,0,
1216 BRICK_HEIGHT*brick[i*10+j].hiteffect, 1218 BRICK_HEIGHT*brick[i*10+j].hiteffect,
1217 STRIDE( BMPWIDTH_brickmania_break, 1219 STRIDE( SCREEN_MAIN,
1220 BMPWIDTH_brickmania_break,
1218 BMPHEIGHT_brickmania_break), 1221 BMPHEIGHT_brickmania_break),
1219 LEFTMARGIN+j*BRICK_WIDTH, 1222 LEFTMARGIN+j*BRICK_WIDTH,
1220 TOPMARGIN+i*BRICK_HEIGHT, 1223 TOPMARGIN+i*BRICK_HEIGHT,
@@ -1377,7 +1380,8 @@ static int brickmania_game_loop(void)
1377 rb->lcd_bitmap_part( 1380 rb->lcd_bitmap_part(
1378 brickmania_pads, 1381 brickmania_pads,
1379 0, pad_type*PAD_HEIGHT, 1382 0, pad_type*PAD_HEIGHT,
1380 STRIDE(BMPWIDTH_brickmania_pads, BMPHEIGHT_brickmania_pads), 1383 STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_pads,
1384 BMPHEIGHT_brickmania_pads),
1381 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); 1385 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT);
1382 } 1386 }
1383 else if( pad_width == LONG_PAD_WIDTH ) /* Long Pad */ 1387 else if( pad_width == LONG_PAD_WIDTH ) /* Long Pad */
@@ -1385,7 +1389,7 @@ static int brickmania_game_loop(void)
1385 rb->lcd_bitmap_part( 1389 rb->lcd_bitmap_part(
1386 brickmania_long_pads, 1390 brickmania_long_pads,
1387 0,pad_type*PAD_HEIGHT, 1391 0,pad_type*PAD_HEIGHT,
1388 STRIDE( BMPWIDTH_brickmania_long_pads, 1392 STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_long_pads,
1389 BMPHEIGHT_brickmania_long_pads), 1393 BMPHEIGHT_brickmania_long_pads),
1390 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); 1394 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT);
1391 } 1395 }
@@ -1394,7 +1398,7 @@ static int brickmania_game_loop(void)
1394 rb->lcd_bitmap_part( 1398 rb->lcd_bitmap_part(
1395 brickmania_short_pads, 1399 brickmania_short_pads,
1396 0,pad_type*PAD_HEIGHT, 1400 0,pad_type*PAD_HEIGHT,
1397 STRIDE( BMPWIDTH_brickmania_short_pads, 1401 STRIDE( SCREEN_MAIN, BMPWIDTH_brickmania_short_pads,
1398 BMPHEIGHT_brickmania_short_pads), 1402 BMPHEIGHT_brickmania_short_pads),
1399 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT); 1403 pad_pos_x, PAD_POS_Y, pad_width, PAD_HEIGHT);
1400 } 1404 }
diff --git a/apps/plugins/bubbles.c b/apps/plugins/bubbles.c
index e8618e95bb..da927de01c 100644
--- a/apps/plugins/bubbles.c
+++ b/apps/plugins/bubbles.c
@@ -1441,7 +1441,8 @@ static void bubbles_drawboard(struct game_context* bb) {
1441 if(bb->playboard[i][j].type >= 0 && !bb->playboard[i][j].delete) { 1441 if(bb->playboard[i][j].type >= 0 && !bb->playboard[i][j].delete) {
1442 rb->lcd_bitmap_part(bubbles_emblem, 1442 rb->lcd_bitmap_part(bubbles_emblem,
1443 0, EMBLEM_HEIGHT*bb->playboard[i][j].type, 1443 0, EMBLEM_HEIGHT*bb->playboard[i][j].type,
1444 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 1444 STRIDE( SCREEN_MAIN,
1445 BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem),
1445 XOFS+indent+BUBBLE_WIDTH*j+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, 1446 XOFS+indent+BUBBLE_WIDTH*j+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2,
1446 YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+bb->compress*ROW_HEIGHT, 1447 YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+bb->compress*ROW_HEIGHT,
1447 EMBLEM_WIDTH, EMBLEM_HEIGHT); 1448 EMBLEM_WIDTH, EMBLEM_HEIGHT);
@@ -1458,7 +1459,8 @@ static void bubbles_drawboard(struct game_context* bb) {
1458 /* display bubble to be shot */ 1459 /* display bubble to be shot */
1459 rb->lcd_bitmap_part(bubbles_emblem, 1460 rb->lcd_bitmap_part(bubbles_emblem,
1460 0, EMBLEM_HEIGHT*bb->queue[bb->nextinq], 1461 0, EMBLEM_HEIGHT*bb->queue[bb->nextinq],
1461 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 1462 STRIDE( SCREEN_MAIN,
1463 BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem),
1462 SHOTX+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, 1464 SHOTX+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2,
1463 SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, 1465 SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2,
1464 EMBLEM_WIDTH, EMBLEM_HEIGHT); 1466 EMBLEM_WIDTH, EMBLEM_HEIGHT);
@@ -1472,7 +1474,8 @@ static void bubbles_drawboard(struct game_context* bb) {
1472#ifndef NEXT_BB_X 1474#ifndef NEXT_BB_X
1473 rb->lcd_bitmap_part(bubbles_emblem, 1475 rb->lcd_bitmap_part(bubbles_emblem,
1474 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], 1476 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE],
1475 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 1477 STRIDE( SCREEN_MAIN,
1478 BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem),
1476 XOFS/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, 1479 XOFS/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2,
1477 SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, 1480 SHOTY+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2,
1478 EMBLEM_WIDTH, EMBLEM_HEIGHT); 1481 EMBLEM_WIDTH, EMBLEM_HEIGHT);
@@ -1484,7 +1487,8 @@ static void bubbles_drawboard(struct game_context* bb) {
1484#else 1487#else
1485 rb->lcd_bitmap_part(bubbles_emblem, 1488 rb->lcd_bitmap_part(bubbles_emblem,
1486 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE], 1489 0, EMBLEM_HEIGHT*bb->queue[(bb->nextinq+1)%NUM_QUEUE],
1487 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 1490 STRIDE( SCREEN_MAIN,
1491 BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem),
1488 NEXT_BB_X + NEXT_BB_WIDTH/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, 1492 NEXT_BB_X + NEXT_BB_WIDTH/2-BUBBLE_WIDTH/2+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2,
1489 NEXT_BB_Y + (BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2 + h, 1493 NEXT_BB_Y + (BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2 + h,
1490 EMBLEM_WIDTH, EMBLEM_HEIGHT); 1494 EMBLEM_WIDTH, EMBLEM_HEIGHT);
@@ -1607,7 +1611,9 @@ static int bubbles_fire(struct game_context* bb) {
1607 /* display shot */ 1611 /* display shot */
1608 bubbles_drawboard(bb); 1612 bubbles_drawboard(bb);
1609 rb->lcd_bitmap_part(bubbles_emblem, 0, EMBLEM_HEIGHT*bubblecur, 1613 rb->lcd_bitmap_part(bubbles_emblem, 0, EMBLEM_HEIGHT*bubblecur,
1610 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 1614 STRIDE( SCREEN_MAIN,
1615 BMPWIDTH_bubbles_emblem,
1616 BMPHEIGHT_bubbles_emblem),
1611 SHOTX+tempxofs+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2, 1617 SHOTX+tempxofs+(BUBBLE_WIDTH-EMBLEM_WIDTH)/2,
1612 SHOTY+tempyofs+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2, 1618 SHOTY+tempyofs+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2,
1613 EMBLEM_WIDTH, EMBLEM_HEIGHT); 1619 EMBLEM_WIDTH, EMBLEM_HEIGHT);
@@ -2070,7 +2076,9 @@ static int bubbles_fall(struct game_context* bb) {
2070 2076
2071 rb->lcd_bitmap_part(bubbles_emblem, 0, 2077 rb->lcd_bitmap_part(bubbles_emblem, 0,
2072 EMBLEM_HEIGHT*bb->playboard[i][j].type, 2078 EMBLEM_HEIGHT*bb->playboard[i][j].type,
2073 STRIDE(BMPWIDTH_bubbles_emblem, BMPHEIGHT_bubbles_emblem), 2079 STRIDE( SCREEN_MAIN,
2080 BMPWIDTH_bubbles_emblem,
2081 BMPHEIGHT_bubbles_emblem),
2074 XOFS+indent+BUBBLE_WIDTH*j+ 2082 XOFS+indent+BUBBLE_WIDTH*j+
2075 (BUBBLE_WIDTH-EMBLEM_WIDTH)/2+xofs, 2083 (BUBBLE_WIDTH-EMBLEM_WIDTH)/2+xofs,
2076 YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+ 2084 YOFS+ROW_HEIGHT*i+(BUBBLE_HEIGHT-EMBLEM_HEIGHT)/2+
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index 0369eda174..72a8b238a8 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -134,7 +134,8 @@ static void cb_drawboard (void) {
134 if ( piece == no_piece ) { 134 if ( piece == no_piece ) {
135 rb->lcd_bitmap_part ( chessbox_pieces , 0 , 135 rb->lcd_bitmap_part ( chessbox_pieces , 0 ,
136 TILE_HEIGHT * b_color , 136 TILE_HEIGHT * b_color ,
137 STRIDE( BMPWIDTH_chessbox_pieces, 137 STRIDE( SCREEN_MAIN,
138 BMPWIDTH_chessbox_pieces,
138 BMPHEIGHT_chessbox_pieces) , 139 BMPHEIGHT_chessbox_pieces) ,
139 XOFS + x*TILE_WIDTH , 140 XOFS + x*TILE_WIDTH ,
140 YOFS + ( 7 - y )*TILE_HEIGHT , 141 YOFS + ( 7 - y )*TILE_HEIGHT ,
@@ -147,7 +148,8 @@ static void cb_drawboard (void) {
147 4 * TILE_HEIGHT * ( piece - 1 ) + 148 4 * TILE_HEIGHT * ( piece - 1 ) +
148 2 * TILE_HEIGHT * p_color + 149 2 * TILE_HEIGHT * p_color +
149 TILE_HEIGHT * b_color , 150 TILE_HEIGHT * b_color ,
150 STRIDE( BMPWIDTH_chessbox_pieces, 151 STRIDE( SCREEN_MAIN,
152 BMPWIDTH_chessbox_pieces,
151 BMPHEIGHT_chessbox_pieces) , 153 BMPHEIGHT_chessbox_pieces) ,
152 XOFS + x*TILE_WIDTH , 154 XOFS + x*TILE_WIDTH ,
153 YOFS + (7 - y)*TILE_HEIGHT , 155 YOFS + (7 - y)*TILE_HEIGHT ,
diff --git a/apps/plugins/clock/clock_bitmaps.c b/apps/plugins/clock/clock_bitmaps.c
index 4ab6bf4f9a..50c31806bc 100644
--- a/apps/plugins/clock/clock_bitmaps.c
+++ b/apps/plugins/clock/clock_bitmaps.c
@@ -46,62 +46,67 @@
46 46
47 47
48const struct picture logos[]={ 48const struct picture logos[]={
49 {clock_logo, BMPWIDTH_clock_logo, BMPHEIGHT_clock_logo}, 49 {clock_logo, BMPWIDTH_clock_logo, BMPHEIGHT_clock_logo,
50 BMPHEIGHT_clock_logo},
50#if NB_SCREENS==2 51#if NB_SCREENS==2
51 {clock_logo_remote,BMPWIDTH_clock_logo_remote,BMPHEIGHT_clock_logo_remote} 52 {clock_logo_remote,BMPWIDTH_clock_logo_remote,
53 BMPHEIGHT_clock_logo_remote, BMPHEIGHT_clock_logo_remote}
52#endif 54#endif
53}; 55};
54 56
55const struct picture messages[]={ 57const struct picture messages[]={
56 {clock_messages,BMPWIDTH_clock_messages, 58 {clock_messages,BMPWIDTH_clock_messages, BMPHEIGHT_clock_messages,
57 BMPHEIGHT_clock_messages/6}, 59 BMPHEIGHT_clock_messages/6},
58#if NB_SCREENS==2 60#if NB_SCREENS==2
59 {clock_messages_remote,BMPWIDTH_clock_messages_remote, 61 {clock_messages_remote,BMPWIDTH_clock_messages_remote,
60 BMPHEIGHT_clock_messages_remote/6} 62 BMPHEIGHT_clock_messages_remote, BMPHEIGHT_clock_messages_remote/6}
61#endif 63#endif
62}; 64};
63 65
64const struct picture binary[]={ 66const struct picture binary[]={
65 {clock_binary, 67 {clock_binary, BMPWIDTH_clock_binary, BMPHEIGHT_clock_binary,
66 BMPWIDTH_clock_binary, BMPHEIGHT_clock_binary/2 }, 68 BMPHEIGHT_clock_binary/2 },
67#if NB_SCREENS==2 69#if NB_SCREENS==2
68 {clock_binary_remote, 70 {clock_binary_remote, BMPWIDTH_clock_binary_remote,
69 BMPWIDTH_clock_binary_remote,BMPHEIGHT_clock_binary_remote/2} 71 BMPHEIGHT_clock_binary_remote, BMPHEIGHT_clock_binary_remote/2}
70#endif 72#endif
71}; 73};
72 74
73const struct picture digits[]={ 75const struct picture digits[]={
74 {clock_digits, 76 {clock_digits, BMPWIDTH_clock_digits, BMPHEIGHT_clock_digits,
75 BMPWIDTH_clock_digits, BMPHEIGHT_clock_digits/13 }, 77 BMPHEIGHT_clock_digits/13 },
76#if NB_SCREENS==2 78#if NB_SCREENS==2
77 {clock_digits_remote, 79 {clock_digits_remote,
78 BMPWIDTH_clock_digits_remote,BMPHEIGHT_clock_digits_remote/13} 80 BMPWIDTH_clock_digits_remote, BMPHEIGHT_clock_digits_remote,
81 BMPHEIGHT_clock_digits_remote/13}
79#endif 82#endif
80}; 83};
81 84
82const struct picture smalldigits[]={ 85const struct picture smalldigits[]={
83 {clock_smalldigits, 86 {clock_smalldigits, BMPWIDTH_clock_smalldigits, BMPHEIGHT_clock_smalldigits,
84 BMPWIDTH_clock_smalldigits, BMPHEIGHT_clock_smalldigits/13 }, 87 BMPHEIGHT_clock_smalldigits/13 },
85#if NB_SCREENS==2 88#if NB_SCREENS==2
86 {clock_smalldigits_remote, 89 {clock_smalldigits_remote, BMPWIDTH_clock_smalldigits_remote,
87 BMPWIDTH_clock_smalldigits_remote,BMPHEIGHT_clock_smalldigits_remote/13} 90 BMPHEIGHT_clock_smalldigits_remote,
91 BMPHEIGHT_clock_smalldigits_remote/13}
88#endif 92#endif
89}; 93};
90 94
91const struct picture segments[]={ 95const struct picture segments[]={
92 {clock_segments, 96 {clock_segments, BMPWIDTH_clock_segments, BMPHEIGHT_clock_segments,
93 BMPWIDTH_clock_segments, BMPHEIGHT_clock_segments/13 }, 97 BMPHEIGHT_clock_segments/13 },
94#if NB_SCREENS==2 98#if NB_SCREENS==2
95 {clock_segments_remote, 99 {clock_segments_remote, BMPWIDTH_clock_segments_remote,
96 BMPWIDTH_clock_segments_remote,BMPHEIGHT_clock_segments_remote/13} 100 BMPHEIGHT_clock_segments_remote, BMPHEIGHT_clock_segments_remote/13}
97#endif 101#endif
98}; 102};
99 103
100const struct picture smallsegments[]={ 104const struct picture smallsegments[]={
101 {clock_smallsegments, 105 {clock_smallsegments, BMPWIDTH_clock_smallsegments,
102 BMPWIDTH_clock_smallsegments, BMPHEIGHT_clock_smallsegments/13 }, 106 BMPHEIGHT_clock_smallsegments, BMPHEIGHT_clock_smallsegments/13 },
103#if NB_SCREENS==2 107#if NB_SCREENS==2
104 {clock_smallsegments_remote, 108 {clock_smallsegments_remote, BMPWIDTH_clock_smallsegments_remote,
105 BMPWIDTH_clock_smallsegments_remote,BMPHEIGHT_clock_smallsegments_remote/13} 109 BMPHEIGHT_clock_smallsegments_remote,
110 BMPHEIGHT_clock_smallsegments_remote/13}
106#endif 111#endif
107}; 112};
diff --git a/apps/plugins/fire.c b/apps/plugins/fire.c
index 201d18970f..fff39b38c9 100644
--- a/apps/plugins/fire.c
+++ b/apps/plugins/fire.c
@@ -112,7 +112,7 @@ void color_palette_init(fb_data* palette)
112 palette[i + 224]=LCD_RGBPACK(255, 255, 224 + i); 112 palette[i + 224]=LCD_RGBPACK(255, 255, 224 + i);
113 } 113 }
114#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256) 114#if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_PAL256)
115 rb->lcd_pal256_update_pal(palette); 115 rb->lcd_pal256_update_pal(palette);
116#endif 116#endif
117} 117}
118 118
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 49fb5344ec..63260a4882 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -354,7 +354,8 @@ static int cursor_pos, moves;
354static void draw_spot(int p) 354static void draw_spot(int p)
355{ 355{
356 rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT, 356 rb->lcd_bitmap_part( flipit_tokens, 0, spots[p] * TK_HEIGHT,
357 STRIDE(BMPWIDTH_flipit_tokens, BMPHEIGHT_flipit_tokens), 357 STRIDE(SCREEN_MAIN, BMPWIDTH_flipit_tokens,
358 BMPHEIGHT_flipit_tokens),
358 GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE), 359 GRID_LEFT + (p%5) * (TK_WIDTH+TK_SPACE),
359 GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE), 360 GRID_TOP + (p/5) * (TK_HEIGHT+TK_SPACE),
360 TK_WIDTH, TK_HEIGHT ); 361 TK_WIDTH, TK_HEIGHT );
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 33ec343a87..1886ed4b49 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -684,7 +684,8 @@ void draw_number(int x, int y, int num, int digits)
684 d = num % 10; 684 d = num % 10;
685 num = num / 10; 685 num = num / 10;
686 rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0, 686 rb->lcd_bitmap_part(invadrox_numbers, d * NUMBERS_WIDTH, 0,
687 STRIDE( BMPWIDTH_invadrox_numbers, 687 STRIDE( SCREEN_MAIN,
688 BMPWIDTH_invadrox_numbers,
688 BMPHEIGHT_invadrox_numbers), 689 BMPHEIGHT_invadrox_numbers),
689 x + i * (NUMBERS_WIDTH + NUM_SPACING), y, 690 x + i * (NUMBERS_WIDTH + NUM_SPACING), y,
690 NUMBERS_WIDTH, FONT_HEIGHT); 691 NUMBERS_WIDTH, FONT_HEIGHT);
@@ -715,7 +716,8 @@ void draw_lives(void)
715 int i; 716 int i;
716 /* Lives num */ 717 /* Lives num */
717 rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0, 718 rb->lcd_bitmap_part(invadrox_numbers, lives * NUMBERS_WIDTH, 0,
718 STRIDE( BMPWIDTH_invadrox_numbers, 719 STRIDE( SCREEN_MAIN,
720 BMPWIDTH_invadrox_numbers,
719 BMPHEIGHT_invadrox_numbers), 721 BMPHEIGHT_invadrox_numbers),
720 PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2, 722 PLAYFIELD_X + LIVES_X, PLAYFIELD_Y + 2,
721 NUMBERS_WIDTH, FONT_HEIGHT); 723 NUMBERS_WIDTH, FONT_HEIGHT);
@@ -723,7 +725,8 @@ void draw_lives(void)
723 /* Ships */ 725 /* Ships */
724 for (i = 0; i < (lives - 1); i++) { 726 for (i = 0; i < (lives - 1); i++) {
725 rb->lcd_bitmap_part(invadrox_ships, 0, 0, 727 rb->lcd_bitmap_part(invadrox_ships, 0, 0,
726 STRIDE( BMPWIDTH_invadrox_ships, 728 STRIDE( SCREEN_MAIN,
729 BMPWIDTH_invadrox_ships,
727 BMPHEIGHT_invadrox_ships), 730 BMPHEIGHT_invadrox_ships),
728 PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING), 731 PLAYFIELD_X + LIVES_X + SHIP_WIDTH + i * (SHIP_WIDTH + NUM_SPACING),
729 PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT); 732 PLAYFIELD_Y + 1, SHIP_WIDTH, SHIP_HEIGHT);
@@ -747,7 +750,8 @@ inline void draw_aliens(void)
747 for (i = 0; i < 5 * ALIENS; i++) { 750 for (i = 0; i < 5 * ALIENS; i++) {
748 rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0, 751 rb->lcd_bitmap_part(invadrox_aliens, aliens[i].x & 1 ? ALIEN_WIDTH : 0,
749 aliens[i].type * ALIEN_HEIGHT, 752 aliens[i].type * ALIEN_HEIGHT,
750 STRIDE( BMPWIDTH_invadrox_aliens, 753 STRIDE( SCREEN_MAIN,
754 BMPWIDTH_invadrox_aliens,
751 BMPHEIGHT_invadrox_aliens), 755 BMPHEIGHT_invadrox_aliens),
752 PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED, 756 PLAYFIELD_X + LIVES_X + aliens[i].x * ALIEN_SPEED,
753 ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT, 757 ALIEN_START_Y + aliens[i].y * ALIEN_HEIGHT,
@@ -888,7 +892,8 @@ bool move_aliens(void)
888 rb->lcd_bitmap_part(invadrox_aliens, 892 rb->lcd_bitmap_part(invadrox_aliens,
889 aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0, 893 aliens[curr_alien].x & 1 ? ALIEN_WIDTH : 0,
890 aliens[curr_alien].type * ALIEN_HEIGHT, 894 aliens[curr_alien].type * ALIEN_HEIGHT,
891 STRIDE( BMPWIDTH_invadrox_aliens, 895 STRIDE( SCREEN_MAIN,
896 BMPWIDTH_invadrox_aliens,
892 BMPHEIGHT_invadrox_aliens), 897 BMPHEIGHT_invadrox_aliens),
893 x, y, ALIEN_WIDTH, ALIEN_HEIGHT); 898 x, y, ALIEN_WIDTH, ALIEN_HEIGHT);
894 899
@@ -918,7 +923,8 @@ inline void draw_ship(void)
918 923
919 /* Draw ship */ 924 /* Draw ship */
920 rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT, 925 rb->lcd_bitmap_part(invadrox_ships, 0, ship_frame * SHIP_HEIGHT,
921 STRIDE( BMPWIDTH_invadrox_ships, 926 STRIDE( SCREEN_MAIN,
927 BMPWIDTH_invadrox_ships,
922 BMPHEIGHT_invadrox_ships), 928 BMPHEIGHT_invadrox_ships),
923 ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT); 929 ship_x, SHIP_Y, SHIP_WIDTH, SHIP_HEIGHT);
924 if (ship_hit) { 930 if (ship_hit) {
@@ -1160,7 +1166,8 @@ inline void draw_bomb(int i)
1160{ 1166{
1161 rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH, 1167 rb->lcd_bitmap_part(invadrox_bombs, bombs[i].type * BOMB_WIDTH,
1162 bombs[i].frame * BOMB_HEIGHT, 1168 bombs[i].frame * BOMB_HEIGHT,
1163 STRIDE( BMPWIDTH_invadrox_bombs, 1169 STRIDE( SCREEN_MAIN,
1170 BMPWIDTH_invadrox_bombs,
1164 BMPHEIGHT_invadrox_bombs), 1171 BMPHEIGHT_invadrox_bombs),
1165 bombs[i].x, bombs[i].y, 1172 bombs[i].x, bombs[i].y,
1166 BOMB_WIDTH, BOMB_HEIGHT); 1173 BOMB_WIDTH, BOMB_HEIGHT);
@@ -1262,7 +1269,8 @@ void move_bombs(void)
1262 bombs[i].state = S_EXPLODE * 4; 1269 bombs[i].state = S_EXPLODE * 4;
1263 bombs[i].target = TARGET_SHIP; 1270 bombs[i].target = TARGET_SHIP;
1264 rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT, 1271 rb->lcd_bitmap_part(invadrox_ships, 0, 1 * SHIP_HEIGHT,
1265 STRIDE( BMPWIDTH_invadrox_ships, 1272 STRIDE( SCREEN_MAIN,
1273 BMPWIDTH_invadrox_ships,
1266 BMPHEIGHT_invadrox_ships), 1274 BMPHEIGHT_invadrox_ships),
1267 ship_x, SHIP_Y, 1275 ship_x, SHIP_Y,
1268 SHIP_WIDTH, SHIP_HEIGHT); 1276 SHIP_WIDTH, SHIP_HEIGHT);
diff --git a/apps/plugins/jackpot.c b/apps/plugins/jackpot.c
index e13dcf8994..4ab1d3a837 100644
--- a/apps/plugins/jackpot.c
+++ b/apps/plugins/jackpot.c
@@ -62,9 +62,11 @@ static unsigned long char_patterns[NB_SLOTS];
62#endif 62#endif
63 63
64const struct picture jackpot_pictures[]={ 64const struct picture jackpot_pictures[]={
65 {jackpot_slots, BMPWIDTH_jackpot_slots,PICTURE_HEIGHT}, 65 {jackpot_slots, BMPWIDTH_jackpot_slots, BMPHEIGHT_jackpot_slots,
66 PICTURE_HEIGHT},
66#if NB_SCREENS==2 67#if NB_SCREENS==2
67 {jackpot_slots_remote,BMPWIDTH_jackpot_slots_remote,REMOTE_PICTURE_HEIGHT} 68 {jackpot_slots_remote,BMPWIDTH_jackpot_slots_remote,
69 BMPHEIGHT_jackpot_slots_remote, REMOTE_PICTURE_HEIGHT}
68#endif 70#endif
69}; 71};
70 72
@@ -172,7 +174,7 @@ void jackpot_display_slot_machine(struct jackpot* game, struct screen* display)
172#else 174#else
173 const struct picture* picture= &(jackpot_pictures[display->screen_type]); 175 const struct picture* picture= &(jackpot_pictures[display->screen_type]);
174 int pos_x=(display->getwidth()-NB_SLOTS*(picture->width+1))/2; 176 int pos_x=(display->getwidth()-NB_SLOTS*(picture->width+1))/2;
175 int pos_y=(display->getheight()-(picture->height))/2; 177 int pos_y=(display->getheight()-(picture->slide_height))/2;
176#endif /* HAVE_LCD_CHARCELLS */ 178#endif /* HAVE_LCD_CHARCELLS */
177 for(i=0;i<NB_SLOTS;i++) 179 for(i=0;i<NB_SLOTS;i++)
178 { 180 {
@@ -181,7 +183,7 @@ void jackpot_display_slot_machine(struct jackpot* game, struct screen* display)
181 int state_y=(game->slot_state[i]*7)/PICTURE_ROTATION_STEPS; 183 int state_y=(game->slot_state[i]*7)/PICTURE_ROTATION_STEPS;
182#else 184#else
183 int state_y= 185 int state_y=
184 (picture->height*game->slot_state[i])/PICTURE_ROTATION_STEPS; 186 (picture->slide_height*game->slot_state[i])/PICTURE_ROTATION_STEPS;
185#endif /* HAVE_LCD_CHARCELLS */ 187#endif /* HAVE_LCD_CHARCELLS */
186 int previous_state_y=game->state_y[display->screen_type][i]; 188 int previous_state_y=game->state_y[display->screen_type][i];
187 if(state_y==previous_state_y) 189 if(state_y==previous_state_y)
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 01c5e1ea0b..f049fdca5c 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -512,13 +512,15 @@ static void jewels_drawboard(struct game_context* bj) {
512 TILE_WIDTH, TILE_HEIGHT); 512 TILE_WIDTH, TILE_HEIGHT);
513 rb->lcd_bitmap_transparent_part(jewels, 513 rb->lcd_bitmap_transparent_part(jewels,
514 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), 514 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
515 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 515 STRIDE( SCREEN_MAIN,
516 BMPWIDTH_jewels, BMPHEIGHT_jewels),
516 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, 517 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
517 TILE_WIDTH, TILE_HEIGHT); 518 TILE_WIDTH, TILE_HEIGHT);
518#else 519#else
519 rb->lcd_bitmap_part(jewels, 520 rb->lcd_bitmap_part(jewels,
520 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), 521 0, TILE_HEIGHT*(bj->playboard[i+1][j].type),
521 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 522 STRIDE( SCREEN_MAIN,
523 BMPWIDTH_jewels, BMPHEIGHT_jewels),
522 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, 524 j*TILE_WIDTH, i*TILE_HEIGHT+YOFS,
523 TILE_WIDTH, TILE_HEIGHT); 525 TILE_WIDTH, TILE_HEIGHT);
524#endif 526#endif
@@ -730,7 +732,9 @@ static void jewels_putjewels(struct game_context* bj){
730#ifdef HAVE_LCD_COLOR 732#ifdef HAVE_LCD_COLOR
731 rb->lcd_bitmap_transparent_part(jewels, 0, 733 rb->lcd_bitmap_transparent_part(jewels, 0,
732 TILE_HEIGHT*(bj->playboard[i][j].type), 734 TILE_HEIGHT*(bj->playboard[i][j].type),
733 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 735 STRIDE( SCREEN_MAIN,
736 BMPWIDTH_jewels,
737 BMPHEIGHT_jewels),
734 j*TILE_WIDTH, 738 j*TILE_WIDTH,
735 (i-1)*TILE_HEIGHT+YOFS+ 739 (i-1)*TILE_HEIGHT+YOFS+
736 ((((TILE_HEIGHT<<10)*k)/8)>>10), 740 ((((TILE_HEIGHT<<10)*k)/8)>>10),
@@ -738,7 +742,9 @@ static void jewels_putjewels(struct game_context* bj){
738#else 742#else
739 rb->lcd_bitmap_part(jewels, 0, 743 rb->lcd_bitmap_part(jewels, 0,
740 TILE_HEIGHT*(bj->playboard[i][j].type), 744 TILE_HEIGHT*(bj->playboard[i][j].type),
741 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 745 STRIDE( SCREEN_MAIN,
746 BMPWIDTH_jewels,
747 BMPHEIGHT_jewels),
742 j*TILE_WIDTH, 748 j*TILE_WIDTH,
743 (i-1)*TILE_HEIGHT+YOFS+ 749 (i-1)*TILE_HEIGHT+YOFS+
744 ((((TILE_HEIGHT<<10)*k)/8)>>10), 750 ((((TILE_HEIGHT<<10)*k)/8)>>10),
@@ -958,7 +964,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
958 rb->lcd_bitmap_transparent_part(jewels, 964 rb->lcd_bitmap_transparent_part(jewels,
959 0, TILE_HEIGHT*(bj->playboard 965 0, TILE_HEIGHT*(bj->playboard
960 [y+1+vertmod][x+horzmod].type), 966 [y+1+vertmod][x+horzmod].type),
961 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 967 STRIDE( SCREEN_MAIN,
968 BMPWIDTH_jewels, BMPHEIGHT_jewels),
962 (x+horzmod)*TILE_WIDTH-horzmod* 969 (x+horzmod)*TILE_WIDTH-horzmod*
963 ((((movelen<<10)*k)/8)>>10), 970 ((((movelen<<10)*k)/8)>>10),
964 (y+vertmod)*TILE_HEIGHT-vertmod* 971 (y+vertmod)*TILE_HEIGHT-vertmod*
@@ -966,7 +973,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
966 TILE_WIDTH, TILE_HEIGHT); 973 TILE_WIDTH, TILE_HEIGHT);
967 rb->lcd_bitmap_transparent_part(jewels, 974 rb->lcd_bitmap_transparent_part(jewels,
968 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), 975 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
969 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 976 STRIDE( SCREEN_MAIN,
977 BMPWIDTH_jewels, BMPHEIGHT_jewels),
970 x*TILE_WIDTH+horzmod* 978 x*TILE_WIDTH+horzmod*
971 ((((movelen<<10)*k)/8)>>10), 979 ((((movelen<<10)*k)/8)>>10),
972 y*TILE_HEIGHT+vertmod* 980 y*TILE_HEIGHT+vertmod*
@@ -976,7 +984,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
976 rb->lcd_bitmap_part(jewels, 984 rb->lcd_bitmap_part(jewels,
977 0, TILE_HEIGHT*(bj->playboard 985 0, TILE_HEIGHT*(bj->playboard
978 [y+1+vertmod][x+horzmod].type), 986 [y+1+vertmod][x+horzmod].type),
979 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 987 STRIDE( SCREEN_MAIN,
988 BMPWIDTH_jewels, BMPHEIGHT_jewels),
980 (x+horzmod)*TILE_WIDTH-horzmod* 989 (x+horzmod)*TILE_WIDTH-horzmod*
981 ((((movelen<<10)*k)/8)>>10), 990 ((((movelen<<10)*k)/8)>>10),
982 (y+vertmod)*TILE_HEIGHT-vertmod* 991 (y+vertmod)*TILE_HEIGHT-vertmod*
@@ -985,7 +994,8 @@ static unsigned int jewels_swapjewels(struct game_context* bj,
985 rb->lcd_set_drawmode(DRMODE_FG); 994 rb->lcd_set_drawmode(DRMODE_FG);
986 rb->lcd_bitmap_part(jewels, 995 rb->lcd_bitmap_part(jewels,
987 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), 996 0, TILE_HEIGHT*(bj->playboard[y+1][x].type),
988 STRIDE(BMPWIDTH_jewels, BMPHEIGHT_jewels), 997 STRIDE( SCREEN_MAIN,
998 BMPWIDTH_jewels, BMPHEIGHT_jewels),
989 x*TILE_WIDTH+horzmod* 999 x*TILE_WIDTH+horzmod*
990 ((((movelen<<10)*k)/8)>>10), 1000 ((((movelen<<10)*k)/8)>>10),
991 y*TILE_HEIGHT+vertmod* 1001 y*TILE_HEIGHT+vertmod*
diff --git a/apps/plugins/lib/picture.c b/apps/plugins/lib/picture.c
index a759b945b6..7717b76eeb 100644
--- a/apps/plugins/lib/picture.c
+++ b/apps/plugins/lib/picture.c
@@ -26,15 +26,15 @@ void picture_draw(struct screen* display, const struct picture* picture,
26 display->bitmap( 26 display->bitmap(
27 picture->data, 27 picture->data,
28 x, y, 28 x, y,
29 picture->width, picture->height 29 picture->width, picture->slide_height
30 ); 30 );
31} 31}
32 32
33/** 33/**
34 * Draws a part of the given picture on the given screen 34 * Draws a part of the given picture on the given screen
35 * Use it when the data contains multiple pictures from top to bottom. 35 * Use it when the data contains multiple pictures from top to bottom.
36 * In that case, picture.height represents the height of one picture, 36 * In that case, picture.slide_height represents the height of one picture,
37 * not the whole set. 37 * not the whole set. picture.height represents the height of the whole image
38 * @param display the screen where to display the picture 38 * @param display the screen where to display the picture
39 * @param picture the picture's data, only a part will be displayed 39 * @param picture the picture's data, only a part will be displayed
40 * @param yoffset display the data in the picture from yoffset to 40 * @param yoffset display the data in the picture from yoffset to
@@ -49,9 +49,9 @@ void vertical_picture_draw_part(struct screen* display, const struct picture* pi
49 picture->data, 49 picture->data,
50 /*slice into picture->data */ 50 /*slice into picture->data */
51 0, yoffset, 51 0, yoffset,
52 picture->width, 52 STRIDE(display->screen_type, picture->width, picture->height),
53 /* Position on the screen */ 53 /* Position on the screen */
54 x, y, picture->width, picture->height 54 x, y, picture->width, picture->slide_height
55 ); 55 );
56} 56}
57 57
@@ -68,5 +68,6 @@ void vertical_picture_draw_part(struct screen* display, const struct picture* pi
68void vertical_picture_draw_sprite(struct screen* display, const struct picture* picture, 68void vertical_picture_draw_sprite(struct screen* display, const struct picture* picture,
69 int sprite_no, 69 int sprite_no,
70 int x, int y){ 70 int x, int y){
71 vertical_picture_draw_part(display, picture, sprite_no*picture->height, x, y); 71 vertical_picture_draw_part( display, picture,
72 sprite_no*picture->slide_height, x, y);
72} 73}
diff --git a/apps/plugins/lib/picture.h b/apps/plugins/lib/picture.h
index 0013489039..7aa9899018 100644
--- a/apps/plugins/lib/picture.h
+++ b/apps/plugins/lib/picture.h
@@ -27,6 +27,7 @@ struct picture{
27 const void* data; 27 const void* data;
28 int width; 28 int width;
29 int height; 29 int height;
30 int slide_height;
30}; 31};
31 32
32void picture_draw(struct screen* display, const struct picture* picture, 33void picture_draw(struct screen* display, const struct picture* picture,
diff --git a/apps/plugins/matrix.c b/apps/plugins/matrix.c
index 0d75986bb6..e6e0fa1175 100644
--- a/apps/plugins/matrix.c
+++ b/apps/plugins/matrix.c
@@ -213,12 +213,14 @@ static void matrix_blit_char(const int row, const int col, int cha)
213 213
214 if (matrix[row][col].bold == 1) { 214 if (matrix[row][col].bold == 1) {
215 rb->lcd_bitmap_part(matrix_bold, cha*COL_W, 0, 215 rb->lcd_bitmap_part(matrix_bold, cha*COL_W, 0,
216 STRIDE(BMPWIDTH_matrix_bold, BMPHEIGHT_matrix_bold), 216 STRIDE( SCREEN_MAIN,
217 BMPWIDTH_matrix_bold, BMPHEIGHT_matrix_bold),
217 col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); 218 col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H);
218 } 219 }
219 else { 220 else {
220 rb->lcd_bitmap_part(matrix_normal, cha*COL_W, 0, 221 rb->lcd_bitmap_part(matrix_normal, cha*COL_W, 0,
221 STRIDE(BMPWIDTH_matrix_normal, BMPHEIGHT_matrix_normal), 222 STRIDE( SCREEN_MAIN,
223 BMPWIDTH_matrix_normal, BMPHEIGHT_matrix_normal),
222 col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H); 224 col*COL_W + LEFTMARGIN, row*COL_H + TOPMARGIN, COL_W, COL_H);
223 } 225 }
224} 226}
diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c
index f0fe0cdb6f..2766bb613c 100644
--- a/apps/plugins/pegbox.c
+++ b/apps/plugins/pegbox.c
@@ -747,7 +747,8 @@ static void pegbox_draw_board(struct game_context* pb)
747 747
748 if(type != SPACE) { 748 if(type != SPACE) {
749 rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT, 749 rb->lcd_bitmap_part(pegbox_pieces, 0, (type-1)*PIECE_HEIGHT,
750 STRIDE(BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces), 750 STRIDE( SCREEN_MAIN,
751 BMPWIDTH_pegbox_pieces,BMPHEIGHT_pegbox_pieces),
751 c * PIECE_WIDTH + BOARD_X, 752 c * PIECE_WIDTH + BOARD_X,
752 r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH, 753 r * PIECE_HEIGHT + BOARD_Y, PIECE_WIDTH,
753 PIECE_HEIGHT); 754 PIECE_HEIGHT);
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index 2f1d366960..a5daafd8e9 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -407,7 +407,8 @@ static void draw_spot(int p, int x, int y)
407 an appropriate hole graphic */ 407 an appropriate hole graphic */
408 rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH, 408 rb->lcd_bitmap_part(sliding_puzzle, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
409 ((p-1)/SPOTS_X)*SPOTS_HEIGHT, 409 ((p-1)/SPOTS_X)*SPOTS_HEIGHT,
410 STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), 410 STRIDE( SCREEN_MAIN,
411 BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
411 x, y, SPOTS_WIDTH, SPOTS_HEIGHT); 412 x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
412#else 413#else
413 /* just draw a black rectangle */ 414 /* just draw a black rectangle */
@@ -421,7 +422,8 @@ static void draw_spot(int p, int x, int y)
421 { 422 {
422 rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH, 423 rb->lcd_bitmap_part( puzzle_bmp_ptr, ((p-1)%SPOTS_X)*SPOTS_WIDTH,
423 ((p-1)/SPOTS_X)*SPOTS_HEIGHT, 424 ((p-1)/SPOTS_X)*SPOTS_HEIGHT,
424 STRIDE(BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle), 425 STRIDE( SCREEN_MAIN,
426 BMPWIDTH_sliding_puzzle, BMPHEIGHT_sliding_puzzle),
425 x, y, SPOTS_WIDTH, SPOTS_HEIGHT); 427 x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
426 } else { 428 } else {
427 rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT); 429 rb->lcd_drawrect(x, y, SPOTS_WIDTH, SPOTS_HEIGHT);
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 0d8a0821e5..63a808877b 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -982,43 +982,57 @@ static void update_screen(void)
982 982
983 case ' ': /* floor */ 983 case ' ': /* floor */
984 rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE, 984 rb->lcd_bitmap_part(sokoban_tiles, 0, 0*SOKOBAN_TILESIZE,
985 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 985 STRIDE( SCREEN_MAIN,
986 BMPWIDTH_sokoban_tiles,
987 BMPHEIGHT_sokoban_tiles),
986 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 988 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
987 break; 989 break;
988 990
989 case '#': /* wall */ 991 case '#': /* wall */
990 rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE, 992 rb->lcd_bitmap_part(sokoban_tiles, 0, 1*SOKOBAN_TILESIZE,
991 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 993 STRIDE( SCREEN_MAIN,
994 BMPWIDTH_sokoban_tiles,
995 BMPHEIGHT_sokoban_tiles),
992 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 996 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
993 break; 997 break;
994 998
995 case '$': /* box */ 999 case '$': /* box */
996 rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE, 1000 rb->lcd_bitmap_part(sokoban_tiles, 0, 2*SOKOBAN_TILESIZE,
997 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 1001 STRIDE( SCREEN_MAIN,
1002 BMPWIDTH_sokoban_tiles,
1003 BMPHEIGHT_sokoban_tiles),
998 c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE); 1004 c, r, SOKOBAN_TILESIZE,SOKOBAN_TILESIZE);
999 break; 1005 break;
1000 1006
1001 case '*': /* box on goal */ 1007 case '*': /* box on goal */
1002 rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE, 1008 rb->lcd_bitmap_part(sokoban_tiles, 0, 3*SOKOBAN_TILESIZE,
1003 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 1009 STRIDE( SCREEN_MAIN,
1010 BMPWIDTH_sokoban_tiles,
1011 BMPHEIGHT_sokoban_tiles),
1004 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 1012 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
1005 break; 1013 break;
1006 1014
1007 case '.': /* goal */ 1015 case '.': /* goal */
1008 rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE, 1016 rb->lcd_bitmap_part(sokoban_tiles, 0, 4*SOKOBAN_TILESIZE,
1009 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 1017 STRIDE( SCREEN_MAIN,
1018 BMPWIDTH_sokoban_tiles,
1019 BMPHEIGHT_sokoban_tiles),
1010 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 1020 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
1011 break; 1021 break;
1012 1022
1013 case '@': /* player */ 1023 case '@': /* player */
1014 rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE, 1024 rb->lcd_bitmap_part(sokoban_tiles, 0, 5*SOKOBAN_TILESIZE,
1015 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 1025 STRIDE( SCREEN_MAIN,
1026 BMPWIDTH_sokoban_tiles,
1027 BMPHEIGHT_sokoban_tiles),
1016 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 1028 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
1017 break; 1029 break;
1018 1030
1019 case '+': /* player on goal */ 1031 case '+': /* player on goal */
1020 rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE, 1032 rb->lcd_bitmap_part(sokoban_tiles, 0, 6*SOKOBAN_TILESIZE,
1021 STRIDE(BMPWIDTH_sokoban_tiles, BMPHEIGHT_sokoban_tiles), 1033 STRIDE( SCREEN_MAIN,
1034 BMPWIDTH_sokoban_tiles,
1035 BMPHEIGHT_sokoban_tiles),
1022 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE); 1036 c, r, SOKOBAN_TILESIZE, SOKOBAN_TILESIZE);
1023 break; 1037 break;
1024 } 1038 }
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index 2296a6ef5a..2fdba18610 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -623,7 +623,8 @@ static void draw_card( card_t *card, int x, int y,
623 { 623 {
624 rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num, 624 rb->lcd_bitmap_part( card_deck, CARD_GFX_WIDTH * card->num,
625 CARD_GFX_HEIGHT * card->suit, 625 CARD_GFX_HEIGHT * card->suit,
626 STRIDE(BMPWIDTH_card_deck, BMPHEIGHT_card_deck), 626 STRIDE(SCREEN_MAIN,
627 BMPWIDTH_card_deck, BMPHEIGHT_card_deck),
627 x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); 628 x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
628 } 629 }
629 else 630 else
@@ -639,7 +640,8 @@ static void draw_empty_stack( int s, int x, int y, bool cursor )
639{ 640{
640 rb->lcd_bitmap_part( solitaire_suitsi, 0, 641 rb->lcd_bitmap_part( solitaire_suitsi, 0,
641 CARD_GFX_HEIGHT * s, 642 CARD_GFX_HEIGHT * s,
642 STRIDE(BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi), 643 STRIDE( SCREEN_MAIN,
644 BMPWIDTH_solitaire_suitsi, BMPHEIGHT_solitaire_suitsi),
643 x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT ); 645 x+1, y+1, CARD_GFX_WIDTH, CARD_GFX_HEIGHT );
644 646
645 draw_card_ext( x, y, false, cursor ); 647 draw_card_ext( x, y, false, cursor );
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index e40fa5a2dc..6079ba488e 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -729,7 +729,8 @@ static void star_display_board_info(int current_level)
729 729
730 rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ? 730 rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ?
731 BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, 731 BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT,
732 STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), 732 STRIDE( SCREEN_MAIN,
733 BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
733 STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH, 734 STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH,
734 tile_pos_y, TILE_WIDTH, TILE_HEIGHT); 735 tile_pos_y, TILE_WIDTH, TILE_HEIGHT);
735 736
@@ -768,7 +769,8 @@ static int star_load_level(int current_level)
768# define DRAW_TILE( a ) \ 769# define DRAW_TILE( a ) \
769 rb->lcd_bitmap_part( star_tiles, 0, \ 770 rb->lcd_bitmap_part( star_tiles, 0, \
770 a*TILE_HEIGHT, \ 771 a*TILE_HEIGHT, \
771 STRIDE( BMPWIDTH_star_tiles, \ 772 STRIDE( SCREEN_MAIN, \
773 BMPWIDTH_star_tiles, \
772 BMPHEIGHT_star_tiles), \ 774 BMPHEIGHT_star_tiles), \
773 STAR_OFFSET_X + x * TILE_WIDTH, \ 775 STAR_OFFSET_X + x * TILE_WIDTH, \
774 STAR_OFFSET_Y + y * TILE_HEIGHT, \ 776 STAR_OFFSET_Y + y * TILE_HEIGHT, \
@@ -820,10 +822,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y,
820 { 822 {
821 STAR_SLEEP 823 STAR_SLEEP
822 rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, 824 rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT,
823 STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), 825 STRIDE( SCREEN_MAIN,
826 BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
824 start_x, start_y, TILE_WIDTH, TILE_HEIGHT); 827 start_x, start_y, TILE_WIDTH, TILE_HEIGHT);
825 rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, 828 rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT,
826 STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), 829 STRIDE( SCREEN_MAIN,
830 BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
827 start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT); 831 start_x + delta_x * i, start_y, TILE_WIDTH, TILE_HEIGHT);
828 rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0), 832 rb->lcd_update_rect(start_x + delta_x * i - (delta_x>0?1:0),
829 start_y, TILE_WIDTH + 1, TILE_HEIGHT); 833 start_y, TILE_WIDTH + 1, TILE_HEIGHT);
@@ -835,10 +839,12 @@ static void star_animate_tile(int tile_no, int start_x, int start_y,
835 { 839 {
836 STAR_SLEEP 840 STAR_SLEEP
837 rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT, 841 rb->lcd_bitmap_part(star_tiles, 0, SPACE * TILE_HEIGHT,
838 STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), 842 STRIDE( SCREEN_MAIN,
843 BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
839 start_x, start_y, TILE_WIDTH, TILE_HEIGHT); 844 start_x, start_y, TILE_WIDTH, TILE_HEIGHT);
840 rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT, 845 rb->lcd_bitmap_part(star_tiles, 0, tile_no * TILE_HEIGHT,
841 STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles), 846 STRIDE( SCREEN_MAIN,
847 BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
842 start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT); 848 start_x, start_y + delta_y * i, TILE_WIDTH, TILE_HEIGHT);
843 rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0), 849 rb->lcd_update_rect(start_x, start_y + delta_y * i - (delta_y>0?1:0),
844 TILE_WIDTH, TILE_HEIGHT + 1); 850 TILE_WIDTH, TILE_HEIGHT + 1);
diff --git a/apps/plugins/sudoku/sudoku.c b/apps/plugins/sudoku/sudoku.c
index 3fac57b96a..02de4083dd 100644
--- a/apps/plugins/sudoku/sudoku.c
+++ b/apps/plugins/sudoku/sudoku.c
@@ -73,7 +73,7 @@ Example ".ss" file, and one with a saved state:
73#include "pluginbitmaps/sudoku_start.h" 73#include "pluginbitmaps/sudoku_start.h"
74 74
75#define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10) 75#define BITMAP_HEIGHT (BMPHEIGHT_sudoku_normal/10)
76#define BITMAP_STRIDE STRIDE(BMPWIDTH_sudoku_normal, BMPHEIGHT_sudoku_normal) 76#define BITMAP_STRIDE STRIDE(SCREEN_MAIN, BMPWIDTH_sudoku_normal, BMPHEIGHT_sudoku_normal)
77 77
78#if (LCD_DEPTH>2) 78#if (LCD_DEPTH>2)
79#define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2) 79#define BITMAP_WIDTH (BMPWIDTH_sudoku_normal/2)
diff --git a/apps/plugins/superdom.c b/apps/plugins/superdom.c
index 225de80f11..6c8f9b7f3f 100644
--- a/apps/plugins/superdom.c
+++ b/apps/plugins/superdom.c
@@ -62,7 +62,7 @@ char buf[255];
62/* These parameters define the piece image dimensions, Stride is the total width 62/* These parameters define the piece image dimensions, Stride is the total width
63 * of the bitmap. 63 * of the bitmap.
64 */ 64 */
65#define ICON_STRIDE STRIDE(BMPWIDTH_superdom_boarditems, BMPHEIGHT_superdom_boarditems) 65#define ICON_STRIDE STRIDE(SCREEN_MAIN, BMPWIDTH_superdom_boarditems, BMPHEIGHT_superdom_boarditems)
66#define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6) 66#define ICON_HEIGHT (BMPHEIGHT_superdom_boarditems/6)
67#define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2) 67#define ICON_WIDTH (BMPWIDTH_superdom_boarditems/2)
68 68