diff -u -r rockbox_svn.orig/firmware/drivers/lcd-16bit.c rockbox_svn/firmware/drivers/lcd-16bit.c --- rockbox_svn.orig/firmware/drivers/lcd-16bit.c 2007-10-01 17:24:24.625000000 -0500 +++ rockbox_svn/firmware/drivers/lcd-16bit.c 2007-10-02 23:04:24.281250000 -0500 @@ -948,6 +948,7 @@ s->startx = xmargin + x * s->width / s->len; s->backward = false; lcd_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -993,7 +994,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/drivers/lcd-1bit-vert.c rockbox_svn/firmware/drivers/lcd-1bit-vert.c --- rockbox_svn.orig/firmware/drivers/lcd-1bit-vert.c 2007-10-01 17:24:24.562500000 -0500 +++ rockbox_svn/firmware/drivers/lcd-1bit-vert.c 2007-10-02 23:04:24.312500000 -0500 @@ -729,6 +729,7 @@ s->startx = xmargin + x * s->width / s->len;; s->backward = false; lcd_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -761,7 +762,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/drivers/lcd-2bit-horz.c rockbox_svn/firmware/drivers/lcd-2bit-horz.c --- rockbox_svn.orig/firmware/drivers/lcd-2bit-horz.c 2007-10-01 17:24:24.593750000 -0500 +++ rockbox_svn/firmware/drivers/lcd-2bit-horz.c 2007-10-02 23:04:24.328125000 -0500 @@ -928,6 +928,7 @@ s->startx = xmargin + x * s->width / s->len;; s->backward = false; lcd_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -960,7 +961,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/drivers/lcd-2bit-vert.c rockbox_svn/firmware/drivers/lcd-2bit-vert.c --- rockbox_svn.orig/firmware/drivers/lcd-2bit-vert.c 2007-10-01 17:24:24.578125000 -0500 +++ rockbox_svn/firmware/drivers/lcd-2bit-vert.c 2007-10-02 23:04:24.343750000 -0500 @@ -1064,6 +1064,7 @@ s->startx = xmargin + x * s->width / s->len; s->backward = false; lcd_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -1096,7 +1097,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/drivers/lcd-remote-1bit-v.c rockbox_svn/firmware/drivers/lcd-remote-1bit-v.c --- rockbox_svn.orig/firmware/drivers/lcd-remote-1bit-v.c 2007-10-01 17:24:24.640625000 -0500 +++ rockbox_svn/firmware/drivers/lcd-remote-1bit-v.c 2007-10-02 23:04:24.359375000 -0500 @@ -727,6 +727,7 @@ s->startx = xmargin + x * s->width / s->len;; s->backward = false; lcd_remote_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -759,7 +760,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/drivers/lcd-remote-2bit-vi.c rockbox_svn/firmware/drivers/lcd-remote-2bit-vi.c --- rockbox_svn.orig/firmware/drivers/lcd-remote-2bit-vi.c 2007-10-01 17:24:24.531250000 -0500 +++ rockbox_svn/firmware/drivers/lcd-remote-2bit-vi.c 2007-10-02 23:04:24.375000000 -0500 @@ -1064,6 +1064,7 @@ s->startx = xmargin + x * s->width / s->len;; s->backward = false; lcd_remote_scroll_info.lines |= (1<y_margin=ymargin; } else /* force a bit switch-off since it doesn't scroll */ @@ -1096,7 +1097,7 @@ pf = font_get(curfont); xpos = s->startx; - ypos = ymargin + index * pf->height; + ypos = s->y_margin + index * pf->height; if (s->bidir) { /* scroll bidirectional */ if (s->offset <= 0) { diff -u -r rockbox_svn.orig/firmware/export/scroll_engine.h rockbox_svn/firmware/export/scroll_engine.h --- rockbox_svn.orig/firmware/export/scroll_engine.h 2007-10-01 17:24:21.468750000 -0500 +++ rockbox_svn/firmware/export/scroll_engine.h 2007-10-02 23:04:24.390625000 -0500 @@ -48,6 +48,7 @@ bool backward; /* scroll presently forward or backward? */ bool bidir; long start_tick; + int y_margin; }; struct scroll_screen_info