- Start capturing by pressing "c" or by selecting it via a menu!

- Start capturing by pressing "c" or by selecting it via a menu!!!

- The memory of some S3 cards is not recognized right:

  First of all, if you are not using XFree-3.2 or newer, upgrade AT LEAST to
  XFree-3.2A! This solved the problem for most people.

  Start up X11 like this: "XF86_S3 -probeonly" and write down where the
  linear frame buffer is.
  If it is different to the address found by bttv install bttv like this:
  "insmod bttv vidmem=0xfb0"
  if the linear frame buffer is at 0xfb000000 (i.e. omit the last 5 zeros!)

  Some S3 cards even take up 64MB of memory but only report 32MB to the BIOS.
  If this 64MB area overlaps the IO memory of the Bt848 you also have to
  remap this. E.g.: insmod bttv vidmem=0xfb0 remap=0xfa0

  If the video memory is found at the right place and there are no address
  conflicts but still no picture (or the computer even crashes),
  try disabling features of your PCI chipset in the BIOS setup.

  Frank Kapahnke <frank@kapahnke.prima.ruhr.de> also reported that problems
  with his S3 868 went away when he upgraded to XFree 3.2.


- I still only get a black picture with my S3 card!

  Even with XFree-3.2A some people have problems with their S3 cards
  (mostly with Trio 64 but also with some others)
  Get the free demo version of Accelerated X from www.xinside.com and try
  bttv with it. bttv seems to work with most S3 cards with Accelerated X.

  Since I do not know much (better make that almost nothing) about VGA card
  programming I do not know the reason for this.
  Looks like XFree does something different when setting up the video memory?
  Maybe somebody can enlighten me?
  Would be nice if somebody could get this to work with XFree since
  Accelerated X costs more than some of the grabber cards ...

  Better linear frame buffer support for S3 cards will probably be in
  XFree 4.0.

- Grabbing is not switched off when changing consoles with XFree.
  That's because XFree and some AcceleratedX versions do not send unmap
  events.

- Some popup windows (e.g. of the window manager) are not refreshed.

  Disable backing store by starting X with the option "-bs"

- When using 32 bpp in XFree or 24+8bpp mode in AccelX 3.1 the system
  can sometimes lock up if you use more than 1 bt848 card at the same time.
  You will always get pixel errors when e.g. using more than 1 card in full
  screen mode. Maybe we need something faster than the PCI bus ...


- Some S3 cards and the Matrox Mystique will produce pixel errors with
  full resolution in 32-bit mode.

- Some video cards have problems with Accelerated X 4.1
