One of the more annoying things about Hearthstone on Mac is Blizzard’s decision/oversight to not allow cmd-tab to work in full-screen mode. Considering its written in Unity, and I’m a Unity game dev I knew exactly what was going on: their ‘Mac Full Screen Mode’ setting was not set to ‘Full Screen Window With Menu Bar and Dock’ but ‘Full Screen Window’. This meant that you have to exit full screen in order to switch applications, which for me was a major pain in the ass (especially while net decking! 🙂 ).
And so I realized hey, I know how to fix this. Its just data. I could find the setting in the binary data, and flip the bit. I created a simple test project where the only change was this setting. I then did a diff on the mainData file and found this:
Oh look! I can switch a 1 to a 2 and fix the issue. Ok, so next step was to open Hearthstone’s mainData. Let’s just say that this required some basic snooping to find the correct offset. The offset in my mainData was 10 32-bit words off from two 0xFF words followed by what looked like a lot of bit flags. So I found two 0xFF words in Blizzard’s mainData and counted 10 words over, flipped a 1 to a 2, and bam: cmd-tab works.
EDIT: This has been updated on launch of the expansion Kharazan:
Perhaps you would like to turn cmd-tab on as well? I will attempt to give some simple steps:
- Download Hex Fiend here.
- Get the globalgamemanagers file from /Applications/Hearthstone/Hearthstone.app/Contents/Resources/Data and back it up.
- Copy the file to another location, and open the file in Hex Fiend.
- Choose Edit->Jump To Offset. At the time of this writing the offset is 4884. Move your cursor until the status bar on the bottom says ‘4273 out of XX bytes’.
- Change the 01 to a 02 at this location.
- Save the file.
- Move the modified file to the location mentioned above and start Hearthstone.
- Observe that you can now Cmd-Tab.
Your Mileage May Vary
Needless to say that this information will most likely go out of date as soon as the game is patched. Additionally Blizzard had this feature in the Beta, but then removed it at launch, and my assumption is that they had a reason for it (probably full screen compatibility issues on crappy graphics cards). But hey, if its not that, maybe they can flip this bit and make us Mac players happy campers?