Based on

767 was the value checked for at 25Mhz. This is a count of 768.

I doubled it to 1535. and added one to all references to Counter X.

I am confused on these values. References I’m finding say to shoot for 31.5kHz but this works out to 32.5khz?

50e6/31.46875e3 gives 1588.87785501. Ok. That works too. I guess the monitor is just flexible.

I got an error for can’t use pin 101 which is V sync

This helped

Need to disable nCEO which is using that pin

module vga_test (
	output vga_h_sync,
	output vga_v_sync,
	output R,
	output G,
	output B,
	input clk

reg [10:0] CounterX;
reg [8:0] CounterY;
wire CounterXmaxed = (CounterX==1535);

always @(posedge clk)
  CounterX <= 0;
  CounterX <= CounterX + 1;

always @(posedge clk)
    CounterY <= CounterY + 1;

reg vga_HS, vga_VS;
always @(posedge clk)
  vga_HS <= (CounterX[10:5]==0);   // active for 16 clocks
  vga_VS <= (CounterY==0);   // active for 768 clocks

assign vga_h_sync = ~vga_HS;
assign vga_v_sync = ~vga_VS;

assign R =  CounterX[9];//CounterY[3] | (CounterX==256);
assign G = CounterX[8];//(CounterX[6] ^ CounterX[7]) | (CounterX==256);
assign B = CounterX[7]; //CounterX[5] | (CounterX==256);


Alright. It appears to work. That is a good start.