Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
Not open for further replies.
I'm seeing different sizes, for example, I have the MSI GTX 1070 MVC ROM and that one is 273 KB, whereas the one posted is only 217 KB.

Not that it is that interesting anymore, considering Mojave has no support for the most recent NVIDIA graphic cards.
 
Last edited:
I am releasing to the public GT 640 p/n 02G-P4-2645-KR EFI rom modified by MacVidCards. As for the reasons why am I doing this please read MacVidCards Radio Silence
You will have to program a blank GD GD25Q20 2.7-3.6V 2048Kx1S chip with SPI programmer. For this you will need to replace the original chip of the card with the new one as NVFLASH will not reprogram your existing chip.
The Firmware image PCI Device ID is: 0FC0
and the
subsystem ID is 3842.2643.
I am encouraging everyone who had negative experience with MacVidcards to dump their EFI roms to this thread for public benefits.

Edit:
Added GTX 770, 780, 950, 960, 980, 1060, 1070

dosdude1's website contains nvidia 1080-11gbps rom. Nearly all modern nvidia efi roms are here. This thread should be sticky.

I wish Vega's could show bootscreen or Rtx have drivers.
 
  • Like
Reactions: zipgs
I'm seeing different sizes, for example, I have the MSI GTX 1070 MVC ROM and that one is 273 KB, whereas the one posted is only 217 KB.

Not that it is that interesting anymore, considering Mojave has no support for the most recent NVIDIA graphic cards.
It depends it might be newer or different part number. Do you mind sharing yours here?
 
Thanks for the shared roms! Can they be smoothly programmed with Nvflash, or do you need to program the EPROM?

Can't confirm for every rom but the 970 one is programmable through NVFlash, flashing the other roms should work. Just keep in mind that there is always a risk of something going wrong.

Going to test the 980 rom now!
 
if people do know, please note down the exact part number and details of the Card your ROM came from :)

because if someone has a Mac Pro ROM for a non reference card, someone with a reference card could have a bad time etc
 
  • Like
Reactions: zipgs
Okay I downloaded the 980 Mac Rom from OP's archive, I had to trim the rom so it could fit onto the eeprom. I then flashed it to the Asus GTX 980 STRIX that sits in my gaming pc.

It works! - I will be doing more testing to make sure that every output functions with bootscreen but so far it seems to be good.

ozgmQWu.jpg

nLNlcC3.jpg



Of course this is going to be temporary for me, I just wanted to help out and verify compatibility as much as I can.
 
Okay I downloaded the 980 Mac Rom from OP's archive, I had to trim the rom so it could fit onto the eeprom. I then flashed it to the Asus GTX 980 STRIX that sits in my gaming pc.

It works! - I will be doing more testing to make sure that every output functions with bootscreen but so far it seems to be good.

ozgmQWu.jpg

nLNlcC3.jpg



Of course this is going to be temporary for me, I just wanted to help out and verify compatibility as much as I can.
So was the ROM with the same device ID as your card? How did you trim it, what did you cut? How did you flash it in case it was different device ID?
 
  • Like
Reactions: HaypurTiryading
So was the ROM with the same device ID as your card? How did you trim it, what did you cut? How did you flash it in case it was different device ID?

I opened the rom in a hex editor and removed all the zeroes at the end of the file leaving me with a 162KB rom

After that I was able to flash it with NVFlash 5.557.0 by running
Code:
nvflash.exe -6 980.rom

There was a PCI board ID mismatch but using -6 I was able to proceed with the flash.
 
I opened the rom in a hex editor and removed all the zeroes at the end of the file leaving me with a 162KB rom

After that I was able to flash it with NVFlash 5.557.0 by running
Code:
nvflash.exe -6 980.rom

There was a PCI board ID mismatch but using -6 I was able to proceed with the flash.

Isn't it broke checksums or internal checks? Are rom editors work well after trim?
 
alright managed to flash my GeForce GT 740 with NVFLASH 5.164

which still has the -4 -5 -6 -j flags which let your Force flash pretty much any ROM onto a card

(a useful one from the PowerPC Flashing days :) )

sadly while the GT 640 ROM does not brick my GT 740, i dont get boot screens and OS X treats it as an unflashed GT 740

I suspect this because of the hardware device ID straps on my GT 740 (sadly im not sure how to edit the device ID of a Kepler VBIOS)

however going by these results, id say if I had an actual EVGA GT 640 the ROM would probably work nicely, and not require any EEPROM soldering :) (Assuming the GT 640 has a large enough EEPROM, which if it supports UEFI it should)
 
  • Like
Reactions: zipgs
alright managed to flash my GeForce GT 740 with NVFLASH 5.164

which still has the -4 -5 -6 -j flags which let your Force flash pretty much any ROM onto a card

(a useful one from the PowerPC Flashing days :) )

sadly while the GT 640 ROM does not brick my GT 740, i dont get boot screens and OS X treats it as an unflashed GT 740

I suspect this because of the hardware device ID straps on my GT 740 (sadly im not sure how to edit the device ID of a Kepler VBIOS)

however going by these results, id say if I had an actual EVGA GT 640 the ROM would probably work nicely, and not require any EEPROM soldering :)
Did you do a comparison of the ROM on the card and the BIOS you used for flashing? Those old versions are funky. They don't throw an error but if you compare both bioses they show difference (in the ID at least)
 
Did you do a comparison of the ROM on the card and the BIOS you used for flashing? Those old versions are funky. They don't throw an error but if you compare both bioses they show difference (in the ID at least)

umm I didn't, dump the ROM again after flashing and compering, but I did try flash again

where NVFLASH showed the ROM had indeed been flashed onto the card

but it still complained about the device ID miss match of course (the Device ID is set by hardware straps, which you can sometimes override in ROM and sometimes you cant, sadly in this case it seems like i cant)

(I see in the zip file of ROMs theres another GT 640 ROM, which ill try at some point for giggles)

but I also see theres EFI32 9500 GT ROM, quite happy about that as I can finally flash my 9500 GT for use in my MacPro1,1 and Xserve1,1 which will be very handy :)

although my 9500 GT is a 512MB GDDR3 card and I think the ROM is for a 1GB DDR2 card if the pictures are anything to by, so it will be interesting to see how that goes
 
Last edited:
umm I didn't, dump the ROM again after flashing and compering, but I did try flash again

where NVFLASH showed the ROM had indeed been flashed onto the card

but it still complained about the device ID miss match of course (the Device ID is set by hardware straps, which you can sometimes override in ROM and sometimes you cant, sadly in this case it seems like i cant)

(I see in the zip file of ROMs theres another GT 640 ROM, which ill try at some point for giggles)

but I also see theres EFI32 9500 GT ROM, quite happy about that as I can finally flash my 9500 GT for use in my MacPro1,1 and Xserve1,1 which will be very handy :)

although my 9500 GT is a 512MB GDDR3 card and I think the ROM is for a 1GB DDR2 card if the pictures are anything to by, so it will be interesting to see how that goes
I don't think the device ID is hardware encoded here is why:
I got 2 identical part numbers with the same ROM part number on the label yet somehow the flasher changed the device ID on the UGA flashed card. I got the same error as you do and same result. This is what is preventing it from flashing. Once you flashed it compare the internal ROM to the UGA ROM ( no need to extract it there is a command in NVFlash to compare). You will see the difference.
 
  • Like
Reactions: LightBulbFun
sadly? in my case everything does match up, sadly the ROM wont work because of my GT 740s hard coded Device ID, I wonder if anyone has a GT 740 Mac ROM or knows how to edit a Kepler VBIOS's device ID? :)

Image from iOS (86).jpg


the actual legacy VBIOS does not care about the device ID, but it seems like the UEFI or in this case the UGA EFI portion of the Video ROM does care hence why I get no boot screens etc (note that the VBIOS version did change to match the GT 640 ROM, but the device ID did not)

Screenshot 2019-04-26 at 14.26.25.png
 
sadly? in my case everything does match up, sadly the ROM wont work because of my GT 740s hard coded Device ID, I wonder if anyone has a GT 740 Mac ROM or knows how to edit a Kepler VBIOS's device ID? :)

View attachment 833926

the actual legacy VBIOS does not care about the device ID, but it seems like the UEFI or in this case the UGA EFI portion of the Video ROM does care hence why I get no boot screens etc (note that the VBIOS version did change to match the GT 640 ROM, but the device ID did not)

View attachment 833927
SPI flash will reveal where is the device ID stored. In my case the same part number can't have different device ID so if an external flash can't change that ,the board has been physically modified by the flasher.
 
SPI flash will reveal where is the device ID stored. In my case the same part number can't have different device ID so if an external flash can't change that ,the board has been physically modified by the flasher.

yeah Im trawling though the ROMs atm seeing if its feasible to edit the GT 640 Mac ROM with the 740s device ID :)
[doublepost=1556292449][/doublepost]nope that did not work, just produced a brick LOL

(the device ID is in 2 locations endian swapped, which I replaced with the 740s device ID, also endian swapped which NVFLASH was happy with, it no longer complained about a device ID miss match, but sadly does not work, probably some checksum somewhere that would need fixing)
 
yeah Im trawling though the ROMs atm seeing if its feasible to edit the GT 640 Mac ROM with the 740s device ID :)
[doublepost=1556292449][/doublepost]nope that did not work, just produced a brick LOL

(the device ID is in 2 locations endian swapped, which I replaced with the 740s device ID, also endian swapped which NVFLASH was happy with, it no longer complained about a device ID miss match, but sadly does not work, probably some checksum somewhere that would need fixing)
Well this just proves that the external SPI flash will work. Apparently it is not easy to modify the ROM and NVFLASH can't change the ID. There is probably a checksum error as you said.
 
Well this just proves that the external SPI flash will work. Apparently it is not easy to modify the ROM and NVFLASH can't change the ID. There is probably a checksum error as you said.

did you flash a GT 740 yourself with the GT 640 ROM?

because I dont see how my results proves or disproves that flashing with an external SPI programmer is whats needed, it just proves that the GT 640 ROM wont work on a stock GT 740

as I showed I did a compare, and the ROM on the card matched the GT 640 ROM, so NVFLASH was flashing it properly without modifying it, but as noted it did not work

(probably because of the Device ID hardware straps which you can read about here https://www.eevblog.com/forum/chat/hacking-nvidia-cards-into-their-professional-counterparts/ )
[doublepost=1556295280][/doublepost]quick post: curiously enough when I put the GT 740 into another PC to recover it from the brick, it actually produced a display, sadly still does not give boot screens
 
"someone on the nVidia forums discovered that the GeForce 4xx something can be turned into its higher end card by changing the hardware strap values by means of an undocumented override in the EEPROM"
Which means the hardware strap is in the EEPROM. So if you erase and flash the UGA ROM with the SPI programmer this will work. Apparently rominator has found a way to modify the hardware strap in the ROM. NVFLASH can't do that, but SPI should be able to. I am overseas now so I can't do any testing.
 
the hardware straps themselves are resistors on the PCB theres no way software can physically change those,

"They were quick to disable this by changing the drivers to look at only the hardware straps for the PCI ID."

the question lies in, how does MVCs UGA ROM work, it depends if it cares about the hardware straps or does not care about the hardware straps

when im setup for soldering again, ill pull the EEPROM off and manually program it just on the off chance there is something weird going on with NVFLASH in my specific case, but as mentioned the hardware straps themselves are resistors on the PCB which is worth noting for future experimentation

(because if there is something crucial that does look directly at those straps, the only way deal with that would be to solder in new resistor values etc to change the straps)

but this is getting quite technical and pretty much only relevant for my specific situation where im trying to flash a ROM for a GT 640 onto a GT 740

so to clarify to anyone who is getting a bit confused I still believe that you can flash PC NVIDIA GPUs with MVC ROMs using NVFLASH as long as the card matches the ROM (ie GTX 980 card and GTX 980 ROM) as someone did above with their GTX 980 :)
 
  • Like
Reactions: zipgs
the hardware straps themselves are resistors on the PCB theres no way software can physically change those,

"They were quick to disable this by changing the drivers to look at only the hardware straps for the PCI ID."

the question lies in, how does MVCs UGA ROM work, it depends if it cares about the hardware straps or does not care about the hardware straps

when im setup for soldering again, ill pull the EEPROM off and manually program it just on the off chance there is something weird going on with NVFLASH in my specific case, but as mentioned the hardware straps themselves are resistors on the PCB which is worth noting for future experimentation

(because if there is something crucial that does look directly at those straps, the only way deal with that would be to solder in new resistor values etc to change the straps)

but this is getting quite technical and pretty much only relevant for my specific situation where im trying to flash a ROM for a GT 640 onto a GT 740

so to clarify to anyone who is getting a bit confused I still believe that you can flash PC NVIDIA GPUs with MVC ROMs using NVFLASH as long as the card matches the ROM (ie GTX 980 card and GTX 980 ROM) as someone did above with their GTX 980 :)
Well as I said I have 2 absolutely identical cards but the device ID is reported different. If the straps are resistor values then the resistor(s) has been modified. And this makes sense for the flasher as a way to prevent copying (along with inflation of the bios with 0's and replacing the chip with a bigger one ;))
 
just to make sure we are on the same page

im talking about the PCI Device ID :)

Video cards also have Board IDs and Vendor IDs which NVFlash etc will also complain about if there different, however different Board IDs and vendor IDs are less important then the Device ID

(however Modern NVFlash will not flash a ROM to a card if the Board IDs are different even if the cards are the same model and have the same Device ID)
 
Status
Not open for further replies.
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.