diff --git a/gl/gl_mgr.sv b/gl/gl_mgr.sv
index fd2b906f46a2b05830e1a704c77eb35afa522416..6dbc9d027a4147fb5455eafe1c2f68a6cfe5ede5 100644
--- a/gl/gl_mgr.sv
+++ b/gl/gl_mgr.sv
@@ -207,7 +207,7 @@ module gl_mgr (
 	logic [9:0] rect_PAINT_X, rect_PAINT_Y;
 	logic [15:0] rect_PAINT_RGB16;
 	// Redraw cache connection
-	logic [18:0] rect_RC_ADDR;
+	logic [19:0] rect_RC_ADDR;
 	logic rect_RC_DATA_WR;
 	logic rect_RC_WE;
 	logic rect_RC_DATA_RD;
@@ -243,7 +243,7 @@ module gl_mgr (
 	logic [9:0] circle_PAINT_X, circle_PAINT_Y;
 	logic [15:0] circle_PAINT_RGB16;
 	// Redraw cache connection
-	logic [18:0] circle_RC_ADDR;
+	logic [19:0] circle_RC_ADDR;
 	logic circle_RC_DATA_WR;
 	logic circle_RC_WE;
 	logic circle_RC_DATA_RD;
@@ -278,7 +278,7 @@ module gl_mgr (
 	logic [9:0] ring_PAINT_X, ring_PAINT_Y;
 	logic [15:0] ring_PAINT_RGB16;
 	// Redraw cache connection
-	logic [18:0] ring_RC_ADDR;
+	logic [19:0] ring_RC_ADDR;
 	logic ring_RC_DATA_WR;
 	logic ring_RC_WE;
 	logic ring_RC_DATA_RD;
@@ -311,7 +311,7 @@ module gl_mgr (
 	logic [9:0] polygon_PAINT_X, polygon_PAINT_Y;
 	logic [15:0] polygon_PAINT_RGB16;
 	// Redraw cache connection
-	logic [18:0] polygon_RC_ADDR;
+	logic [19:0] polygon_RC_ADDR;
 	logic polygon_RC_DATA_WR;
 	logic polygon_RC_WE;
 	logic polygon_RC_DATA_RD;
@@ -353,7 +353,7 @@ module gl_mgr (
 	logic image_GL_REQ;
 	logic [19:0] image_GL_ADDR;
 	// Redraw cache connection
-	logic [18:0] image_RC_ADDR;
+	logic [19:0] image_RC_ADDR;
 	logic image_RC_DATA_WR;
 	logic image_RC_WE;
 	logic image_RC_DATA_RD;
@@ -410,7 +410,7 @@ module gl_mgr (
 		fb_GL_ADDR = 20'hXXXXX;
 		fb_GL_X = 10'hXXX;
 		fb_GL_Y = 10'hXXX;
-		rc_addr1 = 8'hXX;
+		rc_addr1 = 20'hXXXXX;
 		rc_data_in1 = 1'bX;
 		rc_we1 = 1'b0;
 
diff --git a/software/osu_main/src/gl/painters.c b/software/osu_main/src/gl/painters.c
index 91425dbd08c3e9ae60b6cf651345be6496c6e920..cbc31adbb570c1c1adc4a4c9c404fefa9804e000 100644
--- a/software/osu_main/src/gl/painters.c
+++ b/software/osu_main/src/gl/painters.c
@@ -13,7 +13,7 @@ void gl_rect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1,
 	GL_IOWR(GL_ARGS, 1, gl_make_point(x1, y1));
 	GL_IOWR(GL_ARGS, 2, (color1<<16) | color0);
 	GL_IOWR(GL_ARGS, 3, gradient_direction);
-	GL_IOWR(GL_ARGS, 4, gl_make_color(stroke));
+	GL_IOWR(GL_ARGS, 4, stroke);
 
 	GL_IOWR(GL_COMMAND, 0, GL_CMD_RECT);
 }
@@ -27,7 +27,7 @@ void gl_circle(uint16_t x0, uint16_t y0, uint16_t r,
 	GL_IOWR(GL_ARGS, 1, r);
 	GL_IOWR(GL_ARGS, 2, (color1<<16) | color0);
 	GL_IOWR(GL_ARGS, 3, gradient_direction);
-	GL_IOWR(GL_ARGS, 4, gl_make_color(stroke));
+	GL_IOWR(GL_ARGS, 4, stroke);
 
 	GL_IOWR(GL_COMMAND, 0, GL_CMD_CIRCLE);
 }
@@ -37,7 +37,7 @@ void gl_ring(uint16_t x0, uint16_t y0, uint16_t r, uint16_t w, uint16_t stroke)
 
 	GL_IOWR(GL_ARGS, 0, gl_make_point(x0, y0));
 	GL_IOWR(GL_ARGS, 1, gl_make_point(w, r));
-	GL_IOWR(GL_ARGS, 2, gl_make_color(stroke));
+	GL_IOWR(GL_ARGS, 2, stroke);
 
 	GL_IOWR(GL_COMMAND, 0, GL_CMD_RING);
 }
diff --git a/software/osu_main/src/main.c b/software/osu_main/src/main.c
index e77c2abbcddf3e5c2ec4a5f8bb841eb106789210..e9f61477094a3577b5276c29e08237db7ad6b47c 100644
--- a/software/osu_main/src/main.c
+++ b/software/osu_main/src/main.c
@@ -101,13 +101,14 @@ int main() {
 
     uint32_t dim=0;
 	while (1) {
+		dim++;
 //		gl_background_dim(dim>>8);
 //		gl_rect(100, 100, 105, 105, gl_make_color(0xffccccc), gl_make_color(0xffccccc), gl_make_color(0xff0000), 1);
-//		gl_circle(200,200,50,gl_make_color(0x66ccff),gl_make_color(0x66ccff), gl_make_color(0xffffff), 1);
+//		gl_circle(300,200,50,gl_make_color(0x66ccff),gl_make_color(0x66ccff), gl_make_color(0xffffff), 1);
 //		gl_polygon(300,100,400,300,200,170,400,230, gl_make_color(0x66ff66), gl_make_color(0x66ff66), 1);
-		gl_ring(250,250,50,3,0x66ccff);
-//		gl_image(GL_SRAM_RESBASE, p_meta->test_w, p_meta->test_h, 100, 100,
-//			250, 100, 250, 250, 100, 250, 0xffff, 0xffff, 0xffff, 0xffff);
+//		gl_ring(250,250,50,3,0x66ccff);
+		gl_image(GL_SRAM_RESBASE, p_meta->test_w, p_meta->test_h, 100+((dim>>2)%440), 100,
+			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
 		gl_finalize_frame();
 		gl_finalize_wait();
 	}