This project has moved to

New TL880Spy release:
TL880Spy 1.3
Aug. 11, 2007 16:25:00 MDT
New release:
MyHD 0.2.3
Mar. 28, 2007 02:20:00 MDT
New release:
MyHD 0.2.2
Jan. 23, 2007 00:35:00 MST
New tool release:
TL880Spy 1.2
Jan. 19, 2007 19:30:00 MST

Hosted by: Logo

TL880Spy Card Tweak Tool for Windows

Click here to download the latest version.
Click here to view a screen shot.
Click here to view the old TL880Spy 1.0 page.

How to get started: download the binary distribution, unzip it to a folder, and run TL880Spy.exe. A result log page will be displayed, where there are several buttons:

  • MemEditor - Allows changing an arbitrary dword in card memory.
  • MemViewer - Displays an arbitrary 0x100 block of card memory, allowing the user to save the displayed block to the report.
  • MemDumper - Saves an arbitrary block of card memory to a binary file.

  • RegEditor - Allows changing an arbitrary card register.
  • RegWatcher - Shows the contents of 12 arbitrary registers with a high update frequency.
  • RegDumper - Saves one or more predefined blocks of registers to the report.
  • RegViewer - Displays an arbitrary 0x100 block of card registers, allowing the user to save the displayed block to the report.
  • BinRegDump - Saves an arbitrary block of card registers to a binary file.
  • DPC Viewer - Shows the current video mode parameters and display state.

  • Save... - Saves the report to a text file.
  • Exit - Exits the TL880Spy program.

RegDumper can be used to figure out all kinds of things. For example, if you want to figure out how to set various video modes, do a dump of the DPC registers and the miscellaneous registers for each video mode, and look for differences. It's easiest if you delete all the text in the result log, and save each dump to a separate file. Then you can just use diff -u if you have Cygwin installed (or can access the files in a UNIX/Linux distribution with GNU tools available) to find differences between the files.

Some of the registers are status registers that are updated constantly, like register 0x10004. Making multiple dumps of the same region without making any changes in the card's software will help you to find these.

For a list of known registers/register ranges, see tl880doc.txt in the driver source distribution, or in Webcvs here. There is also a convenient list of registers here, but it is very out of date due to the difficulty of adding new information. If someone wants to volunteer to write a database to store and automatically generate both files (reglist.html and tl880doc.txt), send a post to the list.

As you learn about the registers, share your findings on the mailing list. Particular things that would be good: figuring out the formula for the PLL reference set in register 0x5800. This PLL either sets or affects the pixel clock of the sync generator. The first three or so hex digits seem to be a mutliplier (increase speed), and some of the digits further down seem to be a divider (decrease speed). Make sure you don't do this test on a monitor that's extremely sensitive to refresh rate changes. I did it on my Plus UP-1100P projector, ViewSonic G90f monitor, and old Compaq 15" monitor without problems. I must say.. 1024x768p at 27Hz is quite a sight to see! It would be great if someone who has access to a frequency counter and/or digital oscilloscope would hook the H-Sync and V-Sync outputs to the test hardware and determine the relative effect changing register 0x5800 has on the refresh rate.

Help figuring out the audio registers (0x3000-0x3040) would be appreciated, as that is one current area of focus.

Anyway, I hope this gets you all excited about figuring out the card. Don't change anything in the HIF region (0x0 to 0x14), as that could cause the card to start interrupting the CPU without the driver expecting it, resulting in a system hang. Also, anything from 0x18000 to 0x20000 or so may be dangerous to change (firmware resides in that area).

©2006 MyHD Linux Driver Project