.\" PS3 video mode utility.
.\"
.\" Copyright (C) 2008 Sony Computer Entertainment Inc.
.\" Copyright 2008 Sony Corp.
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; version 2 of the License.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
.\"
.\" Maintainer's Notes:
.\"  * For syntax help see the man pages for 'mdoc' and 'mdoc.samples'.
.\"  * To check syntax use this:
.\"    'groff -C -mtty-char -Tutf8 -man ps3-video-mode.8'.
.\"  * To check format use this: 'less ps3-video-mode.8'.
.\"
.Dd ""
.Dt ps3-video-mode 8
.Os
.\"
.Sh NAME
.\" ====
.Nm ps3-video-mode
.Nd PS3 video mode utility
.\"
.Sh SYNOPSIS
.\" ========
.Nm
.Op Fl m, -mode Ar mode-id
.Op Fl r, -rgb
.Op Fl f, -full-screen
.Op Fl g, -full-range
.Op Fl d, -dither
.Op Fl h, -help
.Op Fl V, -version
.\"
.Sh DESCRIPTION
.\" ===========
The ps3-video-mode utility is used to display or change the video mode
of the PS3 game console.  The default behavior is to display the current
video mode ID.
.\"
.Sh OPTIONS
.\" =======
.Bl -tag -width indent
.\"
.It Fl m, -mode Ar mode-id
Set the system video mode to 
.Ar mode-id .
See the 
.Ar NOTES
section below for more information on the
.Ar mode-id
value.
.\"
.It Fl r, -rgb
Use RGB color space mode.
.\"
.It Fl f, -full-screen
Use full screen mode.
.\"
.It Fl g, -full-range
Use full range mode.
.\"
.It Fl d, -dither
Use dither mode.
.\"
.It Fl h, -help
Print a help message.
.\"
.It Fl V, -version
Display the program version number.
.El
.\"
.Sh NOTES
.\" =====
.\"
.Ss Video Mode IDs and Mode Names
.\" -----------------------------
The supported video
.Ar mode-id
values, coresponding
.Ar mode-name
values, and screen resolutions are as follows:
.Pp
.Bd -literal -offset indent
AUTO Detect Mode:
       0: auto (480i/576i if not HDMI)

60 Hz Broadcast Modes:
       1: 480i    (576 x 384)
       2: 480p    (576 x 384)
       3: 720p   (1124 x 644)
       4: 1080i  (1688 x 964)
       5: 1080p  (1688 x 964)

50 Hz Broadcast Modes:
       6: 576i    (576 x 460)
       7: 576p    (576 x 460)
       8: 720p   (1124 x 644)
       9: 1080i  (1688 x 964)
      10: 1080p  (1688 x 964)

VESA Modes:
      11: wxga   (1280 x 768)
      12: sxga   (1280 x 1024)
      13: wuxga  (1920 x 1200)

60 Hz Full Screen Broadcast Modes:
     129: 480if   (720 x 480)
     130: 480pf   (720 x 480)
     131: 720pf  (1280 x 720)
     132: 1080if (1920 x 1080)
     133: 1080pf (1920 x 1080)

50 Hz Full Screen Broadcast Modes:
     134: 576if   (720 x 576)
     135: 576pf   (720 x 576)
     136: 720pf  (1280 x 720)
     137: 1080if (1920 x 1080)
     138: 1080pf (1920 x 1080)
.Ed
.Pp
Note that VESA modes are only valid for the HDMI port.
.Pp
The mode options
.Sy --rgb, --full-screen, --full-range
and
.Sy --dither
can be specified via the
.Ar mode-id
as follows:
.Bd -literal -offset indent
RGB color space:  <video mode ID> + 32
Full screen mode: <video mode ID> + 128
Full range mode:  <video mode ID> + 1536
Dither mode:      <video mode ID> + 2048
.Ed
.\"
.Ss RGB Color Space Mode
.\" --------------------
The RGB color space mode
.Sy --rgb
is only valid for the analog port.  The default is to use the YUV color space.
.\"
.Ss Full Screen Mode
.\" ----------------
Originally 480/576i, 480/576p, 720p, 1080i, and 1080p were analog broadcast
resolutions that included overscan.  The full screen mode option
.Sy --full-screen
causes the overscan region of the broadcast modes to be used for
pixel display.  Not all displays can support full screen mode.
.\"
.Ss RGB Full Range Mode
.\" -------------------
The full range mode
.Sy --full-range
adjusts the dynamic range of the video output RGB values.
.Pp
This setting affects the video output signal on both the analog and HDMI
ports, but is only useful with some HDMI displays.
When this option is not enabled the video output signal will have an
RGB dynamic range of 16 to 235, and when enabled will have an RGB
dynamic range of 0 to 255.
This option must be specified by the user because the HDMI information
received from the attached display does not specify whether the display
supports RGB full range mode or not.
.\"
.Ss Dither Mode
.\" -----------
The dither mode option
.Sy --dither
suppresses the Mach Band Effect.  See http://en.wikipedia.org/wiki/Mach_bands.
.\"
.Ss Other Notes
.\" -----------
Don’t change the display resolution while sound is playing.
.Pp
Don’t change the display resolution from X.  If you do, you
will need to restart the X server.  This is because the X frame buffer
driver assumes a frame buffer has a fixed line length.
.Pp
If you would like to boot Linux into a specific video mode you may pass
a video mode option on the kernel the command line.  Two formats are available.
One uses a video mode name as
.Sy video= Ns Ar mode-name ,
and the other uses a video
.Ar mode-id
as
.Sy video=ps3fb:mode: Ns Ar mode-id .
See the
.Ar EXAMPLES
section below for more information.
.\"
.Sh EXAMPLES
.\" ========
Examples (1) and (2) are equivelent, and both set the video mode to
60Hz 720p full screen:
.Bd -literal -offset indent
ps3-video-mode --mode=3 --full-screen    (1)
ps3-video-mode --mode=131                (2)
.Ed
.Pp
Example (3) uses the kernel command line to set the video mode to VESA WUXGA:
.Bd -literal -offset indent
vmlinux video=wuxga ...                  (3)
.Ed
.Pp
Examples (4) and (5) are equivelent, and both set the video mode to
50Hz 1080p:
.Bd -literal -offset indent
vmlinux video=1080p@50 ...               (4)
vmlinux video=ps3fb:mode:10 ...          (5)
.Ed
.\"
.Sh SEE ALSO
.\" ========
.Xr fbset 8
.\"
.Sh AUTHOR
.\" ======
Written by Masashi Kimoto and Geoff Levand.
.\"
.Sh REPORTING BUGS
.\" ==============
Report bugs to Geoff Levand <geoffrey.levand@am.sony.com>.
