## Unified Matrox 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:

- Millenium I (preliminary)
- Millenium II (preliminary)
- G100
- G200
- G400
- G450
- G550

## Features:

- Millenium I/II (preliminary):
  - Hardware cursor support;
  - Full 2D acceleration;
  - Full BWindowScreen support (used for hardware pageflipping, scrolling/panning and acceleration in applications/games);
  - Sync_on_green support;
  - DPMS support;
- G100-G550:
  - Hardware cursor support on one head;
  - Full 2D acceleration;
  - Full BWindowScreen support (used for hardware pageflipping, scrolling/panning and acceleration in applications/games);
  - Full card coldstart support (important if you use such a card as secondary videocard);
  - Sync_on_green support: G400, G450 and G550 apparantly miss the needed board wiring to actually support this fully though;
  - DPMS support on both heads;
- G200-G550:
  - B_YCbCr422 hardware overlay support on one head (including 'hardware zoom');
- G400-G550:
  - Dualhead functionality;
    Note: You need Dualhead Setup for use of dualhead modes.
  - TVout support: Desktop modes: G400 only for now; Video modes: G400-G550.
    Note: You need Dualhead Setup for use of Desktop TVout modes, and you need VideoScreen V6 for use of Video TVout modes (for now).

current MGA driver limitations:

- If the driver does not load make sure you enabled 'assign IRQ to VGA card' in your system BIOS;
- Expansion RAM modules are not supported as far as I know;
- Special versions of G200 apparantly have colorpalette problems (Marvel, Matrox MMS cards like the HP VisualizeFX ). Use them in 32bit mode; overlay and hardware cursor should be OK.
- G400 cards have overscanning rubbish visible on the top of the screen if spaces with virtual height are used on the secondary head in monitor mode. This cannot be fixed decently, and is caused by a MAVEN hardware design fault.

## 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 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 Matrox graphics driver.
Since BeOS only supports all Matrox cards upto and including G400 you will end up in VGA grayscale videomode if you have a G450 or G550. Otherwise, you will have a normal colorfull Desktop. Only BeOS will be using it's own official drivers in this case...
Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the mga.settings file...
actual INSTALLATION, part 1:
If you used Mark Watson's G400 driver (upto and including V0.12), or the (open)BeOS driver V0.13 alpha1 (which was based on Mark's driver directly), you need to do an extra manual step *once* in order to activate the new driver:
You must remove Mark's driver manually. (If you don't, the new driver won't be loaded!)
In order to do this, you need to delete two files (and reboot afterwards). Here's how:

- In: home/config/add-ons/accelerants/
  delete: MGAGX00.accelerant (You *should* find 'mga.accelerant' there if you already installed the openBeOS driver V0.13 alpha2 or up.)
- In: home/config/add-ons/kernel/drivers/bin/
  delete: gx00.driver (You *should* find 'mga.driver' there if you already installed the openBeOS driver V0.13 alpha2 or up.)
- You can also delete the mgaGx00.log logfile which is generated by Mark's driver in your home folder. (The logfile called 'mga.accelerant.0.log' the new driver generates is located there also. You may delete that if it gets too big: the (open)BeOS driver simply creates a new one from scratch when needed. The same applies for a possibly existing 'mga.accelerant.1.log' file, generated by clone accelerants.)

If you install a new version of the (open)BeOS MGA driver later on you won't encounter this manual thing again: it's a one-time thing only.
actual INSTALLATION, part 2:
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 (part 2) 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 mga.accelerant file in home/config/add-ons/accelerants/
Delete the mga.driver file in home/config/add-ons/kernel/drivers/bin/
Delete the mga.settings file in home/config/settings/kernel/drivers/
Delete the mga.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file mga.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 Matrox MGA driver. It might spare you some trouble afterwards..

The driver uses a file named mga.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.
mga.settings driver configuration:

- usebios:
  The name of this item may be somewhat misleading, it might be changed in the future. It actually tells the driver if it should coldstart the card or not. The driver will rely on the VGA BIOS to have coldstarted the card before BeOS booted if you specify 'true'.
  To make things look even more complex the driver actually uses the BIOS to determine your cards specifications on *both* possible settings.
  - false: (default setting in V0.13 beta2 and up)
    If you specify usebios false the driver will coldstart the card, which is the preferred way of doing it because of the better tuned setup if all is right. If you encounter trouble with this setting then please inform me, because it should be working reliably on all Gxxx cards! This setting also enables you to use your Matrox card as a secondary card in your system. Be advised though that BeOS officially does not (yet) support multiple VGA cards, so you need special software in order to be able to actually use it (a video consumer node for instance).
  - true: (default setting in V0.13 beta1)
    If you have a G450 or G550 and you are using the old V0.13 beta1 (or an even older) driver, specify usebios true (If you don't your screen will probably go dark when you restart BeOS). If you have trouble on other cards (or while using the latest driver) use this setting also. If this setting gives you trouble, then (also) please let me know.
  Notes:
  - On V0.13alpha2 and before usebios had no effect on G400 cards. These cards were always coldstarted.
  - Millenium I and II cards do not (yet) have coldstart support. The usebios setting has no effect here.
- memory: (disabled by default)
  This option enables you to override the 'memory amount autodetection' of the driver. While you did need it on all driverversions for most cards upto now, you don't need it anymore starting with V0.13beta1. There is only *one* exception: If the V0.13beta1 (and up) driver reports not being able to process the Pins BIOS info, it will default to a failsafe RAM amount. This might be too low a value, so you might want to tune that then. Specify the RAM amount in Mb (use only 'whole' numbers!).
  This option is disabled by default (preceded by a '#').
  Note:
  - Memory detection does not work (yet) on Millenium I and II cards. Millenium I is preset to having 2Mb RAM, while Millenium II is preset to having 4Mb RAM. If you have more and want to use it, use the memory option to set the driver to the correct amount of RAM.
- hardcursor:
  The hardcursor capabilities of the MGA cards are limited to one head only. A hardcursor is nessesary though for DirectWindow windowed mode support.
  - false: (default setting in V0.13 beta2 and V0.14)
    If you want to use dualhead and also want a visible cursor on both heads, select hardcursor false. This setting is used by default these days because it's a 'failsafe' setting that works independently of the selected videomode.
  - true: (default setting in V0.13 beta1 and V0.15 and later)
    A software cursor 'flickers' a bit sometimes because it has to be redrawn constantly. So for use in singlehead mode hardcursor true is the preferred setting. For DirectWindow windowed mode functionality you need to use this setting also (Chart demo app for instance).
  Notes:
  - Starting with V0.13beta1 the hardcursor also works on G100 cards.
  - Driverversion V0.14 also introduces Millenium I and II hardcursor support.
- 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 mga.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 mga.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 mga.rom in your ~ (home) folder.
- greensync: (V0.14 and up)
  Greensync is used to enable an alternate monitor signal synchronisation setup used for some specific monitors outthere.
  - false: (default setting)
    Normal synchronisation signals are output only. Changes are, you will use this setting.
  - true:
    greensync true lets the driver output 'Sync on Green' timing signals to the monitor also. On dualhead cards the secondary head remains outputting standard signals only: sync on green is not supported there. Don't use this option unless your monitor needs it. Otherwise you will probably get a distorted Desktop that's also too bright..
  Note:
  - Enabling sync on green does two things. It enables output of composite sync on the Hsync line (while keeping Vsync only on the Vsync line), and it adds this composite sync to the green signal output to your monitor. While outputting composite sync works on all cards, adding this to the green signal output only works on older cards, upto and including G200.

Notes:

- If you want to use standard (Desktop) TVout or dualhead modes, you need dualheadSetup. You can download this application from BeBits.
- If you want to use the VCD or DVD dualhead clone (Video) TVout modes on G400 with driver V0.15 and up, or on G450 or G550 with driver V0.14 and up, you can download a simple command-line tool called VideoScreen for now from the tools page on the (open)BeOS Matrox MGA driver site. For driver V0.15 and up you need the updated V6 version of this tool.

Rudolf Cornelissen.

(Page last updated on June 6, 2004)