I don't remember why I originally wrote the subtitling filter. I'd like to say it was because I fansubbed some anime, but my Japanese skills are extremely minimal and my access to unsubtitled anime even less, so that couldn't have been it. I think it may have actually just been to display some on-screen lyrics to music -- probably Yuzurenai Negai from the Magic Knight Rayearth opening. Or something like that.
The two most common questions I get about the subtitler filter I wrote are:
- Why are my font sizes and border widths screwed up?
- Why does my foreign-language text appear garbled?
- Why don't my pictures and animations show up?
Fortunately, both of these are easy to fix.(Read more....)
The solution for a problem like this is to create a 32-bit process that hosts the 32-bit DLLs, and then use interprocess communication (IPC) to transfer data between the 32-bit and 64-bit processes. This is suboptimal because of the delays and inefficiencies in switching processes, but it would work at least and maintain compatibility. There are a number of IPC mechanisms available on Windows, but most of them have major deficiencies, such as not being securable, not having support for waiting or non-blocking I/O, or requiring Windows NT. One with relatively less suckage is COM marshaling, in which the Windows COM system automatically transfers a function call and assocated data across the process boundary.
It turns out that COM marshalling between 32-bit and 64-bit processes is explicitly allowed by Win64. The AVIFile interfaces implemented by Avisynth are COM interfaces, and thus should be usable from a 64-bit processes. Trying to do so, however, just causes AVIFile import errors. So what's going on? (Read more....)
One of the best features that Microsoft added to Windows XP is Remote Desktop, a.k.a. Terminal Services limited to one user. All you have to do to use it is to enable Remote Desktop in Control Panel > System and then use the Terminal Services Client (mstsc.exe) to connect. This is a godsend on a laptop, where I have to occasionally connect back to my desktop to get something. Since Terminal Services uses a GDI mirroring driver, it is faster for non-multimedia apps than VNC, which polls the screen. The downside is that you can't run 3D apps.
When you use Remote Desktop, make sure you never, ever create a loop. One day I was connected to my desktop via my laptop, and then after forgetting which computer I was working on, connected back to my laptop within the remote session. Both computers promptly went black with their keyboards locked and I had to hard reset one of the computers to recover the other! (Read more....)
I've been having some problems with my laptop lately, with it blue-screening more and more over the past week. Usually I would just slap WinDbg on it and figure out what driver was the culprit so I could upgrade or remove it, but it'd gotten so bad that it didn't even dump a minidump to disk. It even once blue-screened on startup with a memory pool corruption error, which was a bad sign (and shortly ate the system registry soon thereafter). Well, a several-hour soak with Memtest86 revealed that the 512MB SODIMM had become flaky. Fortunately I have all of my data copied off intact, including my VirtualDub 1.6.5 development tree and Perforce depot, and am in the process of reinstalling XP with the good 256MB.
In the meantime, I'd been playing Namco's Xenosaga, which turns out is a pretty good RPG for the Playstation 2. RPGs -- the video game kind -- are a bit of a soft spot for me, and I've played a lot of them. The recent crop has been somewhat disappointing, what with Final Fantasy X being a departure from earlier games and X-2 being a total twitchfest. I happened to try Xenosaga on a whim and it turned out to be a bit of a hidden gem. Cheap too, considering it's now in Greatest Hits status. It took me about two weeks to finish it; that it has about a 50hr clear time on average and I didn't take any days off from work should tell you something.(Read more....)