When all you have is a hammer, everything looks like a nail

I thought I’d get a little more into the whole reverse engineering thing and to “proprietary language” that is embedded into the Sims objects, SimAntics. This whole this is a rather gray area and difficult to pin down.

As I’ve stated before (and this is mostly my own opinion) there is no actual SimAntics language. It’s a term thrown around and has been married with a scripting language that’s embedded in object files for the game but in reality there is no script and no language. Okay, let’s take a step back. Merriam-Webster describes a language (ala machine language) as the set of symbolic instruction codes usually in binary form that is used to represent operations and data in a machine (as a computer). So in reality you could call what’s inside an IFF file a language. It does contain instruction codes that represent operations and data. Can you compare SimAntics to C++ or BASIC? Not really since there is no script or human readable text involved. There are indeed IF/THEN/ELSE type expressions but they’re all represented by binary values and pre-defined lists that Maxis made up. Again, a gray area since you could argue both ways it is or isn’t a language. Can you write a script to create a series of actions in an object (essentially writing a text based SimAntics script)? Maybe but in the end, it has to be converted to something that the game can understand. Again, a gray area. C++ code is tranlated to object files and linked into executables. You could argue that an IFF file is an executable and The Sims (or Edith) is the interpreter. It’s a pretty muddy area but it brings us to the legal issue of threating action against someone writing a tool to interpret it.

The legal issues surrouding reverse engineering a file format are again not clear as glass. Luckily there is some precedent in the world to compare it against. One of the most famous cases of this is that of Compaq. They reverse engineered the IBM BIOS (the computer program that makes your system boot) and created the IBM clone. They essentially looked at the BIOS and said, “Okay, it’s has to take this data in (the ROM) and produce this output” and they created such a device from nothingness. You can check out Robert Cringely’s article on reverse engineering here for his perspective. More recently, Oracle took on RealNetworks in reverse engineering their RealMedia format to create their own servers that would send out data to the free Real client. More legal mumbo jumbo generally says that if a vendor doesn’t offer their product on a particular platform and you can demonstrate a legitimate need to reverse engineer their software to make yours work, then you should be free and clear. Your right to do this is protected by Federal law created in State of Illinois vs. Netscape Communications Corporation, Horowitz vs. Franklin, and Digital Equipment Corporation vs. IBM. Generally, file formats are not patentable or copyrightable. The algorithms used to create them are, as is the case with the Unisys patent on the LZW algorithm for GIF files. If you can create a GIF file not using the same algorithm, then you’re free and clear so creating an IFF file (or editing one) using different algorithms that Maxis used might be the same. Of course, Microsoft tosses in their monkey wrench and claims that the ASF file format is copyright and apparently succeeded in stopping a project called VirtualDub in using it.

Copyright does not protect an idea, but the expression of an idea “fixed” in a medium. One example is the type font industry. They used to have a big problem with piracy. They quickly learned that out-and-out copying (tracing a font, copying a digital representation of a font outline, and similar activity) was protected under copyright, but that a font designer re-creating the face other than by tracing was not a violation of copyright. The new face represented a distinctly different font. The old Ashton-Tate company got a rude wake-up call when they stumbled on the fact that the dBASE language wasn’t protected, but their interpreter and compiler were. (Clouding that issue is the fact that dBASE was based on a government developed language, but what the hell…). With regards to Microsoft, a book titled “Undocumented Windows File Formats” was published awhile ago in which the author reverse engineered quite a few MS formats, all without any legal ramifications from the Redmond company. It seems that if you don’t use proprietary code or algorithms, you might be able to reverse engineeer a file and product tools to edit/create them. Although if you start encroaching on the encrypted file formats and cracking those, you start running the risk of violating the DMCA (Digital Millenium Copyright Act) in which Dmitry Skylarov was detained for last year. Again, a dark and muddy area as the DeCSS source code that was floating around would allow you to playback DVDs and that’s just getting into more hot water.

In general, there are two legitimate arguments for using reverse engineering: to integrate a system smoothly with other systems and to ensure that the system does not do damage to the environments in which it operates, says Frank Prince, senior analyst for infrastructure security and management at Forrester Research, a Cambridge, Mass., technology consulting firm. On the flip side, companies often make another argument for using reverse engineering — an illegitimate argument, Prince believes. “They think if they can figure out how it does what it does, they may be able to make a better or cheaper or faster version and make some money without incurring all of the costs of the initial development,” he says. “How you feel about any of these arguments depends on which side of them you stand on and what you stand to gain or lose. Once again, we end up in a battle over profiting from effort and taking responsibility for your creations.”

All in all, a difficult subject to discuss and even more difficult to resolve. One could just say “let the lawyers handle it” but with independant software authors working on tools for the game, nobody has the legal clout to go up against a team of corporate lawyers like EA over this. In any case, consult a real patent or copyright lawyer for the full skinny.