diff --git a/video_formatter.v b/video_formatter.v
index ee7750e8427249d2fa9716d2c5721badf1a6c6e7..3e55cafc0140a281ccb970b36b95121fefcc23e3 100644
--- a/video_formatter.v
+++ b/video_formatter.v
@@ -55,6 +55,7 @@ localparam OP_SPRITE_ADDR=14;
 localparam OP_SPRITE_DATA=15;
 localparam OP_VIDEOCAP=16; // we ignore this here, it's snooped by MNTZorro
 localparam OP_REPORT_LINE=17;
+localparam OP_PALETTE_SEL=18; // access secondary 256 colors for screen split
 
 localparam CMODE_8BIT=0;
 localparam CMODE_16BIT=1;
@@ -65,10 +66,11 @@ reg [11:0] screen_width; // = 720;
 reg [11:0] screen_height; // = 576;
 reg scale_x = 0;
 reg scale_y = 1; // amiga boots in 640x256, so double the resolution vertically
-reg [31:0] palette[255:0];
+reg [23:0] palette[511:0];
 reg [2:0] colormode = CMODE_32BIT;
 reg vsync_request;
 reg sync_polarity = 1; // negative polarity
+reg selected_palette = 0;
 
 reg [15:0] screen_h_max; //= 864;
 reg [15:0] screen_v_max; //= 625;
@@ -127,6 +129,7 @@ reg [23:0] sprite_pix; // vga domain
 reg sprite_on; // vga domain
 reg [11:0] vga_report_y; // vga domain
 reg [11:0] vga_report_y_next; // vga domain
+reg vga_selected_palette; // vga domain
 
 always @(posedge m_axis_vid_aclk)
   begin
@@ -218,7 +221,8 @@ begin
   end
   
   case (control_op_in)
-    OP_PALETTE: palette[control_data_in[31:24]] <= control_data_in[23:0];
+    OP_PALETTE: palette[{selected_palette, control_data_in[31:24]}] <= control_data_in[23:0];
+    OP_PALETTE_SEL: selected_palette <= control_data_in[0];
     OP_DIMENSIONS: begin
         screen_height <= control_data_in[31:16];
         screen_width  <= control_data_in[15:0];
@@ -340,6 +344,7 @@ always @(posedge dvi_clk) begin
   vga_sprite_y2 <= vga_sprite_y+(SPRITE_H<<sprite_dbl);
   vga_sprite_dbl <= sprite_dbl;
   vga_report_y_next <= report_y;
+  vga_selected_palette <= selected_palette;
   
   /*
     pipelines (4 clocks):
@@ -409,7 +414,7 @@ always @(posedge dvi_clk) begin
     pixout32_dly <= pixout32;
   pixout32_dly2 <= pixout32_dly;
   
-  palout <= palette[pixout8];
+  palout <= palette[{vga_selected_palette, pixout8}];
   
   case (vga_colormode)
     CMODE_8BIT:  pixout <= palout;