Sunday, October 28, 2007

Quake re-play with NPRQuake

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 ;)

No comments:

Post a Comment