IkMijn pagina voor
prettig werken op de PC
www.pcpret.nl
Homepage Stuur bericht Gastenboek Website Blog Eindhoven

Software development, Special notes on Matrox Marvel G200

Matrox Marvel G200 specific subjects Matrox Marvel related subjects Introduction
In 1998 I bought the Matrox Marvel G200 videocard with break-out box with video in/out connectors. With this videocard I was able to look TV on the computer (by using an external TV tuner). In addition I was able to capture video (and television programs). When Windows evolved it turned out that the video card did not evolve. Matrox Marvel G200 videocard Matrox stopped supporting this videocard. The software in Windows 2000 was hardly usable and in Windows XP the videocard seems to be unsupported. Because the videocard was used on a Windows 98 system, the lack of working drivers was not a real problem. The videocard could even handle 1280x1024 in 16 bits colors, so there was no reason to throw the videocard away. Begin 2005 I saw a break-out box with TV-tuner, and I thought, and than some things became better and some became worse ...

Matrox Marvel G200 and Windows
Windows 98/ME: In Windows 98/ME the latest drivers seems to work but the tuning was not possible. At least I could not find out how to get it working properly. The TV tuner property provided a way to select the input type (cable or antenna) and it also provided a way to select a channel. For antenna the range was 1-69, for cable it was 1-42. But by selecting a channel, only two channels showed a nice picture. The cable channel was also a little bit strange, it only supported the S-channels. Usually, TV-tuners seems to support channel 1-69 also for Cable, but not for this Matrox tuner software. The solution here is to modify the PAL_BG_NTD table in the Windows 98 registry. Remove the old value (do not forget to backup). And than just add the channels that are needed in the prefered order. After that, these channels will show up in the tuner property Window. The broadcast station can be tuned when the channel is marked "in memory". In addition the channel name can be provided. The PAL_BG_NTD table is the table that is used in my country, so for a different country a different table might/must be updated.

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\RainbowRunner\0\TVTFreq]
"Country"="Netherlands"

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\RainbowRunner\0\TVTFreq\TVTCountry]
"Netherlands"="PAL_BG_NTD,BG_DUAL_FM"

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\RainbowRunner\0\TVTFreq\PAL_BG_NTD]

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\RainbowRunner\0\TVTFreq\PAL_BG_NTD\Air]
"MinChannel"=dword:00000002
"MaxChannel"=dword:00000045
"F0"=dword:00000000
"F1"=dword:00000000
"F2"=dword:000735b4
etcera ...

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\RainbowRunner\0\TVTFreq\PAL_BG_NTD\Cable]
"MinChannel"=dword:00000001
"MaxChannel"=dword:00000029
"F0"=dword:00000000
"F1"=dword:00100f54
etcetera ...
Windows 2000: Happily, in Windows 2000, working drivers were provided by Matrox that could control the TV-tuner in the break-out box. However, recording a TV program, was not possible. I had to look for the proper drivers that could also record, the only driver I could find was the w2k_535 driver with 2kvt202e video tools. With trial and error I found out that I could use the input type (cable or antenna) per channel selection. Just fill in the proper channel nummber of frequency, than search for a possible broadcast station, when found, the broadcast station could be added to the list. It would be nice to know where the station names and frequencies are stored, so the installation could be speeded up a bit. It was important to choose input type cable when installing the Windows 2000 software. Than it is possible to add new broadcast stations using input type antenna (VHF/UHF) in the meaning of Matrox. For now, I must be glad that the software just works.
January 2005, I came across Murc, widescreen and Marvel drivers and WinXP SP2. I found out that other drivers might exist and might work with the Matrox Marvel G200. On the Matrox forum the same was told, only the link to the site did not work. So I downloaded the software that seems to be modified a little bit and seems to be meant for the Matrox Marvel G400 but seems to work also for the Matrox Marvel G200. I have my doubts if the software was really used for the Matrox Marvel G200. Why? The G200.inf is not able to recognize the card. I added two lines:
[Mfg.Matrox]
%Str08%%ENG%=IN00.ENG,PCI\VEN_102B&DEV_0521&SUBSYS_FF04102B

[Strings]
Str08="Matrox Marvel G200"
Because of previous experiments, I knew how to modify the the inf file, and I hoped the drivers could be installed. And of course I hoped the drivers works better that the previous versions. This seems to be true, I tested this driver only on Windows 2000 yet. Recording works! Finally I found out that the channel names, order and the channel numbers are stored in the Windows 2000 registry at:
[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\PC-VCR\TV\Channels]

[HKEY_LOCAL_MACHINE\SOFTWARE\Matrox\PC-VCR\TV\Channels\Channel 43]
"Locked"=hex:00,00,00,00
"Favorite"=hex:00,00,00,00
"In Memory"=hex:01,00,00,00
"Name"="Nederland1"
"Order"=hex:00,00,00,00
"Program"=hex:01,00,00,00

The driver structure seems to be unchanged. So no information available how to control this TV-tuner with these drivers. It seems that qcap.dll and rrvcap32.dll are important for the capturing. With the Delphi tool TDUMP.EXE I could get some insight information on the DLL's. Not enough to continue coding, maybe enough to find new information.
Everything works fine? Well, sometimes the BSOD with error Process_has_locked_pages shows up when the program terminates.

Windows XP: Matrox Marvel G200 break-out box from the inside Interesting was that the Matrox Marvel G200 was recognized by Windows XP (SP2), the capture drivers seems to be available. Capturing via composite and S-Video works correctly. The TV tuner picture did not work (properly).

Hardware in the Matrox Marvel G200
The break-out box with TV tuner contains a Philips FI1216MF MK2 TV-tuner. There is also a MSP 3415D-PS-A1 sound processor from Micronas in the box. This processor controls the audio switching, volume, tone correction and most important, it can control TV stereo sound (something I did not know before). The TV-tuner as well as the sound processor supports NICAM. The AGP videocard contains the capture hardware and the Zoran MJPEG chip. The hardware seems to be similar to the Matrox Milennium G200 with the Rainbowrunner TV-card.
The first idea was that the FI1216MF MK2 TV-tuner was similar to the FI1216MK2 TV-tuner. Well never think that way, see in a next chapter for more information. To know what is under the hood, documentation needs to be studied. Sometimes this is something you have yourself, sometimes it can be found in the library, but most of the time internet will be the source. Thank to Sourceforge I could get the pdf documents that document the hardware mentioned. Found at Unofficial homepage for Matrox Marvel/Rainbow Runner G-Series for Linux stuff. Sometimes I have to look forward, maybe the MJPEG Tools page might become interesting. The same for Noomore, might be interesting. Here the pin lay-out of the 26 pins connector can be found. Some pins are missing, this means there is a line for the power supply unknown, also the I2C (SDA, SCL) lines are missing ... So, look on the internet, sometimes information is hidden between the lines. I decided to look on the former Matrox forum (http://forum.matrox.com/mga), and I noticed that interesting information was available: Information on connector pin-outs.

Software development with the Matrox Marvel G200
Because of my experiments with DirectX and DirectShow, this videocard was also tested with the new software as described in FM radio and TV tuners in Windows. First time, the software did not work at all, happily there was graphedt. I found out that Matrox was using a special capture driver that could control the TV tuner, the color settings and the recording settings. Only in Windows XP, the filter structure seems to be more common: tv-tuner, tv-audio and a capture filter. By testing I found out that my software and the Matrox drivers were not very stable (or the Windows ME was very unstable ...).
By adding some program settings, such as use Preview pin always for preview, connect related audio pins, turn of the WST functionality, I got (more or less) access to the videocard. In Windows 98 and 2000 no TV-tuner was found, because the tuner filter did not exist. But the real concern was, there was no solution in tuning the TV-tuner by using my program. No information was available how to control the property. When a tuner filter would exist, tuning by frequency and channel should be possible (at least that was what I thought).
In Windows XP the TV tuner filter was found, but than the software did not respond. It seems that not all WDM functionality has been implemented for whatever reason. Tuning by channel did not work, tuning by frequency seems to work. However, the picture is very vague, b/w and there was no sound. It just looked like a wrong tuner setting. Maybe the internal band selection is just wrong. Why, that is because the picture looks so noisy. Furthermore the TV-tuner looks like a Philips TV-tuner, from the FI1216 serie. For such TV-tuner the VHS low, VHS high or UHF band, needs to be explicit selected. Additional investigation showed me that the KSPROPERTY_TUNER functionality has been implemented partly. The KSPROPERTY_TUNER_FREQUENCY, KSPROPERTY_TUNER_MODE_CAPS are supported, the KSPROPERTY_TUNER_STANDARD seems to be not supported. And that one is important because the tuner must be in PAL setting and the frequency range (55,25 MHz till 801,25 MHz) and the color scheme points to NTSC.
Connecting the TV tuner to I2C (external via RS232, see here for more information, the TV tuner can be tuned and it is possible to get audible sound at pin 25. However still no video at pin 23.

For at least the Matrox Marvel G200 TV/videocard, the channel number selection will be unusable as it is now. Mainly because there are differences in behavior per Windows version (XP, 2000 and 98/ME) compared with the other TV-cards. In general the tuning via channel selection does not work. Than the meaning of the channels seems to be different. There is a property Windows, but that one is not tv tuner specific. Selection manually is possible, but finetuning seems to be not possible (yet?).

Investigations on the Matrox Marvel G200
I decided to use my 5 year old dusty RS232-I2C interface (see here for more information. The TV-tuner looked very similar to the Philips FI1216MK2 tuner, and I assumed it had the same pin layout. That was correct, after some soldering, I made a backdoor I2C interface to this TV-tuner. With some more modifications, it could now also be used as external TV-tuner ... I modified my Delphi Teletext read program a little bit, to find out if the I2C hardware could be found. The Delhi program differs from the C# project, in two ways: The Delphi program use the bit banging I2C protocol to communicate with the (external) I2C hardware, while in the C# project the Windows API and DirectX functionality is used to control the (internal) hardware. Furthermore the Delphi program can handle teletext from the SAA524x compatible CCT procesors.
G200 marvel break-out box under investigation It turned out that the Philips TV tuner is I2C controlled via I2C addres C6, this means that the voltage at pin 15 is higher than 0,9V (I could have measured this ...). The MSP3415D sound processor was found at I2C address 80. The Delphi program did not work right away. My idea was that the sound processor might have an important feature. After figuring out how to control the MSP sound processor, I got sound! But still no picture ... I assumed that the FI1216MK2 pdf, that I had, was good enough. That was a wrong assumption. I start to look for a specific pdf for the FI1216MF MK2 TV-tuner. And I found one at Sourceforge, and than I found the solution: the MF type TV-tuner could handle more CCIR formats ...
Because the pin layout of the 26 pins connector was known (see the next chapter), I was able to connect an old TV tuner, a Philips FI916E, to the break-out box (without TV-tuner). That TV tuner is accepted as valid TV tuner. I expected that, because it is a pre-decessor of the FI1216 serie. Probably every piece of hardware with the TSA5511 (or compatible) will do the same because that is the I2C PLL device that controls the frequency tuning. Of course the sound part (MSP3415) is missing, so stereo sound is not possible. The sound is connected to the normal audio put, but the level is too low, just above the normal noise. An audio ampilfier needs to be added, I decided to add a two channel IF circuit using TBA120T chips. Now I get the proper sound levels. The required 33V tuning voltage was not available, so first I used the 12V for tuning. Happily most of the broadcast stations could be tuned, till about channel 46 (52 did not work). The small print just below the TV-tuner (see the picture), is a switching power supply to get the real 33 Volts out of 12V. It is a simple circuit using a 555, a coil and two transistors. That circuit I made when I knew the TV-tuner works. I tested the configuration on Windows 98, 2000 and XP. In Windows 98 and 2000 tuning works fine in color. In Windows XP however, the picture showed black and white colors, probably due to the forced NTSC setting that can not be changed (yet). Is probably something in the ks0127 chip. In Windows XP I could not get a picture (without crash) via the composite video input, maybe some more things changed. Additional investigation is needed.

Break-out box cable, pin layout
26 pins break-out box cable socket (front) 26 pins break-out box cable plug (front) Some information about the break-out box could already be found at Matrox Marvel stuff on Noomore. That information showed six missing pins and the information I am looking for were the I2C connection and the power supply. After some trial and error with a break-out (without TV tuner), I can complete the Break-out box table:
HD 26p D-Con female (to the break-out box) HD 26p D-Con male (to the videocard) Break-out box function
1 9 S-Video pin 3, in luminance
2 8 TV tuner video
3 7 Composite video in
4 6 S-Video pin 4, in chrominance
5 -> Audio out R, jack 3,5mm (ring)   Audio out right
6 -> Audio out L, jack 3,5mm (tip)   Audio out left
7 21 I2C SCL
8 19 I2C SDA
9 26 SPDIF out
10 10 GND
11 11 GND
12 12 GND
13 13 GND
14 14 GND
15 15 GND
16 22 +12V (seems to be 11,5V)
17 17 GND
18 18 GND
19 <- Audio in R, jack 3,5mm (ring)   Audio in right
20  20 GND
21 <- Audio in L, jack 3,5mm (tip)   Audio in left
22 5 S-Video pin 6, out Blue? (not checked)
23 3 S-Video pin 5, out RGBen? (not checked)
24 2 S-Video pin 4, out chrominance (Red?, not checked)
25 1 S-Video pin 3, out luminance (Green?, not checked)
26 4 Composite video out
  16 -> GND  
  20 -> GND  
  23 -> GND  
  24 -> GND  
  25 -> GND  
Shield Shield GND
7 pins S-video socket, Matrox break-out box The pin layout of the S-Video socket and plug might be confusing. I noticed that on internet there are several descriptions with different numbering. For this break-out box it is not really different. This view shows the frontside (female) of the socket. The numbering in this figure is also used in the table (additional testing needed).

Interesting links
Interesting links, well: The Code Project, here you can find a lot of code examples; Murc, widescreen, contains interesting topics pertaining to the Matrox Marvel G200 videocard; Not to forget the forum of the supplier Matrox forum (link seems to be out of date, or forum has gone); Matrox Marvel G400 drivers might provide interesting information for the Matrox Marvel G200; Latest Matrox drivers; Microsoft MSDN, here you can find a lot of information of how Windows can control the TV tuner hardware.

Back to the beginning? Click here.


Back to the Software Development page,
the Homepage or the Hobby activities page.


Contact me? Go back to/look at the Software Development page.
Date: february 5, 2007