Thursday 9 April 2009

Internet Explorer 8 (IE8) crashes on intranet web-sites (Outlook too)

I've recently installed Internet Explorer 8 on both my home and work PC, and find it to be much better than IE7 in the main. However, I do find that IE8 crashes whenever it tries to load a web-site on our work internal network (some of these sites are Sharepoint sites, some are blogs, and some are web-services).
I found a couple of forums where people are reporting similar issues that kind-of hint at the problem being to do with security zones. When I asked the error message for more info, it did say that the fault comes from Urlmon.dll.
I also found that Outlook 2003 crashes when trying to display an email that contains one of the URLs! It's not trying to load anything from a website (as far as I know), just display a link inside an email. I suspect that there's a problem with it trying to figure out whether the URL is "trusted" or not.

Anyway, I realised that some URLs on a particular sub-domain seemed to be causing the problem, but not all. Contrary to the advice in the link above, I found that the URLs that were crashing were the ones that were not included in a trusted zone. URLs that I had set to be within the local intranet loaded fine. So, I experimented and found that any URL I add to the Local intranet zone no longer crashes IE8 - nor Outlook!
My theory is that some code inside the Urlmon DLL (possibly in CheckMappings, if it's the same as the link above) attempts to verify the URL, but bugs out when it tries to use the current Windows Credentials (since the issue does not appear for external sites). This is something that Microsoft should ideally fix, and I expect we'll see a hotfix for it in due course.

The Workaround Fix
Be very careful here - you should not add sites to the Local intranet zone unless you are sure they are within your company intranet. These sites get an elevated level of trust and you would be exposing yourself to security risks if you accidentally whitelisted an external site.

  • In IE8, go to Tools -> Internet Options -> Security tab.
  • Select Local intranet
  • Click Sites
  • Click Advanced
  • Add the offending URL (e.g. http://something.internal.sub.domain.net/ ) - or whole domains (e.g. *://*.internal.sub.domain.net - as per Microsoft's instructions)
  • Click Close, OK, OK.
  • Restart Outlook (IE should be fine)
If you are on a company network, I imagine this can be rolled out by applying policies.

I hope this helps someone!

[Please note: I have turned off comments on this post because I keep getting link spam]

Wednesday 18 March 2009

Resident Evil 5 - screen tearing fix (Xbox 360)

Like many others, I've been looking forward to Resident Evil 5 since being introduced to Resident Evil 4 on the Gamecube! I bought it last Friday (the 13th - ooh, scary!) and have been enjoying it ever since.
The graphics are, in the main, great, but there's one big thing that spoils it for me. Screen tearing. And judging by the number of results when I google for it, it's bothering quite a few other people too!

What is screen tearing?
It's what you get when your TV is trying to display two frames at the same time, overlapping each other. It manifests itself as a jagged line, which stretches across the whole screen and is most noticeable in fast-moving action.

When does it happen?
For me, it only happens in Resident Evil 5, and only when displaying in 1080p (on either 50 or 60Hz). It's most noticeable in some of the (frequent) cut scenes, but also while playing the game. It only seems to happen in the Xbox 360 version of the game.

How can I fix it?
You can't fix it per se, at least not unless Capcom release a patch, but what you can do is implement a work-around. In the Xbox Settings, under video, you can set your console to output at 1080i or 720p (assuming your TV/monitor supports this). This results in a minor decrease in graphical quality, but not a noticeable one (at least for me), and removes the tearing completely!

Further background...
Does this happen on the PS3?
No - the PS3 uses a technique called V-sync (vertical synchronisation) to stop the issue at the expense of showing fewer frames per second. Personally, I would love the option to turn this on on the Xbox - even just to try it out!

Has this problem been around for long?
Well, some people noticed it in the demo (myself included), but put it down to the fact that it was pre-release code. So it's been around for a while.

Is 1080i better or 720P?
Well, its down to preference. 720P is better for faster moving games. 1080i has fewer updates per second, but is at a higher resolution, so looks nicer for still objects.
I have read that the Xbox 360 mainly outputs in 720P anyway and scales-up to other resolutions, but haven't been able to verify that.
It could well depend on your display - my TV has 1920 x 1080 pixels, so at 1080i there's a 1-1 mapping, which means it looks great. At 720P, it would be scaling some of the pixels so it might not look so fantastic. Your display might be different.
Personally, I haven't decided yet! I'd advise to try both

What other games does this happen in?
I haven't noticed tearing on any of the other games I've played on the Xbox 360. I've heard that Dead Rising had it (another Capcom game), and maybe Ghost Recon Advanced Warfare (GRAW). I have GRAW, and haven't noticed it, but that may be because it doesn't display at 1080p, or maybe it's just more noticeable in RE5.

Why does this happen in RE5?
Well ... lazy programming/product quality. The console is being pushed past its limits in terms of how much graphical information to process, and as a result has not finished processing one frame before another comes along. However, other games have comparable graphics in 1080p without screen tearing.

Is it still worth buying Resident Evil 5?
Hell yeah. Look around for the cheapest price though. It was available for £29.99 (UK) but now the cheapest is £32.99.

Saturday 7 March 2009

Taskbar shows in full screen applications

I have a few applications that show the Windows taskbar when they are supposed to be running in full-screen. A couple of these applications are VLC media player, and Hauppauge WinTV.

I'm running Windows Vista (Home Premium), and have found a couple of workarounds, like auto-hiding the taskbar, or running the programs in a compatibility mode, but these solutions are not ideal, as they either compromise other functionality, or I have to switch them off again afterwards.

The under-lying problem seems to be a bug with Windows (possibly just Vista, possibly other versions too) where if you are running in Large Fonts mode (i.e. DPI-scaling is set to a non-standard value), then the call that gets by certain programs to put the application in full-screen mode does not hook into the functionality to hide the taskbar.
I can "prove this" by setting my DPI-scaling to standard (96DPI), rebooting (changing the DPI-scaling requires a reboot annoyingly) and then observing that full-screen mode (e.g. for WinTV) hides the taskbar ... and then changing it back to 120DPI (large) and doing the same - the taskbar is not hidden.

I did look briefly into how to file a bug report with Windows, but 10 minutes of Googling left me without many options (install Microsoft OneCare or pay $35 to report the issue over the phone - no thanks!).

One interesting thing is that although some applications display this behaviour, not all do. So Media Player Classic displays in full-screen correctly, where VLC does not. I can watch full-screen television in Windows Media Center without the taskbar, but not in WinTV.

I may look further into it later. Perhaps I can use the SysInternals Process Monitor to figure out which Windows API call is being used and figure out a way to patch it. Then I can try to badger someone at Microsoft to listen. Most likely I'll keep using the work-arounds and being mildly annoyed about it every time that I have to...

How do you check the cost of a BT call?

(For anyone reading this outside the United Kingdom, this doesn't really apply - it's only for UK telephone users on a British Telecom line!).

I recently had to make a call to an 0844 number to renew some insurance. I looked it up on SayNoTo0870 and obtained the equivalent national prefix number (0292 something), but wasn't sure which would be cheaper.
I found this tariff guide on the BT website, which mentions that 0845 and 0870 numbers are free for me at weekends. 0844 numbers are generally cheaper than 0870 numbers, so I thought that the 0844 number might be best.

Well, it turns out I was wrong, and I was charged 47 pence for a 10 minute call (grr!). I found this out not by waiting for my bill, but by using a technique I found on this page.

Basically, by entering a special code into the phone before the number you're calling, the call is made and you are immediately called back by the telephone exchange with the duration of the call and the cost.
The code is: *40*number#
(where number is the actual number you are calling - e.g. 084400000000).

This service appears to be free. There are a number of other "access codes" for BT exchanges listed on that page, most of which cost money. I guess there's a chance that even this service costs money, since the list is over 10 years old!