Achieving HDMI audio output with ATI hardware on Windows 7 (and Vista)
The steps in this article were figured out with Windows 7. However, they should work just fine with Vista for anybody having the same issues. Note that whilst this is written for ATI hardware, it may be the case that NVidia gear suffers from the same problem and this solution should help.
Background first. I spent a while sorting our AV gear so I could use HDMI as the universal connection standard. At the heart of this is an AV receiver with a number of HDMI inputs and HDMI output to the TV.
I spent a while looking at how to achieve audio output over HDMI for the Media PC we have. The previous model, which had given exemplary service, was built around a Shuttle SN41G2 chassis. With the graphics card it had, DVI was possible, and optical digital output, but it didn’t have the grunt to decode high definition video, so it needed replacing.
As I mentioned in a previous post, it’s replacement was a Hiper barebones built around the AMD 690G chipset which has HDMI output and, critically, will support audio over HDMI.
I started the great process of connection and configuration simply – PC plugged directly into TV. In this configuration, I simply set the HDMI audio output device as the default output device and happily got sound from the TV and faultless video.
That was easy! I unplugged the PC from the TV, plugged it into the AV receiver and continued to get sound and video. Brilliant!
Reboot the PC, however, and the video gets crappy and the audio disappears.
I did a great deal of digging and found a whole heap of discussion related to this issue on the fantastic AV Science Forum. The problem, it turns out, is widespread, and afflicts owners of ATI hardware the world over when connecting to AV receivers of all makes and models. The root cause seems to centre around the capabilities information passed down the HDMI connection when plugged into the AV receiver. For some reason, it seems to confuse the capabilities of the TV and receiver in such a way as to convince the PC that audio is not supported.
The solution, it turns out, is to create your own device driver .inf file which details correctly the capabilities of the TV and receiver and overrides the connection information.
The forums had much discussion involving registry hacking, copying and pasting of hex data into. inf files and much more. However, they also focused on a tool referred to in the forums as moninfo. A bit of googling later and it turns out they mean Monitor Asset Manager – a free utility from EnTech, makers of the mighty PowerStrip shareware tool.
Armed with this mighty tool, the steps to success are as follows:
- Connect the PC to your TV (no AV receiver in the loop). I would reboot the PC to make sure it’s sensed everything correctly at the start of the process.
- Run Monitor Asset Manager. It will display all manner of information detailing the TV and its capabilities.
- Click the file menu and hit ‘Create INF…’ and give the file a sensible name (mytv.inf for example).
- Hit F5 to refresh the moninfo display. Make sure it refreshes correctly. You may need to click on different bits of the window to make sure focus is set correctly.
- Now comes the tricky part. Unplug the TV from the PC. You now need to connect the PC to the AV receiver, but making sure that the receiver is not connected to the TV. This means you won’t be able to see anything on screen so make sure you don’t accidentally switch focus away from moninfo. You can’t have any other displays attached either, as this will confuse the information moninfo sees.
- Working blind, hit F5 a few times to make sure the moninfo details are refreshed with the information from the receiver. Leaving the PC for a few minutes to make sure all the hardware connections have sorted themselves first is a good idea.
- Disconnect the PC from the receiver and reconnect to the TV so you can see what you’re doing. Don’t refresh moninfo!
- Repeat the process to create a new .inf file. Call it something like myreceiver.inf.
- The next part moninfo can do for you, but I did it myself to make sure I knew what was going on. Choosing ‘merge extension block with inf’ from the file menu should allow you to take a crucial bit of the sensed details from the AV receiver and combine them with the details in the tv inf file. I did by hand.
- Create copies of the mytv.inf and my.receiver.inf.
- Open myreceiver.inf. You will see a line which says
;Extension bloc #1, e.g. , CEA-EXT, DID-EXT, etc.
Copy the line beneath it which beginsHKR, EDID_OVERRIDE,”1”
to the clipboard. - Open mytv.inf. Find the same line
;Extension bloc #1, e.g. , CEA-EXT, DID-EXT, etc.
Replace the line beneath it with the line from your clipboard. - Save the .inf file as something else (mytvandreceiver.inf)
You now have a device information file which will override the information received over the HDMI connection and convince your PC to support the output formats it should do – including sound!
Connect your systems up how you actually want them – PC to receiver, receiver to TV and reboot the PC.
In Windows 7, to use the custom .inf file with your monitor, follow the steps below:
- Right-click the desktop and select Screen Resolution.
- Click the link on the right hand side of the dialog which says ‘Advanced Settings’
- In the dialog that appears, select the Monitor tab and then click the Properties button.
- In the new dialog, select the Driver tab then click the Update Driver button.
- Select the option to ‘Browse my computer for driver software’.
- On the next screen, choose ‘Let me pick from a list of device drivers on my computer’.
- On the next screen, click ‘Have Disk’.
- In the file dialog, browse to the folder with your mytvandreceiver.inf file (this is much easier if it’s the only file in the folder) and select it.
- You should then see your device listed in the driver selection screen. Select it and click Next. You may need to confirm that you want to use the driver as it is not digitally signed.
Once you’ve got the driver installed, reboot your PC. You should find that you get the decent picture and HDMI audio that you had when plugged into the TV.
Kudos to the guys on the AVS Forums who figured all this out. It was extremely frustrating until I found their sage advice.