New MSAgent data spec released!

Microsoft has recently announced that it is discontinuing development of its MSAgent technology (  In light of that news, I have decided to release my latest MSAgent data spec sheet, which I have been holding on to for several years, as it now includes full details about MSAgent’s compression algorithm, as well as adds new information about the ACF and ACA file formats.  I was not sure how Microsoft would react to the compression information being released publically.  However, since they are not developing MSAgent any further, I figure it should be safe now.  Other people are already starting to implement their own MSAgent replacement engines, so my latest spec can be helpful for them.  I am still planning on working on my own MSAgent-related projects, as described in earlier mailings and on my website.  It is just a matter of having enough free time to do so.

New ICQLaunch version released

I just released a small update to ICQLaunch. It contains a bug fix for the Shortcut Wizard that was causing it to fail on some sytems when the “QuickLaunch Bar” option was used. The location of the QuickLaunch settings calculated by the Wizard would end up missing a backslash in the middle of the path, thus the Wizard couldn’t create any shortcut files for the QuickLaunch bar correctly. This has been fixed.As always, ICQLaunch is available from or

New SourceView beta is now available

For those of you who have been trying out the beta version of my source code editor/viewer, SourceView, v1.0.0.17 is now available for download. I have recompiled the program to use the latest version of the editor control, and have thus also added syntax highlighting support for several additional programming languages:

C#, CSS, HTML, Javascript, VBScript, VB, Ruby, Python

In other news:

– Last night, I just started experimenting with incorporating AJAX into my website. So over the coming weeks/months, you’ll start to notice some changes in the look-and-feel of the website.

– This past week, I’ve been working on my MSAgent character processing/rendering engine again. It is coming along quite nicely.  It is still primarily tied to Windows for right now, but I’m working on cleaning it up and generalizing its interfaces so I can plug in other platform support later on. I’m hopeful that I can start incorporating this engine into my projects in the near future.

I’m published!

For you Borland C++Builder developers out there, I’d just like to mention that my first-ever technical article has just been published in this month’s issue of C++ Builder Developers Journal. My article got the top slot in the issue, as well as the cover art, and I got some major praise from the journal’s editor:

Let me first say that your article was, hands down, one of the best we’ve had. It was *extremely* well-written, both grammatically and technically, and the demo application was just perfect (not too simple, but not too loaded with irrelevant features). You should take pride in your technical writing skills. I sincerely appreciate the time and effort you put into providing such a well-polished submission–thank you. And, I hope you will consider writing for us again.

Not too bad for a first-time writer, huh?

Ok, enough bragging for now. That made my day. Now on to other news.

With the recent announcement that Microsoft Agent has been updated in Windows Vista to finally support SAPI 5, I have begun updating my AgentCB application to support it as well. More on this to follow when a new version is ready for testing.

My Microsoft Agent processing/rendering engine is coming alone nicely.  Being able to display and run ACS, ACF, and ACA files without using Microsoft’s products is quite refreshing, from a programmer’s standpoint. I recently updated my engine to use GDI+ on Windows systems. This will allow me to support transparent images, as well as resizing images (such as when the character window is stretched), much easier. I’m also working on incorporating the engine into a new application now (adding a Preview tab to the Properties dialog of ACS files) to help me iron out the interfaces better so that I can then start incorporating the engine into the other appications that I have planned (which are listed on my website).

Version Control

I have begun using Version Control software to keep track of changes to my source code. As a result of that, I can now begin publishing more detailed reports about what is changed from one version to the next. I am now
working to add “Project Release Report” links on all of the download pages for my website. This will be a running log of all reported issues and implemented features for each product.Right now, only my AgentCB product has this report implemented. You can view it online now. I will continue working to add similar reports to my other products.

Still Alive and Programming

Yes, I know, I’ve been silent for a long time. Too long, and for that I apologize. But I am still around, still programming away at several projects when I have time to do so (which is not as much as I would like sometimes). Which brings me to today’s many announcements.


MSAgent WebRing Membership
I have been supporting the MSAgent technology for over 6 years now. Lebeau Software is now a proud member of the the MSAgent WebRing. I should have joined this group years ago. Well, no time like the present, right?


Upcoming Software Releases!

AgentCB v1.2
AgentCB v1.2 will now allow the user to choose their desired spoken Language and TTS engine. This has been requested from non-English users of AgentCB for awhile now, so I finally got it into AgentCB. Previous versions were locked into using Enligh only. MSAgent, which AgentCB uses to read the clipboard verbally, has always had the ability to generate spoken output in many foreign languages (provided the necessary support files are installed ahead of time). AgentCB will now be able to utilize this capability.

In addition, this version includes enhancements to the underlying MSAgent support (for those of you familiar with my TMSAgent VCL component, this version of AgentCB will be using the beta of the upcoming version of TMSAgent), and users will also now be able to choose to use MSAgent character files that are not installed in the default “MSAgent\Chars” folder of the OS.

If anyone is interested in beta testing the new version before I release it publically, feel free to contact me.

ICQLaunch v1.0.1.22
ICQLaunch v1.0.1.22 adds support for the recently-released ICQ v5. Supporting ICQ v5 required several changes to ICQLaunch’s internals. Amongst the changes, however, allowed for the ability to support ICQ v5’s new Custom Status feature. ICQ is no longer locked into hard-coded statuses like, “Away”, “DND”, etc. Users can now specify their own custom status messages. The new version of ICQLaunch will support this feature, in addition to supporting ICQ v5 in general like it as with previous versions of ICQ.

If anyone is interested in beta testing the new version before I release it publically, feel free to contact me.

TMSAgent VCL v2.0
The upcoming release of AgentCB is using the beta of the upcoming version of TMSAgent as its MSAgent implementation. TMSAgent v2.0 is a major redesign over the current version v1.5. Once AgentCB has been tested, and no problems occur with the TMSAgent beta, I can then release v2.0 of TMSAgent. And yes, this version will included native Borland C++ Builder 6 support – a feature that is LONG overdue!

MSAgent ACS File Format Documentation
For the past 2 years, I have been working on gaining an understanding of, and documenting, the data format for MSAgent’s ACS files. The ACS File Format documentation has been available for download for some time now. I will be releasing a major update to that documentation later this year. Many data fields that were unknown to me a year ago have now been identified. The documentation is nearly complete now, describing the entire ACS format in full now. The only thing still eluding me is the algorithm for parsing the raw image data for individual animation frames (although I can now identify everything else about the frames), and a few minor miscellaneous fields. Other than that, the rest of the data is fully documented now, and I have already begun writing code to utilize this information.


New MSAgent Products in Planning Stages!

ACS File Viewer
Using the knowledge I have gained by writing the ACS File Format documentation, the first product that I will be releasing will be an ACS File Viewer. This product will be a test bed for me to solidify my general coding for processing ACS data. Unlike other viewers already available, this program will not be using Microsoft’s own MSAgent engine at all. I will be reading and displaying the ACS file data directly. This will mean that performance of processing the ACS information will be faster and better optimized, and will not require commonly used “hacks” to make the MSAgent engine do things that it was not originally designed for (re-parenting character windows without messing up the OS, multiple instancing, etc). Also, ACS characters that are loaded into the MSAgent engine by multiple processes at the same time, whether by applications or by web pages, share a common instance of the character onscreen. The viewer will bypass this, being a completely self-contained application, one which can even run on machines that do not have MSAgent installed at all.

ACS-to-ACD Recovery Tool
After the ACD File Viewer is written, it will be a small jump to produce the next product, an ACS Recovery Tool. The Agent Character Editor (ACE) that is provided by Microsoft is currently the only software publically available that is capable of producing compiled ACS files. ACE uses ACD project files to organize the bitmaps, icons, sounds, and layout information that character authors define when creating their custom ACS files. This convertor will be able to reverse that process – extracting and generating the original ACD, bitmap, icon, and sound files from ACS files for use with ACE. This product is meant to be used by character authors who have lost their ACD project files and need to restore them from the compiled ACS files.

I do realize that an ACS recovery tool presents possible copyright infrigement issues. Which is why the convertor will be the very first shareware product offered by Lebeau Software. The evaluation version will not support extracting the images and sounds from ACS files. These are the key pieces of an ACS file’s copyrighted intellectual material. Authors will have to prove that they actually own the characters they wish to convert, and will have to purchase the full version and licensing to allow their ACS files to be converted to ACD. The licenses will encrypted and tied to both the specific character being converted as well as to the character’s owner (and maybe also to machine hardware), and may also require online validation. This is so that licenses cannot easily be distributed or hacked by software pirates, or falsified to allow converting of characters by people who do not actually own them.

Also, neither the evalutation nor full version will allow loading or processing Microsoft’s own characters (Merlin, Genie, Robby, and Peedy) under any circumstances.

MSAgent Browser Plugins
After the ACS Recovery Tool is written, the next project will be to revive my old browser plugin for supporting MSAgent in Netscape. I will update it to support Opera and Firefox, as well as give it a generic interface so that Internet Explorer can use it as well. This way, a single plugin can cater to multiple browsers without requiring separate specialized versions for each browser, or different scripting for different browsers, etc. Also, using my ACS File Format documentation to design my own rendering engine will eliminate the dependancy on Microsoft’s MSAgent engine, thus allowing the plugin to also be ported to non-Microsoft platforms (Linux, Mac, etc). This will introduce MSAgent to new marketplaces that have been previously unexplored.

ACE Replacement
I wish to produce an application that will do everything that ACE can do, and then some! ACE only supports 256-color bitmaps, icons, and WAV audio files. I want to support importing of PNG and MP3 files as well, and maybe also importing and real-time rendering of common 3D file formats (3DS, 3DX, Lightwave, Wavefront, X3D, etc) directly. Many MSAgent characters currently available have images produced by 3D rendering software (3D Studio Max, Hash Animation Master, Truespace, Xara 3D, etc), so it would be beneficial to have an ACE-style editor that can render the wireframes in the same software that compiles the final ACS file.