QUOTE(cele-ct @ May 19 2005, 01:42 AM)
Since dslbox is down , anyone want to copy/paste a cache or something ? Would love to get 720p working nice here.
No problem
============================================================
On v1.6 xboxes the kernel has limited support for the xbox's graphics chip and so has no built in overscan correction i.e. the timing (the sum of visible and non visible pixels) is fixed. Simialrly there is no overscan correction when using any of the hdtv modes on any xbox versions.
In theory it should be possible to increase the number of invisible pixiels and decrease the number of visible pixels by the same amount, reducing the resolution but correcting overscan.
The command you need to use for this is fbset. This shouldn't be run in X so you need to start in textmode and either have a usb keyboard or be able to ssh into XDSL (add 2 ssh to the append line in linuxboot.cfg) see the CHEATCODES.txt included in the download for more details. Then if your using ssh connect to your xbox using the username root and pass xbox.
First run fbset -s to see your current framebuffer infomation
it should look something like this:
mode "640x480-60"
# D: 25.176 MHz, H: 31.469 kHz, V: 59.942 Hz
geometry 640 480 640 480 32
timings 39721 40 24 32 11 96 2
accel true
rgba 8/16,8/8,8/0,0/0
endmode
the format is as follows
geometry xres yres vxres vyres depth
timings pixclock left right upper lower hslen vslen
If you want to find out what all of these mean type man fbset. The ones we are interested in are:
xres, yres - horizontal and vertical resolution
vxres,vyres - virtual horizontal and vertical resolution (should match xres, yres in most cases)
left, right, upper, lower - margins at left, right, top and bottom of the screen
We want to decrease the resolution and increase the margins to compensate. The horizontal and vertical resolution number must always be divisible by 8 and the sums
xres + left + right
yres + upper + lower
should remain constant. You should keep any other settings (pixclock etc) the same
You can apply new settings with
fbset -g <xres> <yres> <vxres> <vyres> <depth> -t <pixclock> <left> <right> <upper> <lower> <hslen> <vslen>
So for example you could could try decreasing the vertical resolution by 40 and increasing the top and bottom margins by 20 each to compenstate
Starting with the timing infomation above this would yield
fbset -g 640 440 640 440 32 -t 39721 40 24 52 31 96 2
Moving centre of the screen:
With these adjustments you may find it fixes overscan on one side of the screen (e.g the bottom left) but not on the opposite side as the screen is nolonger centered. To change this try the following:
Looks like to change the position of the screen you need to change the position of the sync pulses. This time tweak hslen and vslen while keeping the sums
xres + left + right + hslen
yres + upper + lower + vslen
constant
hslen is length of horizontal sync pulse, vslen length of vertical sync pulse
To move the screen to the right I think you need to increase hslen & decrease the left and right margins to compensate. To move the screen up increase vslen & decrease the top and bottom margins to compensate. I think you will need to make your changes in multiples of 8 (i.e. could decrease top and bottom margin by 8 increase vslen by 16)
Disclaimer: I don't have a v1.6 xbox or hdtv set to test this on - this is all theory. If you make big changes to the timing infomation it may be possible to damage your television - be careful when changing things and just make small changes.
If it does work for you add the fbset command you used into /opt/bootlocal.sh so it is run everytime you use XDSL
========================================================
This post has been edited by friedgold: May 19 2005, 01:35 AM