Sam & Max Season 3 Episode 5 won't launch
Recently I had to reinstall and upgrade my OS from Windows XP SP2 to Windows XP SP3 (because some software refused to work on SP2).
Unfortunately, after the "upgrade" I've found out that Sam & Max Season 3 Episode 5 (Devil's Playhouse / The city that dares not to sleep (aka 305)) no longer works! All other episodes were working just fine, except that one (in case you're curious: it's about DVD edition of the game).
The error message stated about "EXE misconfiguration". Tracing the WinAPI calls with Process Explorer revealed the game won't even initialize non-system API calls. I've compared the import tables of the previous episode's executable with 305's and they had 100% match, which meant the problem is somewhere else.
I had nothing better to do than step-by-step compare every part of executables to either figure out what was the actual difference which caused the bug or hack the exe from the previous episode to accept data from 305.
Then suddenly... I've noticed the manifest resources of 304 and 305 actually has noticeable difference. Because the way Windows NT 5.x processes manifest resources, it's possible to override the internal manifest as long as you put .manifest xml file along with the executable. So, i've exported manifest resource from SamMax304.exe, renamed it to SamMax305.exe.manifest, placed it along with SamMax305.exe and tried to launch it...
...and the game started working again!
I've checked other games I've bought (Sam & Max and BTTF is all I have for now) and none of them has this particular problem, except for 305.
Worth noting the code which caused the executable to fail is:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
The "funny" thing is I'm a developer myself and have all the spectrum of MS Visual C redistributable installed. Why the game was set to look for this non-existent version of "VC80" run-time is a total mystery to me.