Tuesday, 30 January 2018

Successful Installation of Microsoft Chat on Ubuntu Linux via Wine 3.0

Dear friends,

It works!
I created this project several years ago with the hopes that it might be of some sort of help to developers interested in reverse engineering and cloning Microsoft Chat for Linux or other creative applications. This was particularly because the application would not – until now – function on wine, the compatibility layer for running Windows software on Linux and MacOS.

Roughly 15 years ago – under the handle Supernatural, then Super, then Reg, I had the privilege of contributing to the Comic Chat community various Star Trek themed variations of Jim Woodring's (as always, absolutely amazing) original artwork, as well as discovering a technique for enabling the playback of MP3 files in Comic Chat by means of a hex editor to modify the executable. Today I am grateful to be the first to publicly document the fully functional installation of the Microsoft Chat application in Comics Mode on a Linux system via the latest version of wine.

Unlike previous versions of wine, Comics Mode is now fully functional. Speech bubbles now display not only legibly but perfectly, and extremely large black frames no longer obscure the frame. Furthermore, the well documented failure of the space bar key to function has long been resolvable thanks to additional steps documented below.

The following instructions have been tested on Ubuntu 14.04. Similar steps should yield a successful result on other systems.

First, make sure you are using wine 3.0 by running wine --version. If you do not have wine installed on your system, or are running an older version, simply follow these instructions to install the latest version of wine.

After the update I still had a ~/.wine configuration folder which I had been using with other versions, and I wanted as clean of an install as possible. Seeing as I was not attached to anything in this folder, I deleted it.

To create a new ~/.wine folder with a "Win32" prefix, allowing me to run 32 bit applications on my 64 bit Linux system, I ran the following:


WINEARCH=win32 WINEPREFIX=~/.wine winecfg 

It may not be necessary, but what I did next was set the Windows version for Wine to mimic as Windows XP. The default is Windows 7, and you can change it under the "Applications" tab of the wine configuration menu. This can be accessed by running winecfg. As you will see, you can alternatively decide to do this on a per application basis.

Before installing Comic Chat, you will also want to install and run winetricks. Instead of relying on an outdated Ubuntu package, I ran the following to get the latest version

wget htps://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
mv winetricks /usr/local/bin/

Run winetricks, which will launch a simple GUI. Choose "Select the default wineprefix" and look for an option to "Install a Windows DLL or component." Scroll through the options and selected riched20 – installing this will resolve a known issue when running Microsoft Chat on Wine in which the space bar does not function when typing messages.

I would also suggest going through the same steps to install ie6; note it may not be necessary, but Microsoft Chat was originally bundled with IE and was never designed to be on a system without it. You may opt to install MS Chat without installing IE first, I was merely being preemptive. This is a little trickier than installing riched20, but simply follow the instructions and wintricks makes it pretty easy.

Finally go ahead and download the Microsoft Chat installation program from Mermaid Elizabeth's website. Running wine mschat25.exe did yield some errors for me on the back end, but the installation was successful.

Ultimately, after the GUI exited I was left with a hanging process and had to run CTRL+C to regain control of the terminal. Nonetheless, the "Microsoft Chat" directory was created under "Program Files." Now simply change directory to the folder where CChat.exe is installed and run it.

cd ~/.wine/drive_c/Program\ Files/Microsoft\ Chat/
wine CChat.exe

Alternatively, you should also be able to run

wine start "C:\Program Files\Microsoft Chat\CChat.exe"

You can now connect to an active server and switch to Comics Mode. Note of course that the default server will not work seeing as Microsoft has not run IRC servers in almost 20 years.

You will likely encounter problems or even a crash if you attempt to run Microsoft Chat on the wrong type of IRC Server. You should consult Mermaid Elizabeth's documentation on available servers and channels dedicated to Comic Chat users, but I believe you will find that the only running and active room on that list is the #Crypt on the www.crypthome.com server.

Not only does Comics Mode work correctly, but I am even able to download other users' custom Comic Chat Characters (AVB file extensions) just as one would expect on a Windows system. In fact, every feature of the application seems to be working and I have maintained several hours of connectivity and usage today without issues. Rules/automations have also been tested, as well as sounds, though the directory for the latter must be manually set in the bottom field of the Settings tab in the Options window.

Once again, for general assistance in using Comic Chat, consult Mermaid Elizabeth's excellent and resourceful website. For assistance specifically in getting Comic Chat to work on Linux, feel free to look for me in the #Crypt or leave a comment.

Anyway, I pray the next time nostalgia bites us this hard in the ass, it actually involves something from real life. Happy chatting, networked nerds!





Thursday, 30 August 2012

Project on Hold but not Forgotten!

Unfortunately and fortunately, my summer has come to an end and the greater hours of my day must be dedicated to my graduate research. While I do not want to put the project on hold, I have little choice. Even dedicating only one hour a day will spill out into three or four and I cannot afford to do that–just when it was getting good! I ultimately decided, for now, to use a local webserver in order to generate dynamic webpages containing PNGs of the local conversation and so far my tests have been very successful.

For now, I plan to spend as little time in front of a computer as possible for the next several months.

I salute you, then, in peace, Internet.

Saturday, 18 August 2012

Welcome


So what do my "fruitless efforts" look like as of late? If you are new to my project, snoop around the blog or have a look at my most recent entry which will give you more than enough information. Also, I refer to fruitlessness here as a sort of self-inflicted reverse psychology for ironic motivational purposes. As if I were capable of such a thing. Wooh.


Uh, anyway. If you're using Windows, head on over to Mermaid Elizabeth's download page and start using Microsoft Chat. Note the help page as well if you're using a newer version of Windows.

If you're on Linux and remember using Microsoft Chat back in the day, consider following my project or even lending me a creative hand! Good luck.

Progress Report: "Comic Chat" Shell for Linux


Some amount of progress has been made since my previous post, although there is still quite a way to go.

Remember the internet in the 1990s? If not, you probably don't remember Comic Chat.

My original efforts, as you may recall, were to run Microsoft Chat, that is Comic Chat, on a GNU/Linux operating system. During the initial, conventional WINE troubleshooting, it dawned upon me that Comic Chat is nearly 20 years old. A century in the world of technology. My effort then, one of technological nostalgia, transformed into a more creative endeavor: to duplicate Microsoft Comic Chat on my own system and improve it when necessary.

As I am not a developer, and in judging my word please acknowledge this disclaimer, my options are limited. I cannot aim to provide an IRC client for Linux users that replicates Comic Chat. I can, however, work on top of other clients and build local bash scripts that work on top of those clients in order to suit my own needs. When I began this project two months ago, I had the important decision to make of choosing a client. I am increasingly confident that Weechat was the right choice. FlashTux's support of the really handy FIFO pipe has made my own limitations a potential strength, allowing practically unlimited possibilities of shell-to-IRC-client interaction. Weechat is fast, powerful, flexible, and featureful; the only limitations I have encountered have been met with either solutions or workarounds thanks to a little hacker creativity and the continuous support of FlashTux, the developer, on his website forums.

If I do manage to bring this project to a completely workable state before half the applications used in the scripts change or break, I will begin to look at moving slowly out of bash and into probably python-based Weechat plugins. For now, I am running off the built in features of weechat, a few hacked Weechat plugins from the web, and a few hundred lines of bash scripts that communicate with Weechat.

The drawing of image bubbles needs a good deal of work. The patchy one-line bubble pictured above is about as good as it gets; longer messages run off the screen. Only outgoing messages are being drawn, incoming messages are still text only at the moment.


The memorable randomly generated ("Networked Nerds," "You Shoulda Been There," etc.) title that filled the first pane in Microsoft Chat has been duplicated at the top of the user list; this list is generated by a bash script which reads the Weechat room log upon joining a room. The icons represent the actual icons corresponding to the characters that are associated with the given nicknames. User names are numbered, as scene below each icon, as are all the possible outgoing poses for the local user's own character file.

The outgoing message prompt, in the gray terminal on the left side of the screen toward the bottom, is automatically prefixed with the format "0t0." The number preceding the "t" represents the pose code, corresponding with the pose that will be sent to Comic Chat users. If it is left at "0," then one of the neutral poses will be selected, or the proper emotion/gesture will be interpreted based on the message the user sends out (for example "hello" will trigger a wave or a grin, etc.) The number following the "t" indicates who will be the recipient of the outgoing message, that is, who will be featured in the comic pane. Sending to multiple users or the whole room will be supported in the future, as will sending out "thoughts," "actions," or "whispers," instead of normal speech bubble messages.

All graphics are, for the moment, generated on the fly by Image Magick and local, saved "comic art." They are then displayed with feh which is basically fine for displaying the nicks list, for example, but very unpleasant and inappropriate for pages of comic panes generated in a busy IRC channel. I simply have not encountered the resources necessary to do this "appropriately" (as though any of this is appropriate, I should not be doing this project as I am not a developer and bash is not a programming language) and am open to suggestions. Ultimately, I would like to find a *nix image viewer, or some other sort of already existing program, that can dynamically update the image displayed whenever it is modified, perhaps displaying four comic panes at a time.

In the mean time, there is a lot of work to do behind the scenes. Microsoft Chat does not handle away messages according to IRC standards, but generates a "coffee cup" icon to indicate away statuses based on CTCP messages under the format "PRIVMSG #Channel :\01AWAY Gone fishing.\01". Scripts have to be provided that send the away message not only when going away, but every time a new member joins. It should also be remembered in between "sessions" in case there is a crash, etc. Woodsman figured out how to automate this in a mIRC script he released back in 2000, but as far as I know it has not been done in a native *nix client until now. Ultimately, my work here should and hopefully eventually will be remade into a native plugin for Weechat, rather than an outside bash script piped in.

Sunday, 22 July 2012

Tuesday, 19 June 2012

Vintage Comic Chat

As I have suggested in the past, those wishing to continue to entertain their nostalgia for Comic Chat will most likely succeed in doing so only if the experience is approximated and improved upon in new software, leaving the old Microsoft Chat behind as the powers at Microsoft themselves have done.

While it has been my own goal this year to build an elementary proof of concept interface that replicates (and is compatible with) Microsoft's own Comic Chat, specifically in order to make use of Comic Chat in a GNU/Linux environment, an Italian team headed by another nostalgic Comic Chat user, Gianluca Nicoletti, has begun a project known as "Vintage Comic Chat," specifically aimed for Windows 7 and Windows mobile devices.


"The main purpose of this project is to re-create an application resembling Comic Chat, the imaginative product created by Microsoft in the Nineties, updated to use current computer technologies, available on Windows 7 and Windows Phone 7 first, then the other platforms available on the market.

The features will be the exact as in the original product: a text line will transform the words into a cartoon characters and dialogue Between the Interaction Between users will create graphic panels. Users Will Be Mainly focusing on the content, Because The context will be provided by the Software That Will interpret words and subtle meanings in order to create cohesive and interesting comic stories.
 
The graphic appearance and artwork will be new; However, it will keep the vintage style that made the original so appealing Comic Chat.
The idea behind the project is to bring back to life a great product that, though discontinued, is still appealing to millions of people."
[link]


Nicoletti hopes to revive the Comic Chat experience not only for fun and games, but also for various business venues as well as a means of presenting information in new and promising ways to work with students with different learning abilities and autism.

Nicoletti has apparently been using for his project the room "GN_Vintage_2.0" on the currently active Comic Chat server Comic-Sun, although the room does not appear to be in use or registered at this time.

David Kurlander, retired author of Microsoft Chat whose name you may recognize from his Comic Chat page linked to on Mermaid Elizabeth's front page for some time, is purportedly an advisor to the project.

Links:

Monday, 4 June 2012

"This person is too lazy to create a profile entry."

While today I am a graduate student working on my master's degree in the humanities, I have been using Microsoft Chat roughly since I was in the fourth grade, creating Comic Chat characters since around middle school.





Among other things, my main contribution was a set of Star Trek themed Microsoft Chat characters, created by colorizing and modifying some of the original characters that came with Microsoft Chat (modifying these being a common practice among other AVB or character makers).1

As a curious middle schooler, at one point I even discovered that by modifying the CChat.exe executable in a hex editor, I was able to replace Microsoft Chat's ability to play RMI files with that of MP3 files, allowing fellow users (at least those who followed the technique) to send MP3 sounds to channels and hear them even though the client had been made before the popularity of the now ubiquitous MP3 audio format. It is in this same spirit, now several years later, that I have created this blog, in which I hope to share my observations as I tinker with Microsoft Chat, attempt to discover how it works, and how to make the most of it (note Eric S. Raymond et al.'s definition of a hacker).


1. Some of these were of a higher quality than others, and most included roughly one to two dozen poses and gestures. While my old website, The Comic Chat Connection, is no longer updated, an archived version where copies of my characters can be downloaded is still available courtesy of Mermaid Elizabeth.