Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
The Twin Frozer will perfectly work w/ all ports, if all IDs in framebuffer and card will match.

You can simply check this on your own, by comparing output of redsock_bios_decoder and radeon_bios_decode w/ your rom and a working rom from any mac-7970/7950.

A Radeon R9 280X Vapour X will only partially work with any framebuffer, because there is no matching port-layout.
 
The Twin Frozer will perfectly work w/ all ports, if all IDs in framebuffer and card will match.

You can simply check this on your own, by comparing output of redsock_bios_decoder and radeon_bios_decode w/ your rom and a working rom from any mac-7970/7950.

A Radeon R9 280X Vapour X will only partially work with any framebuffer, because there is no matching port-layout.
Hi Borowski. I agree with this. You very kindly directed me to use Opencore as i had the vapour X card. As the twin frozr is reference then Frozen will not need opencore and the Rom i posted should do the job for him.
However, it is worth noting that getting boot screens is only a small part of Opencores capabilities. As always , thanks for all your help Borowski, you are a true gent.
 
Sorry Frozen UK, I had a powercut halfway through replying to you. If you send me your original Rom I will happily create one for you. I cannot guarantee that you will have all outputs, for example, I have a Sapphire Radeon r9 280X vapour X ( the same card as HD7970 just rebranded) and could only get one display port and one DVI port to output a signal (no HDMI or second DVI). This is why I left the card with a stock rom and used Opencore which gives me the bootscreens and also lets me get regular updates using the native mac updater ( even offering me Monterey on a mac pro 5.1). would really recommend opencore . My guide shows you how to do it and it is not too difficult. Up to you my friend. I will help where i can.

P.S if your card has 1 DVI, 1 HDMI and 2 display ports then it is a reference card. Try the attached rom and let me know how you get on.
Hiya,

not to worry now as i have sorted it! :)

took me a few days, but got there and understand it a bit more now :)

I backed up one of the PC bios ROMS from this dual bios card and followed all the instructions on flashing as in NETKAS but was always coming up with errors in the script.

The FINAL tryout was to install an older OSX on my mac and run the script there since I know i was flashing right on my other PC through DOS.

I also tried out a few factory BIOS uploads on techpowerup website for my card which let be to believe not all cards are the same even if they are the same model and brand :/ - so I kept one that worked.

Realising I needed 32bit Python (64 OSX JDK 7 Java was ok) the script ran perfect with no errors using my card ID and the ROM from above on techpowerup I knew ran on the PC - I flashed and hey presto I get all my screens and a boot screen again :)

I got from this that its best to create your own ROM - I notice that my old dead card was a different board version from this new one so i bet it wouldnt have worked anyway if i managed to find the saved ROM from it.
cheers anyway for the offer of help! :)

all i need to do now is open this ROM in hex editor and change it to my card ;)
 
The Twin Frozer will perfectly work w/ all ports, if all IDs in framebuffer and card will match.

You can simply check this on your own, by comparing output of redsock_bios_decoder and radeon_bios_decode w/ your rom and a working rom from any mac-7970/7950.

A Radeon R9 280X Vapour X will only partially work with any framebuffer, because there is no matching port-layout.
Yes it does work well which is why i went for the exact replacement card :)

Im going to give opencore a go too just to see what it does as I hear I could have thunderbolt too! :)
 
Hiya,

not to worry now as i have sorted it! :)

took me a few days, but got there and understand it a bit more now :)

I backed up one of the PC bios ROMS from this dual bios card and followed all the instructions on flashing as in NETKAS but was always coming up with errors in the script.

The FINAL tryout was to install an older OSX on my mac and run the script there since I know i was flashing right on my other PC through DOS.

I also tried out a few factory BIOS uploads on techpowerup website for my card which let be to believe not all cards are the same even if they are the same model and brand :/ - so I kept one that worked.

Realising I needed 32bit Python (64 OSX JDK 7 Java was ok) the script ran perfect with no errors using my card ID and the ROM from above on techpowerup I knew ran on the PC - I flashed and hey presto I get all my screens and a boot screen again :)

I got from this that its best to create your own ROM - I notice that my old dead card was a different board version from this new one so i bet it wouldnt have worked anyway if i managed to find the saved ROM from it.
cheers anyway for the offer of help! :)

all i need to do now is open this ROM in hex editor and change it to my card ;)
No problem Frozen Uk. I assume you want to change the name of your card from HD7970? If you look at netkas forum there is already a script available for the R9 280X .this can also be found on github although I suspect you have already done the hard work lol. FYI the name displayed in OSX is purely cosmetic and the R9 280x is basically a rebranded HD7970. Have fun
 
No problem Frozen Uk. I assume you want to change the name of your card from HD7970? If you look at netkas forum there is already a script available for the R9 280X .this can also be found on github although I suspect you have already done the hard work lol. FYI the name displayed in OSX is purely cosmetic and the R9 280x is basically a rebranded HD7970. Have fun
Hiya, YES, I would like to change it eventually...as you said, its cosmetic but nice to have :)

Do you have the link to the script please?

cheers :)
 
there you go
Hiya,

ah! fantastic! cheers! - this is a lot better zip of the files/scripts! :)

I see the ROM header files must be the scripts that add the right card names?

I also notice the 7970 efi added to this bundle... would this have been better for my 280x? or best to leave it as it is?

aslo... maybe these bundles should have an added readme to others to say it all needs to run under a 32 bit capable OSX as this was the reason i had many errors under 64 bit catalina? I used 64 bit Java JDK but 32 bit Python.

also to recommend running the flashing on dos as then you have no mistakes, and using old amdflash.exe on the older cards? I personally found the DOS way much easier and reliable. again, the new AMD software under windows 10 didnt like being able to FORCE flash... another reason why i went in circles.

I was also lucky to have a dual bios but if you have a spare second GPU you can still reflash the single GPU card.

I know i dont need to let you know any of this as you seem to be a veteran GPU flash :)

Thanks again for the files and the advice! :) - it brings this thread more up-to-date to help others :)
 
Radeon HD 7850 / 7870 / 270 / 270x
Performance: 72% RPI (61%-82% for different versions). Supports Metal 2 (Mojave).
Power consumption: 2 x 6 pins.
Outs: as usual two DL-DVI + DP + HDMI.
Other: occupies 2 slots. There are o lot versions of these card, the differences are in cooling system, frequencies. There is no "mac edition" of the card.
Unflashed (PC version): additional information is needed. Can be flashed using HD 7950 ROM, but loose HDMI support. Several cards can't work in Mojave (black screen).

Which of these cards can't work with Mojave (black screen)?. And will they work in Big Sur with OC?
 
Hi All!
Please help me! I'm becoming crazy traying to flash my Sapphire R9 280X 3GB Toxic Device ID= 6798.

My Problem is an error in the script for a missini lib (Big Sur):

Code:
./makerom.sh --efifile=7950mac.efi --romfile=efiromheader_7950.rom --originalrom=7950.rom --devid=6798
running on 7950mac.efi, efiromheader_7950.rom with devid 6798
Patching files 7950mac.efi, efiromheader_7950.rom for device-id 0x6798
Successfully patched efi file
Successfully patched efi rom file
dyld: dyld cache load error: shared cache file open() failed
dyld: Library not loaded: /usr/lib/libgcc_s.1.dylib
  Referenced from: /Users/emanuelecastagno/Downloads/bundle2/EfiCompress.macosx
  Reason: image not found
./makerom.sh: line 46: 19617 Abort trap: 6           $PWD/$EFICOMPRESSNAME $EFIFILE $EFIFILE.comp
dd: 7950mac.efi.comp: No such file or directory
EFI part is ready at 6798.efipart.rom
orig size -
cp: 7950.rom: No such file or directory
dd: no value specified for seek
rm: 7950mac.efi.comp: No such file or directory
  File "fixrom.py", line 100
    print "Usage: %s <infile> <outfile>\n" % sys.argv[0]
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Usage: %s <infile> <outfile>\n" % sys.argv[0])?
the rom is ready at 7950.rom.efi.rom

How can I solve?
I have dowloaded the firmware from the GPU (Installing Win7 on my cMP 5.1), is there others scripts to create the new ROM?

Many thanks in advantage

All the best!

 

Attachments

  • IMG_3624 2.png
    IMG_3624 2.png
    7.6 MB · Views: 142
  • ROM.txt
    128 KB · Views: 178
Hey all. I'm working on porting makerom.sh to Linux.
It's pretty much finished, but I want to test whether it provides the same results as netkas' original script.
I don't have a Mac (that I feel like setting up), so here's what I need from somebody:
- The original VBIOS dump from the HD 7950 / HD 7970 / R9 280X that you're using in your Mac Pro
- The corresponding patched VBIOS dump from netkas' script
- Your GPU's device ID (1002:679a or whatever)

I'll be forever grateful for your contributions.
 
Hey all. I'm working on porting makerom.sh to Linux.
It's pretty much finished, but I want to test whether it provides the same results as netkas' original script.
I don't have a Mac (that I feel like setting up), so here's what I need from somebody:
- The original VBIOS dump from the HD 7950 / HD 7970 / R9 280X that you're using in your Mac Pro
- The corresponding patched VBIOS dump from netkas' script
- Your GPU's device ID (1002:679a or whatever)

I'll be forever grateful for your contributions.
Hi unilock, a very good idea, I'm sorry but I'm not able to run macero.sh maybe I miss some libs, now I can supply only the original rom (in my previous post, you have only to change .txt to .bin and the Device ID). I'm not a dev but I'll try to make riverse engineering of the script to understand if I can built the new rom for my card manuali with a HEX editor... waiting your Linux version :)
 
Hi unilock, a very good idea, I'm sorry but I'm not able to run macero.sh maybe I miss some libs, now I can supply only the original rom (in my previous post, you have only to change .txt to .bin and the Device ID). I'm not a dev but I'll try to make riverse engineering of the script to understand if I can built the new rom for my card manuali with a HEX editor... waiting your Linux version :)
EfiCompress.macosx - the bit of the script you're struggling with - was actually the hardest thing to get working on Linux XP
In fact, I had to replace it completely with TianoCompress, which I assume is its successor. This difference is what I need to test between macOS and Linux - EfiCompress vs. TianoCompress.

I searched the Web for Library not loaded: /usr/lib/libgcc_s.1.dylib, and it seems you need to install GCC - very specifically, version 5. This somewhat makes sense, as GCC5 was the original recommended UNIX-like compiler for EDK II, which is where EfiCompress comes from.

To install GCC5, you'll need to install Homebrew from https://brew.sh/, then run the following command:
Code:
brew install gcc@5

The other problem you're facing - not being able to run fixrom.py - is due to major differences between Python 2 and Python 3, the former of which the aforementioned program was written in. Forutnately, I ported said program to Python 3 (which was a real pain!). You can download it as an attachment to this post - rename fixrom3.txt to fixrom.py and replace the original fixrom.py appropriately.
 

Attachments

  • fixrom3.txt
    2.6 KB · Views: 117
EfiCompress.macosx - the bit of the script you're struggling with - was actually the hardest thing to get working on Linux XP
In fact, I had to replace it completely with TianoCompress, which I assume is its successor. This difference is what I need to test between macOS and Linux - EfiCompress vs. TianoCompress.

I searched the Web for Library not loaded: /usr/lib/libgcc_s.1.dylib, and it seems you need to install GCC - very specifically, version 5. This somewhat makes sense, as GCC5 was the original recommended UNIX-like compiler for EDK II, which is where EfiCompress comes from.

To install GCC5, you'll need to install Homebrew from https://brew.sh/, then run the following command:
Code:
brew install gcc@5

The other problem you're facing - not being able to run fixrom.py - is due to major differences between Python 2 and Python 3, the former of which the aforementioned program was written in. Forutnately, I ported said program to Python 3 (which was a real pain!). You can download it as an attachment to this post - rename fixrom3.txt to fixrom.py and replace the original fixrom.py appropriately.
Hi, many thanks, unfortunately I can't install GCC5 wha not compatibile with Big Sur:

Code:
gcc@5: This formula either does not compile or function as expected on macOS
versions newer than High Sierra due to an upstream incompatibility.
Error: gcc@5: An unsatisfied requirement failed this build.

I will try to install High Sierra.....
 
It works!?

Download it here: https://github.com/unilock/makerom-linux

@ema1972
I've attached your patched VBIOS to this post.

(Sorry for the lack of info; kind of in a rush.)

EDIT: I tested EfiCompress.macosx vs. TianoCompress by booting up an OS X Lion VM. Everything else should be explained in the README, though of course feel free to ask here if you have any questions or issues!
 

Attachments

  • Sapphire R9 280X 3GB Toxic - 6798.rom.mac.txt
    128 KB · Views: 139
Last edited:
256k VBIOS dumps (like that of my XFX R9 280X) do not work for the time being! It has something to do with Python's bytearray(), not sure what yet. And it doesn't really help that I don't know how to program in Python.

In my particular case, the GOP starts at 128k (0x10000), so maybe deleting everything from then on and concatenating the patched Mac EFI code + header to the now empty space would fix the issue?

I'll have to test whether netkas' original script can handle this...

EDIT: 256k dumps shouldn't exist :v
Maybe amdvbflash is a bit wonky... well, if all else fails - as in, you get a 256k VBIOS instead of 64k or 128k - just use GPU-Z on Windows, I guess.

EDIT: For posterity, I wasn't able to get the boot picker working with my XFX card's stock VBIOS, so I turned to other brands' VBIOS.

ASUS(?) and HIS didn't show the boot picker, but worked fine in macOS.
MSI showed the boot picker, but was buggy in macOS. Graphical artifacts, freezing, etc.
VisionTek is what eventually worked for me, specifically this VBIOS: https://www.techpowerup.com/vgabios/152045/visiontek-r9280x-3072-131024

I haven't tested all the ports; I just needed one DVI port, and the black one works fine.
 
Last edited:
It works!?

Download it here: https://github.com/unilock/makerom-linux

@ema1972
I've attached your patched VBIOS to this post.

(Sorry for the lack of info; kind of in a rush.)

EDIT: I tested EfiCompress.macosx vs. TianoCompress by booting up an OS X Lion VM. Everything else should be explained in the README, though of course feel free to ask here if you have any questions or issues!
Hi! many thanks, I am away for work, I will try over the weekend
 
On Ebay semsotai2017 has the MSI R9 280X for $169. They have 3 available as of last night.
Thank you most gratefully, Mr. Zarniwoop for the flash. It works perfectly.
 
Last edited:
Radeon HD 7850 / 7870 / 270 / 270x
Performance: 72% RPI (61%-82% for different versions). Supports Metal 2 (Mojave).
Power consumption: 2 x 6 pins.
Outs: as usual two DL-DVI + DP + HDMI.
Other: occupies 2 slots. There are o lot versions of these card, the differences are in cooling system, frequencies. There is no "mac edition" of the card.
Unflashed (PC version): additional information is needed. Can be flashed using HD 7950 ROM, but loose HDMI support. Several cards can't work in Mojave (black screen).

Which of these cards can't work with Mojave (black screen)?. And will they work in Big Sur with OC?

Does a flashed 7850 support EFI32 (Mac Pro 1,1) ??? If so, would appreciate any pointers to a rom I can flash :cool:
 
Hello

I appreciate that this is an old thread - I'm pretty (very) new to this and need some help if you can. Quite new to mac in general actually so still understand all of the abbreviations and stuff.

I have a Mac Pro 5,1 x5650 @ 2.67ghz with an MSI R9 280x details below. (also have an iMac 2011 if that helps)

I've tried flashing this card multiple times now using (at least what I thought was) the correct rom for this GPU but have been met with a screen that looks like a failed gpu (lots of coloured lines) to which I've rebooted using the second bios - this is becoming like trial and error. It seems that although it is the same card there are different versions or something (there was the YouTube vid with what looked to be exactly the same card and I used the same file he did but still got the coloured lines) Read somewhere that it is better to create a rom using your own rom, but I'm at a loss on even where to begin on how to do that - tried reading up but only found a thread detailing 7xxx cards or something.

would anyone be able to help me out? I've included a screenshot of GPU-Z and my original rom
GPU-z.gif
 

Attachments

  • originalbios.rom.zip
    41.6 KB · Views: 85
Did you flash a complete, working rom from a different card or did you make your own rom w/ the netkas-script?

It is better to use the "own" rom as it is known for working on the card, and mod it w/ script or hexedit.
 
Did you flash a complete, working rom from a different card or did you make your own rom w/ the netkas-script?

It is better to use the "own" rom as it is known for working on the card, and mod it w/ script or hexedit.
Thanks for getting back to me - appreciated

As of now, I've tried to flash a rom from what I thought was the exact same card (from here
- didn't work, got nothing but lines) and if you mean this scrip (./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --originalrom=7950OC.rom --devid=679a) then I've just tried that and ATI winflash says that I already have that version flashed... however my terminal gave me this (see screen shot)

Didn't know I have to install java run time, nor python (I don't even know what that is??) Or do I need to have java installed on the 5,1 in order to do this process? (what I did do was to use my imac to do terminal bit then transfer the file to my MP5,1 - is this the wrong part?)

Can you tell me what I'm doing wrong? (it seems like everything)
 

Attachments

  • Screenshot 2022-08-26 at 13.48.49.png
    Screenshot 2022-08-26 at 13.48.49.png
    68.2 KB · Views: 91
  • Like
Reactions: ikir
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.