I don’t see why h.active 320 works in 2x 256×240 and doesn’t work in 5x 512×240 since both have horizontal multiplier 3x.
I also don’t see why the image becomes unstable above samplerate 422 in 5x 320×240 and works fine at the correct samplerate 432 in 4x 256×240 since both have horizontal multiplier 5x.
Well it’s not samplerate by line that matters really, but rather the total pixel clock. I was talking only in context of x5 line multiplication earlier, so it was implicit, sorry if that confused you.
422*5*263*5*59.37 = 165 MHz
432*5*263*4*59.37 = 135 MHz
And as a comparison, the pixel clock of VESA 1600×1200 is 161MHz, so it makes sense at some point above that your monitor does not accept the signal anymore.
You mentioned that 1536 is padded to 1600 with blanking but wouldn’t it be 1350 that is padded to 1600 since h.active is 450?
Correct, I forgot that you had changed the h.active already.
If Espgaluda has 224 lines, why does changing h.active from 240 to 224 cause the image to stretch and fill the full screen width?
That is your display scaling. You’re telling it ”vertical height is 1120” and your display says ”I better stretch that to full (1200) height”.