Friday, December 09, 2005

Brain drain's kept me from generating as much code as I'd need to start the series describing the rewrite of ACAim.  I'm slowly chugging along at it and will start posting once I'm a bit more comfortable with my progress.

posted on Friday, December 09, 2005 6:52:32 PM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
 Friday, December 02, 2005

My head's a little clearer now, so tomorrow I'm going to start a series on writing a plugin for the new Adapter in Decal.  Be warned now:  this series will be covering the redevelopment of ACAim from the ground up.  This will include all of the network code and message parsing.  The actual decal code will be very minor compared to the rest.  It should very much prove to be a learning experience for everyone.

posted on Friday, December 02, 2005 6:56:13 PM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
 Tuesday, November 08, 2005
A little something that's been stuck in my head of late.
posted on Tuesday, November 08, 2005 11:44:20 PM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
 Monday, November 07, 2005

I've almost always been behind the times with my computer hardware.  It wasn't until this past tax season that I was able to have a modern desktop (Athlon64 2800+).  As the holiday season approaches, I find myself wanting to upgrade my workspace again, even though there's no chance in hell of it happening, to include something to make me more productive or something fun.

For productivity, I'd like to see a pair of these sitting on my desk.  I was lucky enough to have a pair of them with a previous customer, and absolutely fell in love with them.  The amount of space the save compared to CRTs and the extra productivity from having that much screen area are wonderful.  I honestly find it hard to work with my CRT combo at home, and almost impossible on the single head setup I have at the office now.

For fun, it would absolutely have to be an iBook.  Either the 12" or 14" model.  With the power of BSD and the simplicity Apple is famous for, not to mention the design put into the new models (durability, battery life, etc), make it hard to not want one.

Ah well, I suppose new toys will have to wait til next taxmas, unless some nice, generous users happen across the paypal button on my projects pages and show their appreciation.  In the mean time, I shall return to my attempts to ressurrect NB2.

posted on Tuesday, November 08, 2005 3:08:24 AM (Central Standard Time, UTC-06:00)  #    Comments [0] Trackback
 Thursday, October 27, 2005

This is one of the reasons why we hate dealing with the rendering system:  It's hacked.  We take over the call to create that AC makes and "do things" to the object so that Decal knows when to draw.  Well it turns out that our repeating textures were directly related to this.

In the previous version of Decal, the rendering hack consisted of a proxy object, a complete reimplementation of the DX object, that told us what was happening.  Under this model, AC had a reference to our proxy, and we had the real object.  In the new system, we decided to go with another method, vtable patching, which only alters the particular functions we want.

Well, as things would have it, Checksum created the initial hooking setup for Decal3, not Haz or myself, so this little detail wasn't exactly fresh in our minds.  So here we are, testing various ways of drawing to the screen, expecting the DX object to behave normally, but we keep getting this weird repeating effect.  We found a few methods to, ah... minimize the visible effect, but this backfired when multiple huds were generated.

Well it just so happened that Check popped up again while we were exploring the issue, took a glance at our code, and "reminded" us about the hook.  We nearly died when we realized what was actually happening.

To keep Decal drawing on the screen on top of AC's 3D, we hook a DX function called EndScene.  When AC calls this function, we send a signal to Decal to do all of it's rendering work.  Well, in our new HUD implementation, we use a technique that renders on an off-screen texture instead of the main window.  As part of that operation however, we have to call EndScene.  It turns out that our repeating texture was actually a recursion issue that somehow fixed itself before causing a crash.  So we reworked the code a bit to call the real EndScene and no more issue.

Just goes to show you how being too close to a particular project can bite you when the bugs creep up.

posted on Thursday, October 27, 2005 4:09:23 PM (Central Daylight Time, UTC-05:00)  #    Comments [1] Trackback