Ads Below Tabs

June 26, 2012

How to set your Hackintosh bootscreen to a widescreen resolution (VESA modes)

At boot time, your Hackintosh's bootloader can only display the basic resolutions programmed into your graphics card; these are known as VESA modes. VESA resolutions usually aren't widescreen, so if your Hackintosh uses a widescreen monitor, all of the images on your bootscreen may be stretched and distorted. This can be fixed by changing the VESA modes in your graphics card, but it isn't easy.

You can change VESA modes by editing the Video BIOS (VBIOS), which is essentially a settings file for your graphics card. However, changing the VBIOS is very risky. Though it's unlikely, your graphics card will end up in a heap of trouble if you do something wrong (and I probably won't be able to help). After all, you're making fundamental changes to your computer's hardware. Proceed at your own risk! If editing the VBIOS isn't for you, you can instead try our simpler (and safer) workaround method for unstretching Hackintosh bootloader themes.

Unfortunately, this guide only applies to AMD Radeon HD graphics cards. I don't have a NVIDIA graphics card or integrated graphics card that I can test. In addition, the following process needs to be done in Windows, so your Hackintosh needs to dual-boot both Mac OS X and Windows. You need the following tools:

  • Radeon BIOS Editor: This app allows you to extract, edit, and flash (reinstall) your graphic card's VBIOS.

  • Winflash: Radeon BIOS Editor needs this app to help it extract the VBIOS from your graphics card.

  • Any decimal to hex converter: You will need to convert normal numbers to the hexadecimal format. This can be done with any online calculator, though you can just use the one provided above.

1. Find out what VESA mode you want to change
By default, graphics cards include a ton of different VESA modes with different resolutions. In this guide, I will show you how to change the height of just one of these VESA modes.

To check what VESA modes your graphics card has, first restart your Hackintosh. At your Hackintosh's bootscreen, select your Mac OS X hard drive, and press the down-arrow on your keyboard. A menu will pop up. From that menu, choose "Video Info". This will display a list of all available VESA modes for your graphics card. The first two numbers in each VESA mode are the actual width and height of each resolution (for example, 640x400x8).

When I edited my own VBIOS, my Radeon HD 6850 graphics card included a VESA resolution of 1920x1440. My monitor had a resolution of 1920x1080. So I planned to change the height of the 1920x1440 VESA resolution from 1440 to 1080.

When editing your graphic card's VBIOS, change only the height (or only the width) of a specific VESA resolution. Don't try to change both the width and height of a VESA resolution, as this can get super confusing.

2. Get a copy of your VBIOS
Boot into Windows and download Radeon BIOS Editor and Winflash. Both apps come in ZIP files. Open the ZIP files by double-clicking them. Copy all of the stuff stored inside the ZIP files, to some random place in your computer that you can remember for later.

Open the file RBE_128.exe (this is Radeon BIOS Editor). Once Radeon BIOS Editor opens, click the "Acquire/Flash" button on the bottom of the window.

A new window will pop up. Click the "Browse" button on the right of the window, and find the file ATIWinflash.exe (this is Winflash). Radeon BIOS Editor needs to use Winflash to extract the VBIOS from your graphics card.

Once you have found Winflash, click the "Analyze" button on the lower right-hand corner of the window. Once that's done, click the "Acquire BIOS" button on the bottom of the window. This will extract the VBIOS from your graphics card.

You can now close the window in front of you, and go back to the main window of Radeon BIOS Editor.

3. Start editing
Click the "Hex Dump" button on the bottom of the main window of Radeon BIOS Editor.

This will open the VBIOS editor. You will see a page full of numbers. These numbers are the basic components of your VBIOS. Read on to the next section to find out what they mean.

4. Convert some numbers
The numbers displayed in the VBIOS editor represent the VESA resolutions that your graphics card is allowed to display. If you change the numbers, your graphics card will be able to display different VESA resolutions. Unfortunately, the VBIOS doesn't use normal numbers. Instead, it uses "little endian" numbers.

To convert a normal number into a little endian number, you have to convert the normal number into a hexadecimal number, and then flip that hexadecimal number around. For example, say that your graphics card has the VESA resolution 1920x1440, and you want to change it to 1920x1080. Before you can do any actual VBIOS editing, you'll have to convert the numbers 1920, 1440, and 1080 to little endian numbers.

First, using a decimal to hex converter, convert each number to its hexadecimal version.
1920 becomes 780

Then, change the hexadecimal number to 4 digits, and switch the halves (I've separated the halves to make the process clearer).

780 becomes 0780
07 80 becomes 80 07

Congrats, you have successfully converted 1920 to its little endian version, which is 8007. Do the same thing for the rest of the numbers, and write the little endian versions of the number down somewhere. You'll need them for the next step.

5. Make the edits in the VBIOS
Now you need to find the location of the little endian numbers that you want to edit, in your VBIOS. In the search box on the upper-right corner of the VBIOS editor window, search for one of the little endian numbers that you converted.

Make sure that you only get one search result. If you get more than one result, try searching for another one of your numbers. You only want to change one number in your VBIOS, so getting multiple search results is no good. In my case, I was searching for the location of the 1920x1440 VESA resolution. Searching for the little endian version of 1920 (8007) only gave me one result, while searching for the little endian version of 1440 (A005) gave me two results. Therefore, I used the search result for 1920.

In the screenshot above, the first little endian number is the width (translated to 1920), and the second is the height (translated to 1440). As you can see, there are two columns separating the width and the height of a VESA resolution from each other. To edit the height, place your mouse cursor in front of the first digit of the height (in this case, "A"), and type the new number in. This is very important; don't select the entire little endian number and try to type over it, because this will mess up the size of the VBIOS file.

In the screenshot above, I have changed the little endian number A005 (translated to 1440) to the little endian number 3804 (translated to 1080). Now my VESA resolution is 1920x1080. You can save your changes by pressing the "Okay" button.

6. Flash your BIOS
Click the "Acquire/Flash" button at the bottom of the main window again. This time, click the "Flash BIOS" button.

After a few seconds, Radeon BIOS Editor will finish installing your newly edited VBIOS, and you can reboot.

7. Take advantage of the new resolution
To make Chimera/Chameleon bootloader actually display your graphics card's new widescreen resolution, you have to edit two configuration files in Mac OS X.

Boot into Mac OS X. First, go to /Extra in your Mac OS X hard drive and open the file org.Chameleon.boot.plist . In between <dict> and </dict> in the file, add the following lines:

<key>Graphics Mode</key>

Replace 1920 and 1080 with the width and height, respectively, of the new VESA resolution that you set in the VBIOS. Then save the file. In Mac OS X Snow Leopard, you won't be able to save the file normally because it's a locked system file (in Lion, you can unlock system files). Instead, save a new copy of org.Chameleon.boot.plist to somewhere random (make sure that you save it as a .plist file). Then delete the old copy of the file and replace it with the new one.

Next, go to /Extra/Themes in your Mac OS X hard drive and find the folder of your bootloader theme. If you don't know what bootloader theme you're using, go to the "Default" folder. Inside that folder, open the file theme.plist . Change the parameters under "screen_width" and "screen_height" to whatever your new VESA resolution is.


And that's it! Now, every time you start your Hackintosh, you'll get to bask in the widescreen, unstretched glory of your bootscreen. Congratulations!

SOURCE: [GUIDE] Setting correct widescreen resolution at boot time