I'm looking forward to seeing how this is done. I mean obviously you can re-write the Quake software renderer in C# and have it write to a byte[] in place of video memory and with PCs being as fast as they are today compared with 1995, that will get you a decent fps at the resolutions demonstrated. No contoversy there. But what I don't get is how you get that byte array on screen in Silverlight 2, because I've been through all the API documentation and I just can't see a way other than turning each frame into a PNG and then having it decoded by the framework again and that surely wouldn't be fast enough.