• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

X1950XT vs Radeon X1900GT Mac Edition

So some time ago I bought a PC X1950XT on the cheap and flashed it with a pre-modified FCode ROM and @joevt and I have been playing with a few PCI to PCI-E adapters and some GFX cards.

My PCI to PCI-E bridge supports 66MHz operation and in the PCI-X slots of my Dual 2GHz G5 the X1950XT preforms really well, much better than the 7800GT also in 66MHz mode.

Tho it was fun, after JoeVT modded the 7800GT ROM for Old World Mac's, to run the 7800GT in a Beige G3 upgraded to a G4.

I have not got my Yikes Lobo up and running yet for tests of these two GPU's in the 66MHz slot of the Yikes!

So the other day I picked up two dead G5 Quads, after repairing one( LCS ) I wanted to run some tests and see how this x1950XT fairs, and it does really well, but I think it has some more in it.

A quick check of the specs 580+ GPU vs 580 GPU shows we could get some more out of it.


The core and VRAM clocks are much higher on the XT as well as 4 additional
ROPs1612
TMUs1612

So we really don't know what the Mac Edition GT was, we'll have to look into that, but I doubt whoever edited the FCode ROM for the XT unmasked the additional ROP's and TMU's if they are masked in the ROM and I also doubt they increased the GPU and VRAM clocks.


One the PC side, the XT will dominate the GT, I bet with a little work we can get the Flashed Mac XT to do the same.
 
Last edited:
If I'm reading the FCode ROM right is does enable 16 Pipes as the Mac Edition card used the 580+ GPU and ATI did not cripple that, but they set the GPU to 575MHz and VRAM to 600MHz.

The PC version I flashed had 625MHz GPU and 900MHz VRAM, so I need to go ahead and edit my FCode ROM for those speeds and test as 33% better VRAM performance should really help this card out.

I think the Mac Edition was a single slot card so the cooling may not have been as good, and they may have used lower spec GDDR3 RAM.
 
Not so fast, I don't think the PC people got this right, they were replacing 19 with 18 at offset 00000070, whereas all the X1950XT PC VBIOSs I see have 32 at this offset.

The Mac Edition has 18 very near this offset, so I'm going to try 32 here for my card and see what happens, wish me luck!
Code:
55AA4000 00000000 00000000 00000000 00000000 00000000 20000000 00000000 50434952 02104072
 00002000 00000003 42000000 01800000 00000000 00000000 F108E504 000083AC 12360000 00000000
 
Also of interest to me is 3f3f form the PC VBIOS

32300000 00000000 3F3F0000

The 32 is what is at offset 00000070 but I think the 3F3F enables something too.

There are Pixel Shaders 48 Vertex Shaders 8 TMUs 16 ROPs 16.

I think the 32 enables the 16 TMUs and 16 ROPs but I think that 3f3f may enable Pixel Shaders and Vertex Shaders, tho that maybe purely a function of the ATI drivers on OS X.

I wonder if there is a LinuxPPC tool that can tell us what is enabled on our ATI cards?
 
ATI Displays 4.5.9 has a bunch of Advanced Settings that all seem to lock up my card and require a reboot, upon reboot none of the Advanced setting I have applied are set.
 
There does not seem to be a Linux utility for reading what the GPU configuration is on ATI GPU's.

It would be nice to know what ROPs, TMUs, and Pixel and Vertex Shaders are enabled?????
 
I toyed around with the ROM a little, and I wasn't paying attention well enough and left out a word of 0's.

Bricked the card as I set the PCI header wrong and atiflash could no longer recognize the card.

Had to pull the old 'w1zzards trick' and short pins 1 and 8 while booting the PC. Got it going again, but my clock values of 625Mhz CPU and 900MHz VRAM are way to much for it, immediate display corruption on boot.

So now I'm wondering if Graphiccelerator 1.3.4 reads and sets the clocks correctly. On the PC there are boot up clocks( 2D ) and performance clocks (3D) for the x1950xt.

I wonder if there is only one set of clocks form the Mac FCode ROM?

Anyway, my clocks are way more than she'll take, even if Graphiccelerator 1.3.4 only sets the 2D clocks.

I'll back the VARM down to 800MHz and see what that does.

Also the 0180 change I made just inside the PCIR header, changed to 0320 just invalidated the FCode ROM and OF never loaded it.

The PC folks said 00000070 was the spot, so we have to find where that is on the Mac ROM to see if there are any masked ROPs or TMUs in there?

00000070 is before the PCIR header in the PC Bios.

The PC ROM's I looked at for the X1950XT had 32 at 00000070.
 

Attachments

Last edited:
With GPU set to 625MHz and VRAM set to 800MHz the corruption went away, but the 3D performance did not go up one bit.

We are using ROM Rev. 109 from the "Read Me"

Known Issues​

The X1900 GT Mac Edition rev 109 ROM is supported by Graphiccelerator, but frequency changes are ineffective. That may be due to a driver lock. That's why this ROM isn't listed in the Supported ROMs section above.

The Show ATI Frequencies feature sometimes displays frequencies divided by ten for X1600 and X1900 cards (60 MHz instead of 600, for example).

So I don't think it's a drive lock at all, for the 109 rom Graphiccelerator changes the 2D clocks and for Radeon X1900 XT OEM, rev 140 it changes the 3D clocks.

There should also be some voltage adjustments for both clocks too.

See if you can have a look at it @joevt, I'm pretty sure that is what is going on there?

As far as I know the Radeon X1900 XT OEM, rev 140 is not out in the wild....

EDIT:Ok Radeon X1900 XT OEM, rev 140 ROM is EFI for Mac Pro's.

So it could be a drive lock, but I doubt it, I think we got some 2D clocks and 3D clocks and no one has ever realized it.
 
Last edited:
You're using the ROM of a Mac X1900 GT on the PC X1950 XT.

Instead of modifying hex, you can get the Forth using DumpPCIRom.sh, modify that, and build the ROM using toke.

Other than that, I don't know anything about setting the clocks or whatever.

I guess the beginning of the Fcode has soft straps that the ATI chip reads directly?
Code:
" "(0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0098 065C 0048 0210 4072 4472 1890 0000)"
2drop

The editable hex begins at offset 0x4C and ends at before offset 0x80 though that can be extended if the X1950 XT has more soft strap bytes than the X1900 GT.
 

Attachments

If the PC BIOS is small enough, then it could be placed on the card with the Mac firmware.

There's a few PC ATI BIOS editors. Maybe find what bytes those modify.
 
If the PC BIOS is small enough, then it could be placed on the card with the Mac firmware.

There's a few PC ATI BIOS editors. Maybe find what bytes those modify.
That's what I thought too, if I could only get wine running on my M2, but it craps out on me without useful errors.
 
I don't know and I haven't looked.
Shouldn't the bytes just be copied from the PC BIOS?
I don't know where the soft straps start and end in the PC VBIOS?

I didn't make the edits to the Mac rom, I found it at MR in one of the many threads on flashing these cards to PPC.
 
Comparing the bytes between Mac and PC in the range [0x4C 0x4A...0x80) shows some commonality in the range [0x70..0x80). I would start with copying those bytes. Then later maybe bytes [0x60..0x70) which are all 0 on the Mac X1900 GT.

Both have zeros for [0x4A..0x50).
[0x50 to 0x60) is zeros on the Mac X1900 GT and text on the PC X1950 XT.
 

Attachments

Comparing the bytes between Mac and PC in the range [0x4C 0x4A...0x80) shows some commonality in the range [0x70..0x80). I would start with copying those bytes. Then later maybe bytes [0x60..0x70) which are all 0 on the Mac X1900 GT.

Both have zeros for [0x4A..0x50).
[0x50 to 0x60) is zeros on the Mac X1900 GT and text on the PC X1950 XT.
Do you think there is a checksum byte like there is for nVidia soft straps, if there is and the strap is not copied complete with the checksum byte, it will just be ignored.

As we have no idea what any of it does, except the device ID 7244, then that is going to be an issue, we won't know what changed, unless that second occurrence of the device ID causes OF to ignore the rest of the ROM?
 
Do you think there is a checksum byte like there is for nVidia soft straps, if there is and the strap is not copied complete with the checksum byte, it will just be ignored.

As we have no idea what any of it does, except the device ID 7244, then that is going to be an issue, we won't know what changed, unless that second occurrence of the device ID causes OF to ignore the rest of the ROM?
I don't know. Do any of the PC ATI utilities modify those bytes?
 
Back
Top