mailer | 1 Sep 2009 02:42
Favicon

kugel: r22578 - in trunk/firmware/target/arm/as3525: . sansa-e200v2 sansa-fuze

Date: 2009-09-01 02:42:22 +0200 (Tue, 01 Sep 2009)
New Revision: 22578

Log Message:
Fuze/e200v2: Speed up the LCD further by letting the FIFO fill until it's full instead of keeping it almost empty.

The blue bars I previously had with this way are fixed by blocking DBOP output while reading buttons from GPIO.
We reached the maximum fps even at unboosted now (100.0 fps at lcd_update(), DBOP can't do more).
Optimisation to YUV stuff is still possible though.
The e200v2 scrollwheel is very improved due to the this and the previous speedup since the chance of getting
the wheel read blocked is greatly decreased with faster updates.

Modified:
   trunk/firmware/target/arm/as3525/button-e200v2-fuze.c
   trunk/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
   trunk/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c

Modified: trunk/firmware/target/arm/as3525/button-e200v2-fuze.c
===================================================================
--- trunk/firmware/target/arm/as3525/button-e200v2-fuze.c	2009-08-31 21:46:31 UTC (rev 22577)
+++ trunk/firmware/target/arm/as3525/button-e200v2-fuze.c	2009-09-01 00:42:22 UTC (rev 22578)
 <at>  <at>  -32,7 +32,7  <at>  <at> 
 #define WHEEL_COUNTER_DIV       4
 #define ACCEL_INCREMENT         2
 #define ACCEL_SHIFT             2
-#define BUTTON_DELAY            45
+#define BUTTON_DELAY            30
 #endif

 #ifdef SANSA_E200V2
(Continue reading)

mailer | 1 Sep 2009 02:50
Favicon

kkurbjun: r22579 - trunk/firmware/drivers

Date: 2009-09-01 02:50:43 +0200 (Tue, 01 Sep 2009)
New Revision: 22579

Log Message:
Initial vertical stride LCD driver. Backdrop is inverted with it currently.

Added:
   trunk/firmware/drivers/lcd-16bit-vert.c

Copied: trunk/firmware/drivers/lcd-16bit-vert.c (from rev 22516, trunk/firmware/drivers/lcd-16bit.c)
===================================================================
--- trunk/firmware/drivers/lcd-16bit-vert.c	                        (rev 0)
+++ trunk/firmware/drivers/lcd-16bit-vert.c	2009-09-01 00:50:43 UTC (rev 22579)
 <at>  <at>  -0,0 +1,923  <at>  <at> 
+/***************************************************************************
+ *             __________               __   ___.
+ *   Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
+ *   Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
+ *   Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
+ *   Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
+ *                     \/            \/     \/    \/            \/
+ * $Id$
+ *
+ * Copyright (C) 2005 by Dave Chapman
+ * Copyright (C) 2009 by Karl Kurbjun
+ *
+ * Rockbox driver for 16-bit colour LCDs with vertical strides
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
(Continue reading)

mailer | 1 Sep 2009 02:57
Favicon

kkurbjun: r22580 - in trunk: apps/recorder firmware

Date: 2009-09-01 02:57:47 +0200 (Tue, 01 Sep 2009)
New Revision: 22580

Log Message:
Add in BMP loader for vertical stride and include lcd-16bit-vert.c in SOURCES

Modified:
   trunk/apps/recorder/bmp.c
   trunk/firmware/SOURCES

Modified: trunk/apps/recorder/bmp.c
===================================================================
--- trunk/apps/recorder/bmp.c	2009-09-01 00:50:43 UTC (rev 22579)
+++ trunk/apps/recorder/bmp.c	2009-09-01 00:57:47 UTC (rev 22580)
 <at>  <at>  -423,6 +423,24  <at>  <at> 
                 }
 #endif /* LCD_PIXELFORMAT */
 #elif LCD_DEPTH == 16
+#if   defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
+                /* M:Robe 500 */
+                fb_data *dest = (fb_data *)ctx->bm->data + row;
+                int delta = 127;
+                unsigned r, g, b;
+                for (col = 0; col < ctx->bm->width; col++) {
+                    if (ctx->dither)
+                        delta = DITHERXDY(col,dy);
+                    r = qp->red;
+                    g = qp->green;
+                    b = (qp++)->blue;
+                    r = (31 * r + (r >> 3) + delta) >> 8;
(Continue reading)

mailer | 1 Sep 2009 04:06
Favicon

kugel: r22581 - in trunk/firmware/target/arm/as3525: sansa-e200v2 sansa-fuze

Date: 2009-09-01 04:06:37 +0200 (Tue, 01 Sep 2009)
New Revision: 22581

Log Message:
Move the FIFO emptying up, as having it after lcd_write_single_data16() causes problems with uneven
transfers (I'm not sure why).

Modified:
   trunk/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
   trunk/firmware/target/arm/as3525/sansa-fuze/lcd-fuze.c

Modified: trunk/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c
===================================================================
--- trunk/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c	2009-09-01 00:57:47 UTC (rev 22580)
+++ trunk/firmware/target/arm/as3525/sansa-e200v2/lcd-e200v2.c	2009-09-01 02:06:37 UTC (rev 22581)
 <at>  <at>  -173,13 +173,13  <at>  <at> 
         /* Wait if push fifo is full */
         while ((DBOP_STAT & (1<<6)) != 0);
     }
-    /* due to the 32bit alignment requirement, we possibly need to do a
-        * 16bit transfer at the end also */
+    /* While push fifo is not empty */
+    while ((DBOP_STAT & (1<<10)) == 0);
+
+    /* due to the 32bit alignment requirement or uneven count,
+     * we possibly need to do a 16bit transfer at the end also */
     if (count > 0)
         lcd_write_single_data16(*(fb_data*)data);
-
-    /* While push fifo is not empty */
(Continue reading)

mailer | 1 Sep 2009 04:07
Favicon

kkurbjun: r22582 - trunk/apps/plugins

Date: 2009-09-01 04:07:35 +0200 (Tue, 01 Sep 2009)
New Revision: 22582

Log Message:
Brickmania: Make the game speed scale with the GAMESCREEN_HEIGHT.

Modified:
   trunk/apps/plugins/brickmania.c

Modified: trunk/apps/plugins/brickmania.c
===================================================================
--- trunk/apps/plugins/brickmania.c	2009-09-01 02:06:37 UTC (rev 22581)
+++ trunk/apps/plugins/brickmania.c	2009-09-01 02:07:35 UTC (rev 22582)
 <at>  <at>  -270,10 +270,33  <at>  <at> 
 #define STRINGPOS_NAVI      (STRINGPOS_FINISH - 10)
 #define STRINGPOS_FLIP      (STRINGPOS_FINISH - 10)

+/* Brickmania was originally designed for the H300, other targets should scale
+ *  up/down as needed based on the screen height.
+ */
+#define SPEED_SCALE *GAMESCREEN_HEIGHT/176
+
+/* These are all used as ball speeds depending on where the ball hit the
+ *  paddle.
+ */
+#define SPEED_1Q_X  ( 6 SPEED_SCALE)
+#define SPEED_1Q_Y  (-2 SPEED_SCALE)
+#define SPEED_2Q_X  ( 4 SPEED_SCALE)
+#define SPEED_2Q_Y  (-3 SPEED_SCALE)
+#define SPEED_3Q_X  ( 3 SPEED_SCALE)
(Continue reading)

mailer | 1 Sep 2009 04:40
Favicon

kkurbjun: r22583 - trunk/apps/plugins

Date: 2009-09-01 04:40:18 +0200 (Tue, 01 Sep 2009)
New Revision: 22583

Log Message:
Brickmania: Fix define and add support for vertical strides.

Modified:
   trunk/apps/plugins/brickmania.c

Modified: trunk/apps/plugins/brickmania.c
===================================================================
--- trunk/apps/plugins/brickmania.c	2009-09-01 02:07:35 UTC (rev 22582)
+++ trunk/apps/plugins/brickmania.c	2009-09-01 02:40:18 UTC (rev 22583)
 <at>  <at>  -273,26 +273,28  <at>  <at> 
 /* Brickmania was originally designed for the H300, other targets should scale
  *  up/down as needed based on the screen height.
  */
-#define SPEED_SCALE *GAMESCREEN_HEIGHT/176
+#define SPEED_SCALE GAMESCREEN_HEIGHT/176

 /* These are all used as ball speeds depending on where the ball hit the
  *  paddle.
  */
-#define SPEED_1Q_X  ( 6 SPEED_SCALE)
-#define SPEED_1Q_Y  (-2 SPEED_SCALE)
-#define SPEED_2Q_X  ( 4 SPEED_SCALE)
-#define SPEED_2Q_Y  (-3 SPEED_SCALE)
-#define SPEED_3Q_X  ( 3 SPEED_SCALE)
-#define SPEED_3Q_Y  (-4 SPEED_SCALE)
-#define SPEED_4Q_X  ( 2 SPEED_SCALE)
(Continue reading)

mailer | 1 Sep 2009 04:44
Favicon

kkurbjun: r22584 - trunk/apps/plugins

Date: 2009-09-01 04:44:11 +0200 (Tue, 01 Sep 2009)
New Revision: 22584

Log Message:
Star: Add support for Vertical strides.

Modified:
   trunk/apps/plugins/star.c

Modified: trunk/apps/plugins/star.c
===================================================================
--- trunk/apps/plugins/star.c	2009-09-01 02:40:18 UTC (rev 22583)
+++ trunk/apps/plugins/star.c	2009-09-01 02:44:11 UTC (rev 22584)
 <at>  <at>  -728,7 +728,8  <at>  <at> 
                    label_pos_y, "C:");

     rb->lcd_bitmap_part(star_tiles, 0, control == STAR_CONTROL_BALL ?
-                        BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, TILE_WIDTH,
+                        BALL*TILE_HEIGHT : BLOCK*TILE_HEIGHT, 
+                        STRIDE(BMPWIDTH_star_tiles, BMPHEIGHT_star_tiles),
                         STAR_OFFSET_X + (STAR_WIDTH-1) * TILE_WIDTH,
                         tile_pos_y, TILE_WIDTH, TILE_HEIGHT);

 <at>  <at>  -764,12 +765,15  <at>  <at> 
             board[y][x] = *ptr_tab;
             switch (*ptr_tab)
             {
-#   define DRAW_TILE( a )                                                 \
-                    rb->lcd_bitmap_part( star_tiles, 0,                   \
-                                         a*TILE_HEIGHT, TILE_WIDTH,       \
(Continue reading)

mailer | 1 Sep 2009 05:23
Favicon

kkurbjun: r22585 - trunk/apps/plugins

Date: 2009-09-01 05:23:07 +0200 (Tue, 01 Sep 2009)
New Revision: 22585

Log Message:
Invadrox: Add support for vertical strides

Modified:
   trunk/apps/plugins/invadrox.c

Modified: trunk/apps/plugins/invadrox.c
===================================================================
--- trunk/apps/plugins/invadrox.c	2009-09-01 02:44:11 UTC (rev 22584)
+++ trunk/apps/plugins/invadrox.c	2009-09-01 03:23:07 UTC (rev 22585)
 <at>  <at>  -635,10 +635,17  <at>  <at> 
 /* No standard get_pixel function yet, use this hack instead */
 #if (LCD_DEPTH >= 8)

+#if   defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
 inline fb_data get_pixel(int x, int y)
 {
+    return rb->lcd_framebuffer[LCD_HEIGHT*(LCD_WIDTH-1)-x*LCD_HEIGHT+y];
+}
+#else
+inline fb_data get_pixel(int x, int y)
+{
     return rb->lcd_framebuffer[ytab[y] + x];
 }
+#endif

 #elif (LCD_DEPTH == 2)
(Continue reading)

mailer | 1 Sep 2009 05:40
Favicon

kkurbjun: r22586 - trunk/apps/plugins

Date: 2009-09-01 05:40:23 +0200 (Tue, 01 Sep 2009)
New Revision: 22586

Log Message:
Matrix: Add support for vertical strides

Modified:
   trunk/apps/plugins/matrix.c

Modified: trunk/apps/plugins/matrix.c
===================================================================
--- trunk/apps/plugins/matrix.c	2009-09-01 03:23:07 UTC (rev 22585)
+++ trunk/apps/plugins/matrix.c	2009-09-01 03:40:23 UTC (rev 22586)
 <at>  <at>  -37,9 +37,9  <at>  <at> 
 PLUGIN_HEADER

 /* Images */
+#include "pluginbitmaps/matrix_bold.h"
+#include "pluginbitmaps/matrix_normal.h"
 #define MAXCHARS 27 - 1
-extern const fb_data matrix_bold[];
-extern const fb_data matrix_normal[];
 #define COL_W 14
 #define COL_H 15

 <at>  <at>  -212,11 +212,13  <at>  <at> 
         cha = 0;

     if (matrix[row][col].bold == 1) {
-        rb->lcd_bitmap_part(matrix_bold, cha*COL_W, 0, 392,
(Continue reading)

mailer | 1 Sep 2009 06:39
Favicon

kkurbjun: r22587 - trunk/apps/recorder

Date: 2009-09-01 06:39:48 +0200 (Tue, 01 Sep 2009)
New Revision: 22587

Log Message:
Add support for vertical stride to resizer.

Modified:
   trunk/apps/recorder/resize.c

Modified: trunk/apps/recorder/resize.c
===================================================================
--- trunk/apps/recorder/resize.c	2009-09-01 03:40:23 UTC (rev 22586)
+++ trunk/apps/recorder/resize.c	2009-09-01 04:39:48 UTC (rev 22587)
 <at>  <at>  -743,6 +743,29  <at>  <at> 
                 }
 #endif /* LCD_PIXELFORMAT */
 #elif LCD_DEPTH == 16
+
+#if   defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
+                /* M:Robe 500 */
+                (void) fb_width;
+                fb_data *dest = (fb_data *)ctx->bm->data + row;
+                int delta = 127;
+                unsigned r, g, b;
+                struct uint32_rgb q0;
+                
+                for (col = 0; col < ctx->bm->width; col++) {
+                    if (ctx->dither)
+                        delta = DITHERXDY(col,dy);
+                    q0 = *qp++;
(Continue reading)


Gmane