Dicussion with Michael led me to conclusion that we are getting insufficient data. i.e.
the vram_address needs to change quicker. So it wasn't really a matter of hcount and x_delay checking but rather a change of the addressing scheme. Fixed now