Retinal Burn Photo & Design

TV Out Support for Mach64
Home
World Trip
More Photos
Linux
Links
E-Mail
Sign Guestbook
Guestbook
 
Last Updated: Mar. 28, 2003

If you find errors or omissions please email me.

Patches / Binaries | Options | Changelog | TODO / Limitations | LICENSE

NOTE: A source patch and binaries based on current GATOS cvs and XFree86 4.3.0 are now available below. The previous XFree86 4.2.0 binaries and patch are still available as well.

I've adapted the experimental TV out code from GATOS cvs (devel branch) for Radeon and Rage128 to Mach64. The current patch should be applied to the GATOS cvs HEAD. If you'd like to use TV-out with DRI, use my patch or binaries for unified DRI and XVideo instead. This patch uses INT10 calls (sorry, x86 only) to the card BIOS to get/set TV out configuration, and uses VESA VBE BIOS calls to set the mode for TV out. It should work with 640x480, 800x600 and 1024x768 (1024x768 may not work with earlier cards, but should work with LT Pro, Rage XL(?), and Rage Mobility) at 15- and 16-bit color depths. 24 bit color is not supported (it's disabled in the patch if you want to try it, but it doesn't work for me). Some users with earlier cards (Rage II/II+/IIc and original Rage Pro) have reported that the TV output is initially black, but switching to a text console and back to X fixes the problem. This problem should be fixed in the newest (4.3.0) binaries/patch. Thanks go to Peter Surda, Vladimir Dergachev and Rick Scott of GATOS and the gatos-devel list for the original Rage 128 and Radeon tv out code that this patch is based on.

Alternatives to the patch:

  • Some laptops have a BIOS feature that allows enabling/disabling TV-out with a special key sequence. For example, my Dell Inspiron 7000 does this with Fn-F7, and works without using the patch. UPDATE: The stock XFree86 4.3.0 driver has disabled display switching with the BIOS, so this method won't work in 4.3.0. If you use the binaries or patch below for 4.3.0, this ability will be restored (it's necessary for the patch to work, since it uses BIOS functions).
  • Lennart Poettering has a command-line utility: atitvout, which uses INT10 BIOS functions like the patch.

    NOTE: Several people have asked me for information on VBE functions for mach64 and other chipsets, such as Radeon. The only information I am able to provide can be found in the source of my patch. I only have documentation for mach64 chips, and I am not permitted to share this documentation. There is no publicly available hardware documentation from ATI, but they have already provided documentation to developers on the XFree86, gatos, and DRI open-source projects. If you are interested in helping the effort to support TV-out for ATI chipsets, I recommend subscribing to the gatos-devel mailing list. General information about VESA modes and the VESA BIOS Extension (VBE) as well as specifications for VESA standards can be found at the VESA website.

    To apply the patch:

    Begin in the 'ati.2' directory of your local GATOS cvs tree and run:
    % gunzip -c mach64-tvout-X.diff.gz | patch -p0
    

    Then rebuild and install the driver. Then you'll need to add 'Option "TVOut"' to the Device section of XF86Config (see Options below), and restart X. With this patch, the BIOS calls are made on VT switches, so connecting the TV and then switching to a virtual console and back to X should enable TV out. This should work for Rage LT Pro, Rage XL and Rage Mobility cards. If that doesn't work, try rebooting with the TV connected and starting X. For more information on GATOS check the GATOS website.

    Patches and Binaries

    The most recent patch should apply cleanly to the GATOS cvs. The patch files are gzipped unidiff text files. The binaries are made from GATOS cvs HEAD (main tree, not devel branch). Note that these binaries don't include DRI support. If you're looking for unified support for DRI, XVideo, and TV-out, check out my GATOS patch for DRI. For more information about the GATOS drivers, check out the GATOS homepage and the gatos-devel mailing list.

    DISCLAIMER: This code is experimental and is provided as-is. It is intended for developers who want to help work on tv-out support for ATI video cards. No warranty or support is implied and I take no responsiblity for any damage it may cause to your hardware if you choose to use it. Enjoy! ;)

    Patch and Binaries for XFree86 4.3.0:
    source patch: mach64-tvout-20030328.diff.gz (3/28/03)
    binaries: ATI-4.3.0-mach64tvout-20030328.tar.gz (3/28/03)

    Patch and Binaries for XFree86 4.2.0:
    source patch: mach64-tvout-20020916.diff.gz (9/16/02)
    binaries: ATI-4.2.0-mach64tvout-20020916.tar.gz (9/16/02)

    Older patches
    Download via FTP

    Options:
    XF86Config Options
    ------------------
    Option "TVOut"  -- boolean, enable/disable TVOut probes and mode changes
    Option "TVStandard" -- Set TV standard (not supported for Rage LT Pro)
       Valid settings for "TVStandard":
       "NTSC", "PAL", "PAL-M", "PAL-60", "NTSC-J", "PAL-CN", "PAL-N", "SCART-PAL"
    
    
    Changes:
    * Mar. 28, 2003:
    - Ported patch to XFree86 4.3.0
    - Included workaround for early mach64 chips (e.g. Rage II/IIC/II+), which 
    should fix the black screen when starting the X server, so the vt switch 
    workaround shouldn't be necessary.
    - Re-enabled BIOS display switching (disabled in stock 4.3.0 driver)
    - Created patched GATOS binaries from GATOS cvs HEAD and XFree86 4.3.0
    
    * Sep. 17, 2002:
    - Move the VBE mode set to before the X server restores the VGA video memory
    when switching to text console.  Partially fixes custom console fonts being
    reset on vt switches (non-standard console fonts sizes are still a problem).
    
    * Sep. 16, 2002:
    - Don't use flat panel stretching (for non-native DFP/LCD modes) if TV 
    is active or Option "crt_screen" is enabled.
    - Don't clobber video memory contents when switching modes with VBE SetMode.
    
    * Aug. 9, 2002:
    - Fix text console modes
    - Add XF86Config options: "TVOut" and "TVStandard"
    
    * Apr. 24, 2002:
    - Fix 15-bit depth, disable 24-bit depth as it doesn't seem to work.
    
    * Jan. 26, 2002:
    - Created patched GATOS binaries from GATOS cvs HEAD and XFree86 4.2.0
    
    * Jan. 15, 2002:
    - Don't do any BIOS probes if mode is invalid/unsupported for TV out.
    - Added TV attached query for cards other than (earlier than)
    Rage LT Pro, Rage XL, Rage Mobility
    - Try to enable TV out (if attached) for cards other than
    (earlier than) Rage LT Pro, Rage XL, Rage Mobility
    - Code is included (but disabled with #ifdef 0) for setting
    TV standard on cards other than LT Pro.  Just enable the code and
    hard code your TV standard.  Your card must support multiple
    TV standards.
    
    * Dec. 16, 2001:
    - Initial port of r128/Radeon TV out code from GATOS devel branch
    - Supports connecting/disconnecting TV on mode switches for
    Rage LT Pro, Rage XL, and Rage Mobility.  Other cards should work
    if TV is connected at boot time.
    
    
    TODO / Limitations:
    - Only works on x86
    - Cards other than Rage LT Pro, Rage XL, and Rage Mobility may not
    work at 1024x768 and may start up with a black screen and require a
    vt switch to a text console and back to fix the TV output.
    - No detection or enabling/disabling functions for LCD/DFP, CRT with
    cards other than Rage LT Pro, Rage XL, Rage Mobility.
    
    
    License:
    The source code and binaries on this page are based on the XFree86 project and are subject to the XFree86 License.

  •    

    All images and text © 1998-2003 Leif L. Delgass, All Rights Reserved
    (Unless otherwise specified).

    Home | World Trip | Photos | Linux | Links | Email me
    Sign Guestbook | View Guestbook



    [Blue Ribbon Campaign]
     

    Nedstat Basic - Free web site statistics