diff options
| author | Rob Purchase <shotofadds@rockbox.org> | 2008-07-15 18:59:05 +0000 |
|---|---|---|
| committer | Rob Purchase <shotofadds@rockbox.org> | 2008-07-15 18:59:05 +0000 |
| commit | 7776c7a6f4462ffe74f6569ef2aaea920c084afe (patch) | |
| tree | 015dc8a74166bd0a879e058911f7133a6083ae12 | |
| parent | e78cb65a50433fda33bf8bbbe62d9f0785f76918 (diff) | |
| download | rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.zip rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.gz rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.bz2 rockbox-7776c7a6f4462ffe74f6569ef2aaea920c084afe.tar.xz | |
Fix red for target with insanely wide LCDs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18060 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | firmware/target/arm/lcd-as-memframe.S | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/target/arm/lcd-as-memframe.S b/firmware/target/arm/lcd-as-memframe.S index 519a8a1..84f5490 100644 --- a/firmware/target/arm/lcd-as-memframe.S +++ b/firmware/target/arm/lcd-as-memframe.S @@ -302,8 +302,13 @@ lcd_write_yuv420_lines: #if LCD_WIDTH >= LCD_HEIGHT add r0, r0, #2*LCD_WIDTH strh r12, [r0, #2] +#if LCD_WIDTH <= 512 sub r0, r0, #(2*LCD_WIDTH)-4 #else + sub r0, r0, #(2*LCD_WIDTH) + add r0, r0, #4 +#endif +#else strh r12, [r0, #-2] @ store pixel #if LCD_WIDTH < 256 add r0, r0, #2*LCD_WIDTH @ @@ -603,7 +608,12 @@ lcd_write_yuv420_lines_odither: #if LCD_WIDTH >= LCD_HEIGHT add r0, r0, #2*LCD_WIDTH strh r1, [r0, #2] @ store pixel - sub r0, r0, #(2*LCD_WIDTH-4) +#if LCD_WIDTH <= 512 + sub r0, r0, #(2*LCD_WIDTH)-4 +#else + sub r0, r0, #(2*LCD_WIDTH) + add r0, r0, #4 +#endif #else strh r1, [r0, #-2] @ store pixel #if LCD_WIDTH < 256 |