I have a slightly unusual requirement for a custom resolution configuration in xorg.conf and need some help to figure out how to achieve it. I have a projector with 1400x1050 native resolution and want to use it in a poor man's Cinemascope mode @ 1400x584. The problem is I still need to feed the projector a full frame signal, while restricting X (or XBMC in this case) to only use a 1400x584 "slice", while outputting black/blank pixels above and below this. Ideally, I'd like to be able to define where the output "window" is positioned vertically within the 1400x1050 frame, but centered would be fine too. I'm pretty sure this should be possible but despite hours of searching I haven't been able to find any good answers - probably because most people aren't stupid enough to only want to use part of their screens... Any ideas?
Edit - These are the reported stats for the projector:
(II) NVIDIA(0): Frequency information for CAI CANON PJ (DFP-1):
(II) NVIDIA(0): HorizSync : 15.000-80.000 kHz
(II) NVIDIA(0): VertRefresh : 50.000-85.000 Hz
(II) NVIDIA(GPU-0): 1400 x 1050 @ 60 Hz
(II) NVIDIA(GPU-0): Pixel Clock : 108.000 MHz
(II) NVIDIA(GPU-0): HRes, HSyncStart : 1400, 1448
(II) NVIDIA(GPU-0): HSyncEnd, HTotal : 1560, 1688
(II) NVIDIA(GPU-0): VRes, VSyncStart : 1050, 1051
(II) NVIDIA(GPU-0): VSyncEnd, VTotal : 1054, 1066
(II) NVIDIA(GPU-0): H/V Polarity : -/-
Another Edit - After more head-scratching, measuring and testing I've come up with a revised plan:
The projector has a motorized zoom, and what's more, it turns out that if I set the aspect ratio to 16:9 (on the projector) I am able to shift a 788px tall frame up/down within the 1050px tall viewport using the remote. Result! Combining that with the above, and with the help of the answers below, I think the best solution is to set the screen resolution in xorg.conf to 1400x788 (16:9) and use the zoom function to expand the projected image to the full height of the screen when viewing 2.39:1 (Cinemascope) content - thereby pushing the black bars off the screen and onto the masking. This solution has some major benefits:
- When viewing 16:9 content I make use of nearly twice the number of pixels (1.1Mp vs. 600kp)
- I gain the ability to adjust the vertical position of the image on the fly using the remote
- A zoomed in picture is slightly brighter than the fully zoomed out one
The drawback is that to switch aspect ratios I now have to perform three steps: move the masking, zoom the picture and shift it into position vertically, as opposed to just moving the masking - but I can definitely live with that. The only question now is which of these two modelines to use:
Modeline "1400x788@69" 108.00 1400 1432 1840 1872 788 803 812 828 -hsync -vsync
Modeline "1400x788@60" 89.66 1400 1432 1768 1800 788 804 812 828 -hsync -vsync
That is, should I go for maximum refresh (69Hz) or standard refresh (60Hz)?