Situation: I just recently obtained a Dell 2405FPW 24″ widescreen display. It’s native resolution is 1920×1200. Incidentally this is the same native resolution as the 23″ Apple Cinema Display. One thing the Dell display does, that other displays don’t seem to do, is report to the Video Card that it supports almost EVERY possible resolution (because it in fact does–of course it scales the image). The problem with this, is that in Warcraft 3 on my mac, the list of display resolution choices is longer than the screen! I mean, when will I ever want to use 1344×1008 or 1360×768 in only 16bit color? This results in the largest (and most-ideal for my modern computer and display) resolutions being inaccessible! To make matters worse, there is no keyboard support in the game setup menu, thus there is no way at all in the GUI to set the desired video resolution.
Resolution: (No pun intended)
I knew that on Windows, you can edit some Registry keys to set any custom resolution you want. On the Mac, because there is no registry, programs almost exclusively use a preferences file. The WC3 Preferences are stored in a Resource Fork of the preferences file: “
~/Library/Preferences/com.blizzard.WarcraftIII“. Once I determined that, I knew there had to be a way to edit the file to set my desired screen size.
- First run the game at least once after install to create the preferences file, and setup an easy to identify resolution, and set all your other video settings. Then exit the game.
- Open the preferences file with a Resource Editor (For this example I used ResFool. Other tools may have different steps, but the concepts should remain the same.)
- You will see a resource named ‘
HKEY‘. Expand it to see all of the values. The names of the values simply correspond to the same windows Registry Keys used for the PC version of War3. It’s common knowledge that in windows you set the resolution with the ‘
reswidth‘ and ‘
resheight‘ keys. It’s the same in here.
- What we want to do is open each resource byte and edit the values to the desired settings (in my case 1600×1200), or 1920×1200 if I wanted the game to be stretched full-screen. (No matter what you set, the game will NOT change the FOV [Field of View]).
- Now this is the tricky part. In ResFool, there is no ‘known’ template for the ‘HKEY’ resource type. Templates in ResFool (and other resource editors) ‘translate’ the raw data in the resource value and add known ‘labels’, field-types, etc.
- The easy way I found to edit these values in ResFool is to apply a different template manually. (Without a template the raw hex and ascii values you see aren’t easily translatable to decimal. I don’t know the type of translation needed, but a little trial-and-error with different provided templates produced results!)
- I found the ‘template’ type of ‘
WIND‘ to be a good choice. (A few others also worked, but this one is pretty easy to remember.)
Open the ‘
reswidth‘ resource item, and select “
Interpret with Template” from the “
Edit” menu. Type in ‘
WIND‘, or select it from the list, and click OK.
- This will show the following:
(Click for full-size picture in new window)
- You merely want to expand the “
BoundsRect” value, and then edit the existing ‘
Right (####)‘ value.
Be careful to ONLY change the necessary part of the value. Editing other parts of the template will add/remove other (probably necessary) bits of the resource fork, and will most likely render the preferences file useless.
- Repeat this same action for the other ‘
- Save your changes to the file and exit ResFool.
- Launch WarCraft III program, and it should now be running at your defined resolution. If for some reason something is wrong, or it’s not working; try <cmd-q> to quit the program and delete the preferences file. The program will re-create it with defaults.