## Unified NeoMagic MagicGraph/MagicMedia 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!

Note please:
This driver is still alpha quality. 2D acceleration is still lacking for some cards, overlay does not work correctly yet on MagicMedia cards and there may be additional trouble. While you are encouraged to test and use the driver (if it works at all for you then it will probably be stable as well), don't delete the old one(s) just yet!

## Supported cards:

- MagicGraph 128 (NM2070)
- MagicGraph 128V (NM2090)
- MagicGraph 128ZV (NM2093)
- MagicGraph 128ZV+ (NM2097)
- MagicGraph 128XD (NM2160)
- MagicMedia 256AV (NM2200)
- MagicMedia 256AV+ (NM2230)
- MagicMedia 256ZX (NM2360)
- MagicMedia 256XL+ (NM2380)

## Features:

- Hardware cursor support;
- Full BWindowScreen support (used for hardware pageflipping, scrolling/panning and acceleration in applications/games);
- B_YCbCr422 hardware overlay support (except on MagicGraph 128, so NM2070 cards);
- DPMS support for both panels and external displays;
- Full 2D acceleration for NM2070, NM2097 and NM2160 (current CVS version and up).

Known limitations:

- If the driver does not load make sure you enabled 'assign IRQ to VGA card' in your system BIOS;
- NeoMagic cards do not support overlay downscaling. You won't be able to select for instance 50% scaled output, nor will you be able to resize the video output window below 100% by dragging.
  (In Windows downscaling works: this is done by scaling down the overlay input bitmaps in the application software: so this is a 'trick' solution not done by the driver!)
- Stretching modes for the laptop display panel will not be setup because in stretched modes no hardcursor is supported, and overlay output requires tweaking to get going;
- If your laptop doesn't work with the driver (distorted/black screen), make sure you disabled LCD stretching/zooming or whatever it's called in the system BIOS;
- Apparantly it's not possible to boot into modes with a resolution above 800x600 pixels on some cards. If you encounter this please report it, and only use higher resolution modes on other workspaces for now.
- The keyboard 'shortcut key' for changing output devices bypasses the graphics driver and directly uses the cardBIOS. Sometimes using this key will have undesired results. Please use with care! Or better yet: just preset the output device(s) you want in the system BIOS (if possible). If you are going to use that shortcut key anyway: then make sure you switch workspaces between spaces with different settings after using it, so the driver updates the card programming again (so it gets in sync with the card again);
- Overlay is not yet working correctly on NM2200 and later cards: if you have such a card and want to help by testing stuff, let me know!
- On NM2070 panel centering only works vertically: horizontal centering-related info is missing.

## 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 NeoMagic MagicGraph/MagicMedia 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 nm.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 nm.accelerant file in home/config/add-ons/accelerants/
Delete the nm.driver file in home/config/add-ons/kernel/drivers/bin/
Delete the nm.settings file in home/config/settings/kernel/drivers/
Delete the nm.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nm.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 NeoMagic MagicGraph/MagicMedia graphics driver. It might spare you some trouble afterwards..

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

- memory: (disabled by default)
  This option enables you to override the 'memory amount autodetection' of the driver. The driver does not need this because it's well known how much RAM every specific card contains, but you could limit 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 only of interest to developers. Specify the RAM amount in Kb (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, 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 nm.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 nm.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 nm.rom in your ~ (home) folder.

Rudolf Cornelissen.

(Page last updated on June 6, 2004)