I stumbled upon NPRQuake via Nilesh’s blog post. It has been a long time since I played Quake (Quake 1, the original.) I downloaded the binaries and tried to run it, and I was getting the following error.
Quake v1.06
Locked 1 Mb image
Locked 11 Mb data
malloc’d: 11833344
Exiting due to signal SIGSEGV
General Protection Fault at eip=000452cb
eax=fd34046c ebx=0011f240 ecx=0000ffff edx=fd340000 esi=00000054 edi=000db354
ebp=0011b34c esp=0011b2a8 cs=01a7 ds=01af es=01af fs=01cf gs=01cf ss=01af
Call frame traceback EIPs:
0x000452cb
Even the bundled QLAUNCH.EXE was failing. Procmon revealed that it was looking for WinG.DLL. Instead of hunting for WinG.DLL, I looked for a Windows version of Quake and found it at ftp://ftp.idsoftware.com/idstuff/quake/wq100.zip. And that got Quake running.
I downloaded the NPR binaries and unzipped them to the same folder. I liked what I saw, and decided to capture a video and combine it with something that I have been desirous of trying out for some time now, the Silverlight streaming service.
With some help from Expression Encoder and the MSDN page at http://msdn2.microsoft.com/en-us/library/bb851602.aspx, I was able to upload the video and embed it in this blog post.
The documentation is a bit unclear about the manifest.xml file. Expression Encoder does not generate this file, you’d have to generate this on your own.
My manifest contained:
<SilverlightApp>
<version>1.0</version>
<loadFunction>StartWithParent</loadFunction>
<jsOrder>
<js>MicrosoftAjax.js</js>
<js>Silverlight.js</js>
<js>BasePlayer.js</js>
<js>PlayerStrings.js</js>
<js>player.js</js>
<js>StartPlayer.js</js>
</jsOrder>
</SilverlightApp>
And needless to say, don’t include the html and the csproj file in the zip
You’d need Silverlight to view this video.
Yeah, I know I suck at playing Quake…now