Attempts to get both monitor outputs on a PC-based NVIDIA GeForce2 MX twinview card working on a Mac

This project started when our lab at my University purchased a bunch of GeForce2 MX cards for our virtual reality setup.These are cards manufactured by a Taiwanese outfit called PowerColor, part number CMX2DV. These cards are GeForce2 MX 32MB twinview cards, with two VGA outputs, and an S-video output that can take the place of the second VGA.

I had heard stories that Apple was selling twinview cards that enabled both displays on the new QuickSilver G4 macs so I decided to see whether these cards would work with my Mac, a G4/350 AGP graphics (i.e. pre-gigabit ethernet sawtooth motherboard), with a Rage128 Pro/AGP in the AGP slot and a Rage Orion (a Rage128 board) in the PCI slot. So as you can see, I already have a dual-monitor setup, but in terms of running speedy OpenGL across two displays (such as I want to do to drive our lab's VR headset) two displays driven from the same card would be an improvement.

Current status: 14 July 2004– I received a message from Guillaume Thomas-Collignon today "I took your 1075 twinview ROM, 3.12 flasher, and I flashed a Inno3D GeforceMX400 64MB twinview card. It works perfectly, and the twinview is active if both monitors are connected during the boot. I have a G4 400 AGP (no gigabit) with a 1.4GHz CPU upgrade, running 10.3.4." So there you have it, once succesful report at least!

Current status: 13 Oct 2002– I hadn't looked at this stuff in a while as my GeForce has been working adequately enough on one output for a year. However, I thought I'd note something I received from Chris Hamma (hi Chris!) who had done some disassembling of the G4 QuickSilver 4.2.3 firmware and the G4 4.2.8 firmware to see if he could figure out why the twinview cards worked ok in the QuickSilvers but not in older G4s. Chris discovered that the 4.2.8 firmware is substantially different from the 4.2.3 firmware, and that the Mac GeForce 2MX driver disables some features if it detects certain firmware versions. Why, I have no idea, but there you go. I suppose that with the advent of GeForce 4 cards for the Mac this whole thing is becoming a bit dated. Oh well.

Previous status: 24 Oct 2001– After upgrading my G4 firmware to v4.2.8, still only success with one monitor, no twinview. I need to know if ANYONE has succesfully enabled both outputs on a PC based twinview card in a Mac. Email me if you have.

Previous status: 5 Oct 2001– Success with one monitor, no twinview. Speculated that firmware >v4.1.9 needed.

1. Testing out of the box

Testing out of the box with MacOS 9.2.1

I ran the MacOS 9.2.1 installer first, and installed the NVIDIA extensions from a custom install. These appear to be the version 2.3 extensions Then I shut down, swapped out the Rage128 Pro for the GeForce and rebooted. The first surprise was that the machine booted in MacOS 9.2.1 with the card right out of the box. I am unsure as to whether this is because the card has a Mac ROM on it, or because G4 firmware 4.1.8 apparently includes version a GeForce2 ROM version 1027F. However I was disappointed to see that the second display connected to the GeForce remained inactive. Apple System Profile reported, card name "NVDA, NVMac", card model "NVIDIA GeForce2 MX", ROM version 1028F, card revision 161, VRAM size 32MB, card vendor ID 106E. I ran the "renderer info" tool from the OpenGL 1.2 SDK, and it reported a hardware accelerated renderer for the NVIDIA card, with renderer ID 0x280000. Note that the NVIDIA drivers happily coexist with the ATI drivers for the Rage Orion.

Testing out of the box with MacOS X 10.0.4

I also tested the card at this stage with MacOS X 10.0.4, and it ran fine. However, the OpenGL info from the Developer Tools reported no hardware accelerated OpenGL. What a shitter eh. (Just to recap, this is with the original 1028F ROM on the GeForce2 MX.)

2. Flashing the card with 1075 firmware

Attempts to flash the card on the Mac

Nevermind, in MacOS 9.2.1 so far so good! Next I read the xlr8 bbs and reports seemd to indicate that the Apple twinview card had ROM version 1075. So I obtained a hacked Apple NVIDIA ROM flasher with the 1075 ROM embedded and tried to run it using an Applescript included with the ROM image. No dice, the Apple flasher just hung and had to be force quitted. So I rewrote the Applescript to improve the error handling. Still no dice, the Applescript reports a generic error (4200) from the flasher. Damn. At this stage I accept I am going to have to use NVIDIA's flasher utility on a PC. This is probably a good idea anyway since I could then save the original ROM on the card in case it all went belly-up (although would be less of a problem for me than some other people, since we have 5 of these cards in our lab.)

Success flashing the card on a PC

Flashing the card on a PC proved a little complicated. With a bit of stuffing around I obtained a Win98 boot disk image with the NVIDIA flasher on it, and managed to get access to a PC with an AGP slot, and a PCI graphics card. I slipped the GeForce card into the PC too. I set the PC BIOS to use the PCI graphics board (although this was actually unnecessary, since the BIOS already preferred the PCI card. (Apparently you can do the update with only the GeForce in the PC's AGP slot, but you have to know what to type blind – only for the brave.) Then I booted off the floppy, and ran the updater. v3.16 of the NVIDIA util did not work. It would only write part of the ROM image. So I used version 3.12 of the util with the -m command line switch for Mac compatible (Fcode) mode and this worked. Hooray!

3. Testing with the new 1075 ROM

Testing with Mac OS 9.2.1

So I now have a 1075 ROM image card. I reassmble the PC, reassemble the Mac with the GeForce board in there, and reboot in MacOS 9.2.1. Boot goes fine, only the second display still remains dark. Damn! The Apple System Profiler reports:

which is all cool, but still no twinview. "renderer info" reported hardware accelerated OpenGL as before.

Testing with Mac OS X 10.0.4, 10.1

I never got a chance to test with Mac OS X 10.0.4, but reports from other people are that GeForce2 MX cards with ROM version 1075 do not boot in MacOS X 10.0.4. I did however test with Mac OS X 10.1. One output on the card works fine (still no twinview though). OpenGL Info reports a hardware accelerated driver for the card, coolio. I suppose there is an updated driver in Mac OS X 10.1.

4. Still no twinview, where to from here?

Given that other people supposedly have both outputs from PC twinview cards working in a Mac, what is required? Well, initially I and thers speculated that we needed an updated G4 firmware, since the QuickSilver G4s (the first model that Apple offered the Twinview card in) have newer firmware, version 4.2.3 or greater.

However, with the general release of firmware v4.2.8, I upgraded and tried the card again. Still no dice. So, perhaps there is some other issue with the G4 (AGP graphics) motherboard, or perhaps OF v4.2.8 doesn't allow use of the twinview on pre-QuickSilver G4s, or perhaps it is an issue specifically with this card.

So if you have any relevant information, please pass it on to me.


8. Important files and links:

These are files and bits and pieces I used, in order of appearance
AENV flasher runner.sit The Applescript needed to run the hacked AENV flasher, and updated by me to include better error handling.
AENV MacFlash [1075-Twin].sit AENV flasher, hacked to include GeForce2 MX twinview Mac driver version 1075
AENV MacFlash [1055-MRS].sit AENV flasher, hacked to include earlier GeForce2 MX Mac driver version 1055
AENV MacFlash [1049-MRS].sit AENV flasher, hacked to include earlier GeForce2 MX Mac driver version 1049
NVR1075.ROM ROM image for GeForce2 MX twinview Mac driver version 1075 (for use with PC flasher)
NVR1055.ROM ROM image for earlier GeForce2 MX Mac driver version 1055 (for use with PC flasher)
NVR1028F.ROM ROM image (extracted from my GeForce2 MX PC driver version 1028F) (for use with PC flasher)
NVFLASH.EXE Version 3.12 of the PC DOS NVIDIA flasher utility
vidflash.imz Compressed winimage PC floppy image with Win98 boot files and the above 4 files
Renderer Info.sit The renderer info utility (MacOS 9) from the OpenGL 1.2 SDK WinImage, in case you need it for the PC A page that helped me. Another page that helped me. A nice page (in French) with reports.