From c1f88398e11a5ef8050588396900c1b8c7d4611c Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Tue, 3 Mar 2020 23:28:29 +0100 Subject: [PATCH] Added colors --- source/mojo_top.v | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/source/mojo_top.v b/source/mojo_top.v index 0096c2c..72b22dc 100644 --- a/source/mojo_top.v +++ b/source/mojo_top.v @@ -207,24 +207,37 @@ module mojo_top( ); always @(*) begin - hdmired = 1'b0; - hdmigreen = 1'b0; - hdmiblue = 1'b0; - // @todo For some reason we need a -1 here, otherwise it looks weird with // SCALE = 1 // Need to figure that out, something to do with wrap around - charx = ((hdmix >> (SCALE-1)) - 1) % 8; + charx = (hdmix >> (SCALE-1)) % 8; chary = (hdmiy >> (SCALE-1)) % 8; - if (charx > 0 && charx < 6 && chary > 1 && char_data[sram_read_data][29 - (charx - 1) - 5*(chary - 2)] == 1) begin - hdmired = 8'hFF; - hdmigreen = 8'hFF; - hdmiblue = 8'hFF; + char_index_d = ((hdmix >> (SCALE+2)) + CHAR_HMAX*(hdmiy >> (SCALE+2))); + + if (char_index_d[6] == 1) begin + hdmired = 8'h55 * char_index_d[1:0]; + hdmigreen = 8'h55 * char_index_d[3:2]; + hdmiblue = 8'h55 * char_index_d[5:4]; + end else begin + hdmired = 1'b0; + hdmigreen = 1'b0; + hdmiblue = 1'b0; + end + + if (charx > 0 && charx < 6 && chary > 0 && chary < 7 && char_data[sram_read_data][29 - (charx - 1) - 5*(chary - 1)] == 1) begin + if (char_index_d[6] == 1) begin + hdmired = 1'b0; + hdmigreen = 1'b0; + hdmiblue = 1'b0; + end else begin + hdmired = 8'h55 * char_index_d[1:0]; + hdmigreen = 8'h55 * char_index_d[3:2]; + hdmiblue = 8'h55 * char_index_d[5:4]; + end end frame_d = frame_q; - char_index_d = ((hdmix >> (SCALE+2)) + CHAR_HMAX*(hdmiy >> (SCALE+2))); if (hdmix == WIDTH-1 && hdmiy == HEIGHT-1) begin frame_d = frame_q + 1'b1;