## Unified Nvidia graphics driver for (open)BeOS

### NOTE PLEASE:
You use this software at your own risk! Although I don't expect it to damage your PC, videocard or Monitor, I cannot guarantee this!

## Supported cards (as far as is known):

- TNT 1/2;
- TNT 2-M64;
- Vanta/Aladdin TNT2;
- GeForce 256;
- GeForce 2 MX/Ti/GTS/Go;
- GeForce 2 Integrated GPU (Nforce) (setup RAM amount manually for now);
- GeForce 3 (Ti);
- GeForce 4 MX/Ti/Go;
- GeForce 4 Integrated GPU (Nforce 2) (setup RAM amount manually for now);
- GeForce FX 5200/5600/5700/5800/5900/5950/Go;
- Quadro (2/4/FX/Go).

## Features:

- Hardware cursor support (on both heads on dualhead cards);
- Full 2D acceleration;
- Full BWindowScreen support (used for hardware pageflipping, scrolling/panning and acceleration in applications/games);
- DPMS support for analog connected screens (on both heads on dualhead cards);
- B_YCbCr422 hardware overlay support on both TNT and GeForce series cards (overlay follows head in dualhead stretch/switch modes);
- Dualhead support on GeForce dualhead cards (use Mark Watson's 'Dualhead Setup' from BeBits for now);
- DVI and laptop panel (widescreen) support.

Known limitations:

- If the driver does not load make sure you enabled 'assign IRQ to VGA card' in your system BIOS;
- Embedded GeForce RAM detection is non-functional: please set amount manually for now via the nv.settings file (driver probably defaults to 1Mb if you don't). If you have overlay trouble, set a slightly smaller amount of RAM than you actually specified in the system BIOS (1Mb less or so);
- If the driver still seems to create 'random' trouble make sure you have a fully functional VGA BIOS, or system BIOS for embedded cards (check for updates on the manufacturor's site). Make sure you mail me if you still have trouble but also if this version fixed that!
- If on a laptop the internal panel doesn't work when you connect an external monitor, make sure you set 'output device selection' to 'internal' (instead of 'auto') in the system BIOS if it has such an option. If you have this symptom on a normal card, or on a laptop without that BIOS option then you are probably out of luck for dualhead support.

## Installation:

If you encounter bugs, please checkout the driver's website to see if it's already on the todo list. You can also checkout the UPDATE file included with this driver to see if it should have been fixed. If you think it's prudent, or if you are unsure, then please fill out the bugreport form on the site or send me an Email. Make sure you are as precise as possible because that will make things easier to trackdown and fix...
OK, now that's all said let's get to it ;-)
In contrary to what I have said before you don't need to de-install official Be drivers for this driver to work correctly. This driver will install in the user part of the BeOS, so not in the system part where the official drivers are.
BeOS first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own drivers (if any). You can select which driver should be loaded by hitting the spacebar as soon as the BeOS 'icons' screen appears. If you select disable user addons the system will load it's own drivers. If you don't do anything, the system will load the (open)BeOS Nvidia TNT/GeForce graphics driver.
Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the nv.settings file...
actual INSTALLATION:
Doubleclick on the install.sh file and follow the instructions. You have to reboot in order to load the driver. Make sure you read the Settings information below before you do that...
alternate INSTALLATION method:
Unzip the zip file that contains the driver to the root folder. Now reboot and you should be using the new driver.
DE-INSTALLATION:
Currently there's no uninstall script included. Just do it manually:
Delete the nv.accelerant file in home/config/add-ons/accelerants/
Delete the nv.driver file in home/config/add-ons/kernel/drivers/bin/
Delete the nv.settings file in home/config/settings/kernel/drivers/
Delete the nv.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nv.driver.
You have to reboot in order to apply the original configuration.

## Settings:

Please read this information carefully *before* installing and using the (open)BeOS Nvidia TNT/GeForce graphics driver. It might spare you some trouble afterwards..

The driver uses a file named nv.settings to determine how to use your card. After installation this file will be located at home/config/settings/kernel/drivers/. How you should setup this file depends on what you want to do with the driver. While it has a 'failsave' default configuration, you might be able to do better than that... Anyway, read the nifty details below.
Note: The driver only reads this file during it's initialisation. This means that you have to reboot in order to let changes take effect.
nv.settings driver configuration:

- memory: (disabled by default)
  This option enables you to override the 'memory amount autodetection' of the driver. If autodetection is working incorrect, you can manually set the amount this way. You could also lower the amount of RAM to a lower value than actually there to test with for instance overlay use in applications. So this option is probably mostly of interest to developers. Specify the RAM amount in Mb (use only 'whole' numbers!).
  This option is disabled by default (preceded by a '#').
- hardcursor:
  A hardcursor is nessesary for DirectWindow windowed mode support.
  - false:
    If you have trouble with the hardcursor (on one or both of the heads), select hardcursor false. Make sure you let me know about the hardcursor trouble also: this should not happen!
  - true: (default setting)
    A software cursor 'flickers' a bit sometimes because it has to be redrawn constantly. So hardcursor true is the preferred setting. For DirectWindow windowed mode functionality you need to use this setting also (Chart demo app for instance).
- logmask: (set to minimal by default)
  The logmask option is very handy to track down trouble in the driver. You should only enable this if you are doing so, otherwise keep it turned off because it slows down your system. (All lines have a '#' preceding 'logmask' by default.) Logging creates a logfile called nv.accelerant.0.log in your ~ (home) folder. A second logfile may get created depending on how the driver is used (on cloning; for BWindowScreen for example). The second file is called nv.accelerant.1.log, and it will also be in your home folder.
  Note:
  - You may only enable *one* logmask-line. The value you place after it (hexadecimal 32bit) determines what will be logged. The first 7 digits determine the part of the driver that will be logging, the last single digit determines the level of logging (like 'all messages', or only 'error messages').
- dumprom:
  Dumprom is another 'tool' for bug-tracking purposes.
  - false: (default setting)
    Keep it set to dumprom false, unless you want the driver to dump the contents of your VGA BIOS ROM in a file.
  - true:
    dumprom true lets the driver dump a copy of your VGA BIOS in a file called nv.rom in your ~ (home) folder.
- switchhead:
  The driver always autodetects which output should be used as primary one, but you can let the driver 'invert' the outcome of that detection with this option (only for dualhead cards).
  - false: (default setting)
    Keep it set to switchhead false, unless you feel you want the card's other output to be used as primary one. Note that if a single connected screen is found, that screen will be the driver's primary output with this setting.
  - true:
    switchhead true lets the driver 'invert' the output assignments for all modes. Use only when you have two screens connected, otherwise the one connected screen will remain black as the other (not connected) output is being used.
  Note:
  - If the driver determines it cannot use a digital panel despite it being physically connected and powered on, using the switchhead option will not fix this. This is no fault in your card or the panel, but happens only because the driver relies on certain functions inside your cards BIOS to behave in a certain way.

Rudolf Cornelissen.

(Page last updated on June 12, 2004)