Skip to content


This is the blog of Fabian “ryg” Giesen. I work at RAD Game Tools in Kirkland/WA as a programmer. I also used to be active in the demoscene group Farbrausch and have written some useful tools and other pieces of code, most of which are available on my homepage.

Moderation policy

This blog allows comments. But I enforce a fairly strict moderation policy; first-time commenters (without a previously approved comment) can’t post comments without my approval, and I generally only check the moderation queue maybe once a week, so it can take a while. Furthermore, I will, without warning or any stated justification, delete comments that I deem to be:

  • Content-free (“first!”)
  • Off-topic or aggressively self-aggrandizing (“this post on modular arithmetic reminds me of the time I once saved New York by myself”)
  • Trying to pick a fight with other commenters.

You are of course free to disagree with me or the contents of my posts provided you do so in a civil manner. Questions, on-topic remarks or links to related material are very much welcome, and I will in general try to respond to questions provided they are ones I can answer.

  1. Hi,
    Do you appear on any scene IRC channels ?
    I wanted to ask some stuff about kkapture… :)

    Something else about kkapture:
    in the video you mention the problem of esoteric edge cases. It would be handy to have something to test the implementation of the Windows API; run it once on the vanilla machine, and once through kkapture then compare the results.

    Of course I’m refering to WineTest, the Wine project has been building a massive set of tests to check their implementation of the Windows api.

    (Any new code in Wine has to be backed up by a test, for a few years now).

    If you do run WineTest, it would probably worth telling people on the winehq mailing lists before submitting the results (I don’t know if this happens automatically), as otherwise they’ll get a whole load of unexpected fails.

    Also, any tests added to WineTest for kkapture could end up helping the Wine project.

  2. I’m nearly completely off IRC by now. It just wastes too much time better spent otherwise :)

    The suggestion about WineTest is interesting, but I’m not sure whether it’s a good idea. Parts of kkapture purposefully violate the specification of the respective APIs (for example, the D3D capture code forces RGB565 backbuffers to be ARGB8888, and Sleep, WaitForSingleObject and everything else related to timing have notable deviations from what the normal Win32 functions do as well). As kkapture is working on top of actual Win32 and doesn’t intercept anything unnecessary, basically the only functions intercepted are the ones where I want nonstandard (and sometimes non-compliant) behavior. So I’m not sure that WineTest would be helpful.

    I’ve looked at the Wine source code several times to figure out how some Windows functions might be implemented internally. It’s
    very helpful in that regard, and a lot less time-consuming than reverse engineering the actual Windows code (which often changes between versions anyway).

  3. So my question about kkapture… (sort of).

    Some friends of mine have a cool toy:

    How hard would it be to take kkapture and just keep the part that takes the opengl or directx part of a program, and instead run it through an arbitrary shader.

    (In this case the shader would do the warping to project in this dome).

    I’m guessing it would be fairly easy, however I haven’t done C++ since Turbo C++ !

    Obviously redirecting a programs output like this would probably slow it down quite a lot, but I’d imagine if your just displaying the output, not encoding video it could still be realtime.

    If it’s possible to solve these guys problem – to be able to run arbitrary programs in the dome, then it may well be possible to use it for a demoparty*.

    *barring myriad nontechnical problems :)

  4. A shot in the dark, but I was wondering if I could buy you a drink in the Seattle area sometime? I used to work on a project with RAD just before you joined, and was disappointed I never got to get in touch with you.

  5. haibao li permalink

    How can I contact you?

  6. Hi Fabian, sorry for the odd question. I’m recommending your blog in one of my youtube videos about graphics programming, but I don’t know how to pronounce your last name. Is it pronounced like Geesen or Gaisen? Thanks.
    ( in case you’re wondering)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: